UI: Undo/fix stats dock changes to main window

The stats dock was incorrectly added to the .ui file, causing the stats
dock to show by default on startup, and just generally causing a bad
default startup UI appearance.  This fixes that by adding the stats dock
programmatically/dynamically instead of modifying the .ui file.
This commit is contained in:
jp9000
2018-09-16 10:02:43 -07:00
parent 3c22cf35c9
commit e51adb0fdf
3 changed files with 36 additions and 27 deletions

View File

@@ -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<int> 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)