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
This commit is contained in:
Igor Bochkariov 2022-09-01 16:29:42 +04:00 committed by Matt Gajownik
parent 382edcebb7
commit df3b294fc3
4 changed files with 38 additions and 0 deletions

View file

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

View file

@ -720,6 +720,7 @@
<string>Basic.MainMenu.Docks</string>
</property>
<addaction name="lockDocks"/>
<addaction name="sideDocks"/>
<addaction name="resetDocks"/>
<addaction name="separator"/>
</widget>
@ -2196,6 +2197,17 @@
<string>Basic.MainMenu.Docks.LockDocks</string>
</property>
</action>
<action name="sideDocks">
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>false</bool>
</property>
<property name="text">
<string>Basic.MainMenu.Docks.SideDocks</string>
</property>
</action>
<action name="actionHelpPortal">
<property name="text">
<string>Basic.MainMenu.Help.HelpPortal</string>

View file

@ -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();

View file

@ -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();