UI: Add option to toggle multiview scene names
parent
e0e2cc57a0
commit
4649783b1e
|
@ -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)"
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue