未验证 提交 e299946b 编写于 作者: J Jim 提交者: GitHub

Merge pull request #1454 from Andersama/dockable-stats

UI: Make stats dockable
......@@ -293,6 +293,7 @@
<addaction name="toggleMixer"/>
<addaction name="toggleTransitions"/>
<addaction name="toggleControls"/>
<addaction name="toggleStats"/>
</widget>
<action name="actionFullscreenInterface">
<property name="text">
......@@ -1098,6 +1099,21 @@
</layout>
</widget>
</widget>
<widget class="QDockWidget" name="statsDock">
<property name="minimumSize">
<size>
<width>168</width>
<height>103</height>
</size>
</property>
<property name="windowTitle">
<string>Basic.Stats</string>
</property>
<attribute name="dockWidgetArea">
<number>2</number>
</attribute>
<widget class="QWidget" name="dockWidgetContents"/>
</widget>
<action name="actionAddScene">
<property name="icon">
<iconset resource="obs.qrc">
......@@ -1656,6 +1672,17 @@
<string>Basic.MainMenu.Help.Discord</string>
</property>
</action>
<action name="toggleStats">
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>true</bool>
</property>
<property name="text">
<string>Basic.Stats</string>
</property>
</action>
</widget>
<customwidgets>
<customwidget>
......
......@@ -306,6 +306,7 @@ OBSBasic::OBSBasic(QWidget *parent)
assignDockToggle(ui->mixerDock, ui->toggleMixer);
assignDockToggle(ui->transitionsDock, ui->toggleTransitions);
assignDockToggle(ui->controlsDock, ui->toggleControls);
assignDockToggle(ui->statsDock, ui->toggleStats);
//hide all docking panes
ui->toggleScenes->setChecked(false);
......@@ -313,6 +314,7 @@ OBSBasic::OBSBasic(QWidget *parent)
ui->toggleMixer->setChecked(false);
ui->toggleTransitions->setChecked(false);
ui->toggleControls->setChecked(false);
ui->toggleStats->setChecked(false);
//restore parent window geometry
const char *geometry = config_get_string(App()->GlobalConfig(),
......@@ -1590,6 +1592,10 @@ void OBSBasic::OBSInit()
show();
#endif
/* setup stats dock */
OBSBasicStats *statsDlg = new OBSBasicStats(ui->statsDock, false);
ui->statsDock->setWidget(statsDlg);
const char *dockStateStr = config_get_string(App()->GlobalConfig(),
"BasicWindow", "DockState");
if (!dockStateStr) {
......@@ -6110,7 +6116,8 @@ void OBSBasic::on_resetUI_triggered()
ui->sourcesDock,
ui->mixerDock,
ui->transitionsDock,
ui->controlsDock
ui->controlsDock,
ui->statsDock
};
QList<int> sizes {
......@@ -6126,6 +6133,7 @@ void OBSBasic::on_resetUI_triggered()
ui->mixerDock->setVisible(true);
ui->transitionsDock->setVisible(true);
ui->controlsDock->setVisible(true);
ui->statsDock->setVisible(true);
resizeDocks(docks, {cy, cy, cy, cy, cy}, Qt::Vertical);
resizeDocks(docks, sizes, Qt::Horizontal);
......@@ -6143,6 +6151,7 @@ void OBSBasic::on_lockUI_toggled(bool lock)
ui->mixerDock->setFeatures(features);
ui->transitionsDock->setFeatures(features);
ui->controlsDock->setFeatures(features);
ui->statsDock->setFeatures(features);
}
void OBSBasic::on_toggleListboxToolbars_toggled(bool visible)
......
......@@ -28,7 +28,7 @@ static void setThemeID(QWidget *widget, const QString &themeID)
}
}
OBSBasicStats::OBSBasicStats(QWidget *parent)
OBSBasicStats::OBSBasicStats(QWidget *parent, bool closeable)
: QWidget (parent),
cpu_info (os_cpu_usage_info_start()),
timer (this)
......@@ -75,13 +75,15 @@ OBSBasicStats::OBSBasicStats(QWidget *parent)
newStat("SkippedFrames", skippedFrames, 2);
/* --------------------------------------------- */
QPushButton *closeButton = new QPushButton(QTStr("Close"));
QPushButton *closeButton = nullptr;
if(closeable)
closeButton = new QPushButton(QTStr("Close"));
QPushButton *resetButton = new QPushButton(QTStr("Reset"));
QHBoxLayout *buttonLayout = new QHBoxLayout;
buttonLayout->addStretch();
buttonLayout->addWidget(resetButton);
buttonLayout->addWidget(closeButton);
if(closeable)
buttonLayout->addWidget(closeButton);
/* --------------------------------------------- */
......@@ -125,16 +127,15 @@ OBSBasicStats::OBSBasicStats(QWidget *parent)
setLayout(mainLayout);
/* --------------------------------------------- */
connect(closeButton, &QPushButton::clicked, [this] () {close();});
if(closeable)
connect(closeButton, &QPushButton::clicked,
[this] () {close();});
connect(resetButton, &QPushButton::clicked, [this] () {Reset();});
installEventFilter(CreateShortcutFilter());
resize(800, 280);
setWindowFlags(Qt::Window |
Qt::WindowMinimizeButtonHint |
Qt::WindowCloseButtonHint);
setWindowTitle(QTStr("Basic.Stats"));
setWindowIcon(QIcon(":/res/images/obs.png"));
setWindowModality(Qt::NonModal);
......
......@@ -55,7 +55,7 @@ class OBSBasicStats : public QWidget {
virtual void closeEvent(QCloseEvent *event) override;
public:
OBSBasicStats(QWidget *parent = nullptr);
OBSBasicStats(QWidget *parent = nullptr, bool closable = true);
~OBSBasicStats();
static void InitializeValues();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册