From a21da59741ff4aee2f1539bd932485c17cc23ef1 Mon Sep 17 00:00:00 2001 From: SuslikV Date: Sat, 12 Aug 2017 19:45:25 +0200 Subject: [PATCH] UI: Fix parent window geometry loading The parent window adjusted according to child object polices and hint sizes. Thus, it is possible to disable all docking panes to restore true parent geometry first, the docking geometry and settings will be restored later in OBSBasic::OBSInit(). --- UI/window-basic-main.cpp | 42 ++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index 7eb624a90..8fe7dc4c6 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -151,23 +151,6 @@ OBSBasic::OBSBasic(QWidget *parent) ui->sources->setItemDelegate(new VisibilityItemDelegate(ui->sources)); - const char *geometry = config_get_string(App()->GlobalConfig(), - "BasicWindow", "geometry"); - if (geometry != NULL) { - QByteArray byteArray = QByteArray::fromBase64( - QByteArray(geometry)); - restoreGeometry(byteArray); - - QRect windowGeometry = normalGeometry(); - if (!WindowPositionValid(windowGeometry)) { - QRect rect = App()->desktop()->geometry(); - setGeometry(QStyle::alignedRect( - Qt::LeftToRight, - Qt::AlignCenter, - size(), rect)); - } - } - char styleSheetPath[512]; int ret = GetProfilePath(styleSheetPath, sizeof(styleSheetPath), "stylesheet.qss"); @@ -286,6 +269,31 @@ OBSBasic::OBSBasic(QWidget *parent) assignDockToggle(ui->mixerDock, ui->toggleMixer); assignDockToggle(ui->transitionsDock, ui->toggleTransitions); assignDockToggle(ui->controlsDock, ui->toggleControls); + + //hide all docking panes + ui->toggleScenes->setChecked(false); + ui->toggleSources->setChecked(false); + ui->toggleMixer->setChecked(false); + ui->toggleTransitions->setChecked(false); + ui->toggleControls->setChecked(false); + + //restore parent window geometry + const char *geometry = config_get_string(App()->GlobalConfig(), + "BasicWindow", "geometry"); + if (geometry != NULL) { + QByteArray byteArray = QByteArray::fromBase64( + QByteArray(geometry)); + restoreGeometry(byteArray); + + QRect windowGeometry = normalGeometry(); + if (!WindowPositionValid(windowGeometry)) { + QRect rect = App()->desktop()->geometry(); + setGeometry(QStyle::alignedRect( + Qt::LeftToRight, + Qt::AlignCenter, + size(), rect)); + } + } } static void SaveAudioDevice(const char *name, int channel, obs_data_t *parent,