Преглед изворни кода

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
Igor Bochkariov пре 3 година
родитељ
комит
df3b294fc3
4 измењених фајлова са 38 додато и 0 уклоњено
  1. 1 0
      UI/data/locale/en-US.ini
  2. 12 0
      UI/forms/OBSBasic.ui
  3. 24 0
      UI/window-basic-main.cpp
  4. 1 0
      UI/window-basic-main.hpp

+ 1 - 0
UI/data/locale/en-US.ini

@@ -804,6 +804,7 @@ Basic.MainMenu.View.SceneListMode="Scene List Mode"
 Basic.MainMenu.Docks="&Docks"
 Basic.MainMenu.Docks="&Docks"
 Basic.MainMenu.Docks.ResetDocks="&Reset Docks"
 Basic.MainMenu.Docks.ResetDocks="&Reset Docks"
 Basic.MainMenu.Docks.LockDocks="&Lock Docks"
 Basic.MainMenu.Docks.LockDocks="&Lock Docks"
+Basic.MainMenu.Docks.SideDocks="&Full-height docks"
 Basic.MainMenu.Docks.CustomBrowserDocks="&Custom Browser Docks..."
 Basic.MainMenu.Docks.CustomBrowserDocks="&Custom Browser Docks..."
 
 
 # basic mode profile/scene collection menus
 # basic mode profile/scene collection menus

+ 12 - 0
UI/forms/OBSBasic.ui

@@ -720,6 +720,7 @@
      <string>Basic.MainMenu.Docks</string>
      <string>Basic.MainMenu.Docks</string>
     </property>
     </property>
     <addaction name="lockDocks"/>
     <addaction name="lockDocks"/>
+    <addaction name="sideDocks"/>
     <addaction name="resetDocks"/>
     <addaction name="resetDocks"/>
     <addaction name="separator"/>
     <addaction name="separator"/>
    </widget>
    </widget>
@@ -2196,6 +2197,17 @@
     <string>Basic.MainMenu.Docks.LockDocks</string>
     <string>Basic.MainMenu.Docks.LockDocks</string>
    </property>
    </property>
   </action>
   </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">
   <action name="actionHelpPortal">
    <property name="text">
    <property name="text">
     <string>Basic.MainMenu.Help.HelpPortal</string>
     <string>Basic.MainMenu.Help.HelpPortal</string>

+ 24 - 0
UI/window-basic-main.cpp

@@ -2188,6 +2188,13 @@ void OBSBasic::OBSInit()
 	ui->lockDocks->setChecked(docksLocked);
 	ui->lockDocks->setChecked(docksLocked);
 	ui->lockDocks->blockSignals(false);
 	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);
 	SystemTray(true);
 
 
 	TaskbarOverlayInit();
 	TaskbarOverlayInit();
@@ -2916,6 +2923,8 @@ OBSBasic::~OBSBasic()
 			"PreviewProgramMode", IsPreviewProgramMode());
 			"PreviewProgramMode", IsPreviewProgramMode());
 	config_set_bool(App()->GlobalConfig(), "BasicWindow", "DocksLocked",
 	config_set_bool(App()->GlobalConfig(), "BasicWindow", "DocksLocked",
 			ui->lockDocks->isChecked());
 			ui->lockDocks->isChecked());
+	config_set_bool(App()->GlobalConfig(), "BasicWindow", "SideDocks",
+			ui->sideDocks->isChecked());
 	config_save_safe(App()->GlobalConfig(), "tmp", nullptr);
 	config_save_safe(App()->GlobalConfig(), "tmp", nullptr);
 
 
 #ifdef BROWSER_AVAILABLE
 #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()
 void OBSBasic::on_resetUI_triggered()
 {
 {
 	on_resetDocks_triggered();
 	on_resetDocks_triggered();

+ 1 - 0
UI/window-basic-main.hpp

@@ -1158,6 +1158,7 @@ private slots:
 	void on_resetDocks_triggered(bool force = false);
 	void on_resetDocks_triggered(bool force = false);
 	void on_lockDocks_toggled(bool lock);
 	void on_lockDocks_toggled(bool lock);
 	void on_multiviewProjectorWindowed_triggered();
 	void on_multiviewProjectorWindowed_triggered();
+	void on_sideDocks_toggled(bool side);
 
 
 	void PauseToggled();
 	void PauseToggled();