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 @@ -644,7 +644,7 @@ 0 0 - 78 + 230 16 @@ -698,7 +698,7 @@ 0 0 16 - 28 + 230 @@ -1101,21 +1101,6 @@ - - - - 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;