From df3b294fc3bff75e96c4ee08952f1ddf673d5818 Mon Sep 17 00:00:00 2001 From: Igor Bochkariov Date: Thu, 1 Sep 2022 16:29:42 +0400 Subject: [PATCH] UI: allow side docks to be tall before: widgets docked on the sides of the preview are of the height of the preview after: the user can toggle the setting in the docks menu so the side widgets are of the height of the whole window UI: change menu label to Full-height docks --- UI/data/locale/en-US.ini | 1 + UI/forms/OBSBasic.ui | 12 ++++++++++++ UI/window-basic-main.cpp | 24 ++++++++++++++++++++++++ UI/window-basic-main.hpp | 1 + 4 files changed, 38 insertions(+) diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini index 275fae88a..f06ea1314 100644 --- a/UI/data/locale/en-US.ini +++ b/UI/data/locale/en-US.ini @@ -804,6 +804,7 @@ Basic.MainMenu.View.SceneListMode="Scene List Mode" Basic.MainMenu.Docks="&Docks" Basic.MainMenu.Docks.ResetDocks="&Reset Docks" Basic.MainMenu.Docks.LockDocks="&Lock Docks" +Basic.MainMenu.Docks.SideDocks="&Full-height docks" Basic.MainMenu.Docks.CustomBrowserDocks="&Custom Browser Docks..." # basic mode profile/scene collection menus diff --git a/UI/forms/OBSBasic.ui b/UI/forms/OBSBasic.ui index 6c55f4c42..d70335508 100644 --- a/UI/forms/OBSBasic.ui +++ b/UI/forms/OBSBasic.ui @@ -720,6 +720,7 @@ Basic.MainMenu.Docks + @@ -2196,6 +2197,17 @@ Basic.MainMenu.Docks.LockDocks + + + true + + + false + + + Basic.MainMenu.Docks.SideDocks + + Basic.MainMenu.Help.HelpPortal diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index 97ad0806b..4d35a5160 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -2188,6 +2188,13 @@ void OBSBasic::OBSInit() ui->lockDocks->setChecked(docksLocked); ui->lockDocks->blockSignals(false); + bool sideDocks = config_get_bool(App()->GlobalConfig(), "BasicWindow", + "SideDocks"); + on_sideDocks_toggled(sideDocks); + ui->sideDocks->blockSignals(true); + ui->sideDocks->setChecked(sideDocks); + ui->sideDocks->blockSignals(false); + SystemTray(true); TaskbarOverlayInit(); @@ -2916,6 +2923,8 @@ OBSBasic::~OBSBasic() "PreviewProgramMode", IsPreviewProgramMode()); config_set_bool(App()->GlobalConfig(), "BasicWindow", "DocksLocked", ui->lockDocks->isChecked()); + config_set_bool(App()->GlobalConfig(), "BasicWindow", "SideDocks", + ui->sideDocks->isChecked()); config_save_safe(App()->GlobalConfig(), "tmp", nullptr); #ifdef BROWSER_AVAILABLE @@ -9410,6 +9419,21 @@ void OBSBasic::on_lockDocks_toggled(bool lock) } } +void OBSBasic::on_sideDocks_toggled(bool side) +{ + if (side) { + setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea); + setCorner(Qt::TopRightCorner, Qt::RightDockWidgetArea); + setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea); + setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea); + } else { + setCorner(Qt::TopLeftCorner, Qt::TopDockWidgetArea); + setCorner(Qt::TopRightCorner, Qt::TopDockWidgetArea); + setCorner(Qt::BottomLeftCorner, Qt::BottomDockWidgetArea); + setCorner(Qt::BottomRightCorner, Qt::BottomDockWidgetArea); + } +} + void OBSBasic::on_resetUI_triggered() { on_resetDocks_triggered(); diff --git a/UI/window-basic-main.hpp b/UI/window-basic-main.hpp index 86509213d..f4de8c2b4 100644 --- a/UI/window-basic-main.hpp +++ b/UI/window-basic-main.hpp @@ -1158,6 +1158,7 @@ private slots: void on_resetDocks_triggered(bool force = false); void on_lockDocks_toggled(bool lock); void on_multiviewProjectorWindowed_triggered(); + void on_sideDocks_toggled(bool side); void PauseToggled();