Browse Source

UI: Add option to toggle multiview scene names

Shaolin 7 năm trước cách đây
mục cha
commit
4649783b1e

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

@@ -573,6 +573,7 @@ Basic.Settings.General.SwitchOnDoubleClick="Transition to scene when double-clic
 Basic.Settings.General.StudioPortraitLayout="Enable portrait/vertical layout"
 Basic.Settings.General.Multiview="Multiview"
 Basic.Settings.General.Multiview.MouseSwitch="Click to switch between scenes"
+Basic.Settings.General.Multiview.DrawSourceNames="Show scene names"
 Basic.Settings.General.MultiviewLayout="Multiview Layout"
 Basic.Settings.General.MultiviewLayout.Horizontal.Top="Horizontal, Top (8 Scenes)"
 Basic.Settings.General.MultiviewLayout.Horizontal.Bottom="Horizontal, Bottom (8 Scenes)"

+ 11 - 1
UI/forms/OBSBasicSettings.ui

@@ -627,9 +627,19 @@
                     </widget>
                    </item>
                    <item row="1" column="1">
+                    <widget class="QCheckBox" name="multiviewDrawNames">
+                     <property name="text">
+                      <string>Basic.Settings.General.Multiview.DrawSourceNames</string>
+                     </property>
+                     <property name="checked">
+                      <bool>true</bool>
+                     </property>
+                    </widget>
+                   </item>
+                   <item row="2" column="1">
                     <widget class="QComboBox" name="multiviewLayout"/>
                    </item>
-                   <item row="1" column="0">
+                   <item row="2" column="0">
                     <widget class="QLabel" name="label_64">
                      <property name="text">
                       <string>Basic.Settings.General.MultiviewLayout</string>

+ 3 - 0
UI/obs-app.cpp

@@ -424,6 +424,9 @@ bool OBSApp::InitGlobalConfigDefaults()
 	config_set_default_bool(globalConfig, "BasicWindow",
 			"MultiviewMouseSwitch", true);
 
+	config_set_default_bool(globalConfig, "BasicWindow",
+			"MultiviewDrawNames", true);
+
 #ifdef _WIN32
 	config_set_default_bool(globalConfig, "Audio", "DisableAudioDucking",
 			true);

+ 10 - 0
UI/window-basic-settings.cpp

@@ -319,6 +319,7 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
 	HookWidget(ui->doubleClickSwitch,    CHECK_CHANGED,  GENERAL_CHANGED);
 	HookWidget(ui->studioPortraitLayout, CHECK_CHANGED,  GENERAL_CHANGED);
 	HookWidget(ui->multiviewMouseSwitch, CHECK_CHANGED,  GENERAL_CHANGED);
+	HookWidget(ui->multiviewDrawNames,   CHECK_CHANGED,  GENERAL_CHANGED);
 	HookWidget(ui->multiviewLayout,      COMBO_CHANGED,  GENERAL_CHANGED);
 	HookWidget(ui->outputMode,           COMBO_CHANGED,  OUTPUTS_CHANGED);
 	HookWidget(ui->streamType,           COMBO_CHANGED,  STREAM1_CHANGED);
@@ -1105,6 +1106,10 @@ void OBSBasicSettings::LoadGeneralSettings()
 			"BasicWindow", "MultiviewMouseSwitch");
 	ui->multiviewMouseSwitch->setChecked(multiviewMouseSwitch);
 
+	bool multiviewDrawNames = config_get_bool(GetGlobalConfig(),
+			"BasicWindow", "MultiviewDrawNames");
+	ui->multiviewDrawNames->setChecked(multiviewDrawNames);
+
 	ui->multiviewLayout->addItem(QTStr(
 			"Basic.Settings.General.MultiviewLayout.Horizontal.Top"),
 			static_cast<int>(MultiviewLayout::HORIZONTAL_TOP_8_SCENES));
@@ -2714,6 +2719,11 @@ void OBSBasicSettings::SaveGeneralSettings()
 				"MultiviewMouseSwitch",
 				ui->multiviewMouseSwitch->isChecked());
 
+	if (WidgetChanged(ui->multiviewDrawNames))
+		config_set_bool(GetGlobalConfig(), "BasicWindow",
+				"MultiviewDrawNames",
+				ui->multiviewDrawNames->isChecked());
+
 	if (WidgetChanged(ui->multiviewLayout)) {
 		config_set_int(GetGlobalConfig(), "BasicWindow",
 				"MultiviewLayout",

+ 25 - 17
UI/window-projector.cpp

@@ -494,7 +494,8 @@ void OBSProjector::OBSRenderMultiview(void *data, uint32_t cx, uint32_t cy)
 			/* ----------- */
 
 			// Render the label
-			if (!label)
+			if (!label || !config_get_bool(GetGlobalConfig(),
+					"BasicWindow", "MultiviewDrawNames"))
 				continue;
 
 			offset = labelOffset(label, quarterCX);
@@ -548,14 +549,17 @@ void OBSProjector::OBSRenderMultiview(void *data, uint32_t cx, uint32_t cy)
 	/* ----------- */
 
 	// Draw the Label
-	gs_matrix_push();
-	gs_matrix_translate3f(labelX, labelY, 0.0f);
-	gs_matrix_scale3f(hiScaleX, hiScaleY, 1.0f);
-	drawBox(obs_source_get_width(previewLabel),
-			obs_source_get_height(previewLabel) +
-					int(halfCX * 0.015f), labelColor);
-	obs_source_video_render(previewLabel);
-	gs_matrix_pop();
+	if (config_get_bool(GetGlobalConfig(), "BasicWindow",
+			"MultiviewDrawNames")) {
+		gs_matrix_push();
+		gs_matrix_translate3f(labelX, labelY, 0.0f);
+		gs_matrix_scale3f(hiScaleX, hiScaleY, 1.0f);
+		drawBox(obs_source_get_width(previewLabel),
+				obs_source_get_height(previewLabel) +
+				int(halfCX * 0.015f), labelColor);
+		obs_source_video_render(previewLabel);
+		gs_matrix_pop();
+	}
 
 	/* ----------------------------- */
 	/* draw program                  */
@@ -576,14 +580,18 @@ void OBSProjector::OBSRenderMultiview(void *data, uint32_t cx, uint32_t cy)
 	/* ----------- */
 
 	// Draw the Label
-	gs_matrix_push();
-	gs_matrix_translate3f(labelX, labelY, 0.0f);
-	gs_matrix_scale3f(hiScaleX, hiScaleY, 1.0f);
-	drawBox(obs_source_get_width(programLabel),
-			obs_source_get_height(programLabel) +
-					int(halfCX * 0.015f), labelColor);
-	obs_source_video_render(programLabel);
-	gs_matrix_pop();
+	if (config_get_bool(GetGlobalConfig(), "BasicWindow",
+			"MultiviewDrawNames")) {
+		gs_matrix_push();
+		gs_matrix_translate3f(labelX, labelY, 0.0f);
+		gs_matrix_scale3f(hiScaleX, hiScaleY, 1.0f);
+		drawBox(obs_source_get_width(programLabel),
+				obs_source_get_height(programLabel) +
+				int(halfCX * 0.015f), labelColor);
+		obs_source_video_render(programLabel);
+		gs_matrix_pop();
+	}
+
 	endRegion();
 }