mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-09-19 20:32:15 +02:00
UI: Add Studio Mode layout option for portrait mode displays
This commit adds a checkbox to general setting to allow users to enable a vertically oriented layout for studio mode. This commit addresses mantis issue 827: https://obsproject.com/mantis/view.php?id=827 Closes jp9000/obs-studio#1072
This commit is contained in:
parent
68e67366d2
commit
f140104da8
@ -558,6 +558,7 @@ Basic.Settings.General.SysTrayWhenStarted="Minimize to system tray when started"
|
||||
Basic.Settings.General.SystemTrayHideMinimize="Always minimize to system tray instead of task bar"
|
||||
Basic.Settings.General.SaveProjectors="Save projectors on exit"
|
||||
Basic.Settings.General.SwitchOnDoubleClick="Transition to scene when double-clicked"
|
||||
Basic.Settings.General.StudioPortraitLayout="Enable portrait/vertical layout"
|
||||
|
||||
# basic mode 'stream' settings
|
||||
Basic.Settings.Stream="Stream"
|
||||
|
@ -146,7 +146,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>801</width>
|
||||
<height>698</height>
|
||||
<height>715</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_19">
|
||||
@ -572,6 +572,13 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QCheckBox" name="studioPortraitLayout">
|
||||
<property name="text">
|
||||
<string>Basic.Settings.General.StudioPortraitLayout</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
@ -3349,7 +3356,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>80</width>
|
||||
<width>63</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
</property>
|
||||
@ -3733,7 +3740,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>593</width>
|
||||
<width>803</width>
|
||||
<height>761</height>
|
||||
</rect>
|
||||
</property>
|
||||
|
@ -1016,6 +1016,7 @@ void OBSBasic::SetPreviewProgramMode(bool enabled)
|
||||
|
||||
ui->previewLayout->addWidget(programOptions);
|
||||
ui->previewLayout->addWidget(program);
|
||||
ui->previewLayout->setAlignment(programOptions, Qt::AlignCenter);
|
||||
program->show();
|
||||
|
||||
if (api)
|
||||
@ -1059,6 +1060,7 @@ void OBSBasic::SetPreviewProgramMode(bool enabled)
|
||||
"-------------------");
|
||||
}
|
||||
|
||||
ResetUI();
|
||||
UpdateTitleBar();
|
||||
}
|
||||
|
||||
|
@ -2986,6 +2986,17 @@ static inline enum video_format GetVideoFormatFromName(const char *name)
|
||||
return VIDEO_FORMAT_RGBA;
|
||||
}
|
||||
|
||||
void OBSBasic::ResetUI()
|
||||
{
|
||||
bool studioPortraitLayout = config_get_bool(GetGlobalConfig(),
|
||||
"BasicWindow", "StudioPortraitLayout");
|
||||
|
||||
if (studioPortraitLayout)
|
||||
ui->previewLayout->setDirection(QBoxLayout::TopToBottom);
|
||||
else
|
||||
ui->previewLayout->setDirection(QBoxLayout::LeftToRight);
|
||||
}
|
||||
|
||||
int OBSBasic::ResetVideo()
|
||||
{
|
||||
if (outputHandler && outputHandler->Active())
|
||||
|
@ -494,6 +494,7 @@ public:
|
||||
bool StreamingActive() const;
|
||||
bool Active() const;
|
||||
|
||||
void ResetUI();
|
||||
int ResetVideo();
|
||||
bool ResetAudio();
|
||||
|
||||
|
@ -316,6 +316,7 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
|
||||
HookWidget(ui->sourceSnapping, CHECK_CHANGED, GENERAL_CHANGED);
|
||||
HookWidget(ui->snapDistance, DSCROLL_CHANGED,GENERAL_CHANGED);
|
||||
HookWidget(ui->doubleClickSwitch, CHECK_CHANGED, GENERAL_CHANGED);
|
||||
HookWidget(ui->studioPortraitLayout, CHECK_CHANGED, GENERAL_CHANGED);
|
||||
HookWidget(ui->outputMode, COMBO_CHANGED, OUTPUTS_CHANGED);
|
||||
HookWidget(ui->streamType, COMBO_CHANGED, STREAM1_CHANGED);
|
||||
HookWidget(ui->simpleOutputPath, EDIT_CHANGED, OUTPUTS_CHANGED);
|
||||
@ -1082,6 +1083,10 @@ void OBSBasicSettings::LoadGeneralSettings()
|
||||
"BasicWindow", "TransitionOnDoubleClick");
|
||||
ui->doubleClickSwitch->setChecked(doubleClickSwitch);
|
||||
|
||||
bool studioPortraitLayout = config_get_bool(GetGlobalConfig(),
|
||||
"BasicWindow", "StudioPortraitLayout");
|
||||
ui->studioPortraitLayout->setChecked(studioPortraitLayout);
|
||||
|
||||
loading = false;
|
||||
}
|
||||
|
||||
@ -2643,6 +2648,14 @@ void OBSBasicSettings::SaveGeneralSettings()
|
||||
config_set_bool(GetGlobalConfig(), "BasicWindow",
|
||||
"SaveProjectors",
|
||||
ui->saveProjectors->isChecked());
|
||||
|
||||
if (WidgetChanged(ui->studioPortraitLayout)) {
|
||||
config_set_bool(GetGlobalConfig(), "BasicWindow",
|
||||
"StudioPortraitLayout",
|
||||
ui->studioPortraitLayout->isChecked());
|
||||
|
||||
main->ResetUI();
|
||||
}
|
||||
}
|
||||
|
||||
void OBSBasicSettings::SaveStream1Settings()
|
||||
|
Loading…
Reference in New Issue
Block a user