mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-06-07 15:25:21 -04:00
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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user