diff --git a/UI/forms/OBSBasic.ui b/UI/forms/OBSBasic.ui
index 983a8695e..77d53d326 100644
--- a/UI/forms/OBSBasic.ui
+++ b/UI/forms/OBSBasic.ui
@@ -293,6 +293,7 @@
+
@@ -1098,6 +1099,21 @@
+
+
+
+ 168
+ 103
+
+
+
+ Basic.Stats
+
+
+ 2
+
+
+
@@ -1656,6 +1672,17 @@
Basic.MainMenu.Help.Discord
+
+
+ true
+
+
+ true
+
+
+ Basic.Stats
+
+
diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp
index ad62e6398..fd5e2245b 100644
--- a/UI/window-basic-main.cpp
+++ b/UI/window-basic-main.cpp
@@ -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 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)
diff --git a/UI/window-basic-stats.cpp b/UI/window-basic-stats.cpp
index b758c2f3f..db4890dd7 100644
--- a/UI/window-basic-stats.cpp
+++ b/UI/window-basic-stats.cpp
@@ -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);
diff --git a/UI/window-basic-stats.hpp b/UI/window-basic-stats.hpp
index a719b7da7..7f3e26967 100644
--- a/UI/window-basic-stats.hpp
+++ b/UI/window-basic-stats.hpp
@@ -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();