UI: Add option to toggle multiview scene names

master
Shaolin 2018-03-16 23:00:32 -03:00
parent e0e2cc57a0
commit 4649783b1e
5 changed files with 50 additions and 18 deletions

View File

@ -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.StudioPortraitLayout="Enable portrait/vertical layout"
Basic.Settings.General.Multiview="Multiview" Basic.Settings.General.Multiview="Multiview"
Basic.Settings.General.Multiview.MouseSwitch="Click to switch between scenes" 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="Multiview Layout"
Basic.Settings.General.MultiviewLayout.Horizontal.Top="Horizontal, Top (8 Scenes)" Basic.Settings.General.MultiviewLayout.Horizontal.Top="Horizontal, Top (8 Scenes)"
Basic.Settings.General.MultiviewLayout.Horizontal.Bottom="Horizontal, Bottom (8 Scenes)" Basic.Settings.General.MultiviewLayout.Horizontal.Bottom="Horizontal, Bottom (8 Scenes)"

View File

@ -627,9 +627,19 @@
</widget> </widget>
</item> </item>
<item row="1" column="1"> <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"/> <widget class="QComboBox" name="multiviewLayout"/>
</item> </item>
<item row="1" column="0"> <item row="2" column="0">
<widget class="QLabel" name="label_64"> <widget class="QLabel" name="label_64">
<property name="text"> <property name="text">
<string>Basic.Settings.General.MultiviewLayout</string> <string>Basic.Settings.General.MultiviewLayout</string>

View File

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

View File

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

View File

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