From 3cfd30ae2a33da7c510166a6d02cc5f7154d9a10 Mon Sep 17 00:00:00 2001 From: Clayton Groeneveld Date: Sat, 29 Jan 2022 01:55:03 -0600 Subject: [PATCH] UI: Add ability to reset whole UI Users for example disable all of the items in the view menu. This allows them to easily reset them all. --- UI/data/locale/en-US.ini | 5 +++-- UI/forms/OBSBasic.ui | 18 ++++++++++++------ UI/window-basic-main.cpp | 30 ++++++++++++++++++++---------- UI/window-basic-main.hpp | 3 ++- 4 files changed, 37 insertions(+), 19 deletions(-) diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini index aae9569c3..c1a015603 100644 --- a/UI/data/locale/en-US.ini +++ b/UI/data/locale/en-US.ini @@ -740,11 +740,12 @@ Basic.MainMenu.View.SceneTransitions="S&cene Transitions" Basic.MainMenu.View.SourceIcons="Source &Icons" Basic.MainMenu.View.StatusBar="&Status Bar" Basic.MainMenu.View.Fullscreen.Interface="Fullscreen Interface" +Basic.MainMenu.View.ResetUI="&Reset UI" #basic mode docks menu Basic.MainMenu.Docks="&Docks" -Basic.MainMenu.Docks.ResetUI="&Reset UI" -Basic.MainMenu.Docks.LockUI="&Lock UI" +Basic.MainMenu.Docks.ResetDocks="&Reset Docks" +Basic.MainMenu.Docks.LockDocks="&Lock 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 79e2c40ae..53f1aa131 100644 --- a/UI/forms/OBSBasic.ui +++ b/UI/forms/OBSBasic.ui @@ -657,6 +657,11 @@ Basic.MainMenu.View + + + Basic.MainMenu.View.ResetUI + + Basic.MainMenu.View.Fullscreen.Interface @@ -665,6 +670,7 @@ F11 + @@ -685,8 +691,8 @@ Basic.MainMenu.Docks - - + + @@ -2052,12 +2058,12 @@ Basic.Stats - + - Basic.MainMenu.Docks.ResetUI + Basic.MainMenu.Docks.ResetDocks - + true @@ -2065,7 +2071,7 @@ true - Basic.MainMenu.Docks.LockUI + Basic.MainMenu.Docks.LockDocks diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index 652485bae..2fd803e63 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -1980,12 +1980,12 @@ void OBSBasic::OBSInit() App()->GlobalConfig(), "BasicWindow", "DockState"); if (!dockStateStr) { - on_resetUI_triggered(); + on_resetDocks_triggered(); } else { QByteArray dockState = QByteArray::fromBase64(QByteArray(dockStateStr)); if (!restoreState(dockState)) - on_resetUI_triggered(); + on_resetDocks_triggered(); } bool pre23Defaults = config_get_bool(App()->GlobalConfig(), "General", @@ -2004,10 +2004,10 @@ void OBSBasic::OBSInit() bool docksLocked = config_get_bool(App()->GlobalConfig(), "BasicWindow", "DocksLocked"); - on_lockUI_toggled(docksLocked); - ui->lockUI->blockSignals(true); - ui->lockUI->setChecked(docksLocked); - ui->lockUI->blockSignals(false); + on_lockDocks_toggled(docksLocked); + ui->lockDocks->blockSignals(true); + ui->lockDocks->setChecked(docksLocked); + ui->lockDocks->blockSignals(false); SystemTray(true); @@ -2690,7 +2690,7 @@ OBSBasic::~OBSBasic() config_set_bool(App()->GlobalConfig(), "BasicWindow", "PreviewProgramMode", IsPreviewProgramMode()); config_set_bool(App()->GlobalConfig(), "BasicWindow", "DocksLocked", - ui->lockUI->isChecked()); + ui->lockDocks->isChecked()); config_save_safe(App()->GlobalConfig(), "tmp", nullptr); #ifdef _WIN32 @@ -8776,7 +8776,7 @@ int OBSBasic::GetProfilePath(char *path, size_t size, const char *file) const return snprintf(path, size, "%s/%s/%s", profiles_path, profile, file); } -void OBSBasic::on_resetUI_triggered() +void OBSBasic::on_resetDocks_triggered() { /* prune deleted extra docks */ for (int i = extraDocks.size() - 1; i >= 0; i--) { @@ -8838,7 +8838,7 @@ void OBSBasic::on_resetUI_triggered() activateWindow(); } -void OBSBasic::on_lockUI_toggled(bool lock) +void OBSBasic::on_lockDocks_toggled(bool lock) { QDockWidget::DockWidgetFeatures features = lock ? QDockWidget::NoDockWidgetFeatures @@ -8865,6 +8865,16 @@ void OBSBasic::on_lockUI_toggled(bool lock) } } +void OBSBasic::on_resetUI_triggered() +{ + on_resetDocks_triggered(); + + ui->toggleListboxToolbars->setChecked(true); + ui->toggleContextBar->setChecked(true); + ui->toggleSourceIcons->setChecked(true); + ui->toggleStatusBar->setChecked(true); +} + void OBSBasic::on_toggleListboxToolbars_toggled(bool visible) { ui->sourcesToolbar->setVisible(visible); @@ -9605,7 +9615,7 @@ QAction *OBSBasic::AddDockWidget(QDockWidget *dock) assignDockToggle(dock, action); extraDocks.push_back(dock); - bool lock = ui->lockUI->isChecked(); + bool lock = ui->lockDocks->isChecked(); QDockWidget::DockWidgetFeatures features = lock ? QDockWidget::NoDockWidgetFeatures : (QDockWidget::DockWidgetClosable | diff --git a/UI/window-basic-main.hpp b/UI/window-basic-main.hpp index f569398e0..24660492b 100644 --- a/UI/window-basic-main.hpp +++ b/UI/window-basic-main.hpp @@ -1083,7 +1083,8 @@ private slots: void on_stats_triggered(); void on_resetUI_triggered(); - void on_lockUI_toggled(bool lock); + void on_resetDocks_triggered(); + void on_lockDocks_toggled(bool lock); void PauseToggled();