diff --git a/UI/forms/OBSBasic.ui b/UI/forms/OBSBasic.ui
index fcd88076a..bc1923469 100644
--- a/UI/forms/OBSBasic.ui
+++ b/UI/forms/OBSBasic.ui
@@ -7,7 +7,7 @@
0
0
- 1238
+ 1079
730
@@ -105,8 +105,8 @@
0
0
- 1238
- 22
+ 1079
+ 21
-
-
-
- 168
- 103
-
-
-
- Basic.Stats
-
-
- 2
-
-
-
diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp
index 7e88902a4..64ca36b36 100644
--- a/UI/window-basic-main.cpp
+++ b/UI/window-basic-main.cpp
@@ -182,6 +182,15 @@ OBSBasic::OBSBasic(QWidget *parent)
startingDockLayout = saveState();
+ statsDock = new QDockWidget();
+ statsDock->setObjectName(QStringLiteral("statsDock"));
+ statsDock->setFeatures(QDockWidget::AllDockWidgetFeatures);
+ statsDock->setWindowTitle(QTStr("Basic.Stats"));
+ addDockWidget(Qt::BottomDockWidgetArea, statsDock);
+ statsDock->setVisible(false);
+ statsDock->setFloating(true);
+ statsDock->resize(700, 200);
+
copyActionsDynamicProperties();
char styleSheetPath[512];
@@ -306,7 +315,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);
+ assignDockToggle(statsDock, ui->toggleStats);
//hide all docking panes
ui->toggleScenes->setChecked(false);
@@ -316,6 +325,8 @@ OBSBasic::OBSBasic(QWidget *parent)
ui->toggleControls->setChecked(false);
ui->toggleStats->setChecked(false);
+ QPoint curPos;
+
//restore parent window geometry
const char *geometry = config_get_string(App()->GlobalConfig(),
"BasicWindow", "geometry");
@@ -332,7 +343,19 @@ OBSBasic::OBSBasic(QWidget *parent)
Qt::AlignCenter,
size(), rect));
}
+
+ curPos = pos();
+ } else {
+ QRect desktopRect = QGuiApplication::primaryScreen()->geometry();
+ QSize adjSize = desktopRect.size() / 2 - size() / 2;
+ curPos = QPoint(adjSize.width(), adjSize.height());
}
+
+ QPoint curSize(width(), height());
+ QPoint statsDockSize(statsDock->width(), statsDock->height());
+ QPoint statsDockPos = curSize / 2 - statsDockSize / 2;
+ QPoint newPos = curPos + statsDockPos;
+ statsDock->move(newPos);
}
static void SaveAudioDevice(const char *name, int channel, obs_data_t *parent,
@@ -1595,8 +1618,8 @@ void OBSBasic::OBSInit()
#endif
/* setup stats dock */
- OBSBasicStats *statsDlg = new OBSBasicStats(ui->statsDock, false);
- ui->statsDock->setWidget(statsDlg);
+ OBSBasicStats *statsDlg = new OBSBasicStats(statsDock, false);
+ statsDock->setWidget(statsDlg);
const char *dockStateStr = config_get_string(App()->GlobalConfig(),
"BasicWindow", "DockState");
@@ -6121,8 +6144,7 @@ void OBSBasic::on_resetUI_triggered()
ui->sourcesDock,
ui->mixerDock,
ui->transitionsDock,
- ui->controlsDock,
- ui->statsDock
+ ui->controlsDock
};
QList sizes {
@@ -6138,7 +6160,8 @@ void OBSBasic::on_resetUI_triggered()
ui->mixerDock->setVisible(true);
ui->transitionsDock->setVisible(true);
ui->controlsDock->setVisible(true);
- ui->statsDock->setVisible(true);
+ statsDock->setVisible(false);
+ statsDock->setFloating(true);
resizeDocks(docks, {cy, cy, cy, cy, cy}, Qt::Vertical);
resizeDocks(docks, sizes, Qt::Horizontal);
@@ -6156,7 +6179,7 @@ void OBSBasic::on_lockUI_toggled(bool lock)
ui->mixerDock->setFeatures(features);
ui->transitionsDock->setFeatures(features);
ui->controlsDock->setFeatures(features);
- ui->statsDock->setFeatures(features);
+ statsDock->setFeatures(features);
}
void OBSBasic::on_toggleListboxToolbars_toggled(bool visible)
diff --git a/UI/window-basic-main.hpp b/UI/window-basic-main.hpp
index b026bc43f..6171823be 100644
--- a/UI/window-basic-main.hpp
+++ b/UI/window-basic-main.hpp
@@ -149,6 +149,7 @@ private:
QPointer transformWindow;
QPointer advAudioWindow;
QPointer filters;
+ QPointer statsDock;
QPointer about;
QPointer cpuUsageTimer;