UI: Add Multiview Layout Options

This commit is contained in:
Shaolin
2017-12-13 19:42:19 -02:00
parent 864caee16c
commit abc26b87fe
4 changed files with 255 additions and 42 deletions

View File

@@ -45,6 +45,7 @@
#include "window-basic-main.hpp"
#include "window-basic-settings.hpp"
#include "window-basic-main-outputs.hpp"
#include "window-projector.hpp"
#include <util/platform.h>
@@ -317,6 +318,7 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
HookWidget(ui->snapDistance, DSCROLL_CHANGED,GENERAL_CHANGED);
HookWidget(ui->doubleClickSwitch, CHECK_CHANGED, GENERAL_CHANGED);
HookWidget(ui->studioPortraitLayout, 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);
HookWidget(ui->simpleOutputPath, EDIT_CHANGED, OUTPUTS_CHANGED);
@@ -1087,6 +1089,31 @@ void OBSBasicSettings::LoadGeneralSettings()
"BasicWindow", "StudioPortraitLayout");
ui->studioPortraitLayout->setChecked(studioPortraitLayout);
ui->multiviewLayout->addItem(QTStr(
"Basic.Settings.General.MultiviewLayout.Horizontal.Top"),
QT_UTF8("horizontaltop"));
ui->multiviewLayout->addItem(QTStr(
"Basic.Settings.General.MultiviewLayout.Horizontal.Bottom"),
QT_UTF8("horizontalbottom"));
ui->multiviewLayout->addItem(QTStr(
"Basic.Settings.General.MultiviewLayout.Vertical.Left"),
QT_UTF8("verticalleft"));
ui->multiviewLayout->addItem(QTStr(
"Basic.Settings.General.MultiviewLayout.Vertical.Right"),
QT_UTF8("verticalright"));
const char *multiviewLayoutText = config_get_string(GetGlobalConfig(),
"BasicWindow", "MultiviewLayout");
if (astrcmpi(multiviewLayoutText, "horizontalbottom") == 0)
ui->multiviewLayout->setCurrentIndex(1);
else if (astrcmpi(multiviewLayoutText, "verticalleft") == 0)
ui->multiviewLayout->setCurrentIndex(2);
else if (astrcmpi(multiviewLayoutText, "verticalright") == 0)
ui->multiviewLayout->setCurrentIndex(3);
else
ui->multiviewLayout->setCurrentIndex(0);
loading = false;
}
@@ -2656,6 +2683,14 @@ void OBSBasicSettings::SaveGeneralSettings()
main->ResetUI();
}
if (WidgetChanged(ui->multiviewLayout)) {
config_set_string(GetGlobalConfig(), "BasicWindow",
"MultiviewLayout",
QT_TO_UTF8(GetComboData(ui->multiviewLayout)));
OBSProjector::UpdateMultiviewProjectors();
}
}
void OBSBasicSettings::SaveStream1Settings()