UI: Add preview/program labels in studio mode

This commit is contained in:
Clayton Groenveld
2019-03-03 22:38:23 -06:00
committed by Clayton Groeneveld
parent 748067c930
commit 5a5efa0b3e
12 changed files with 126 additions and 14 deletions
+25 -2
View File
@@ -696,6 +696,7 @@ void OBSBasic::SetCurrentScene(OBSSource scene, bool force, bool direct)
void OBSBasic::CreateProgramDisplay()
{
program = new OBSQTDisplay();
program->setContextMenuPolicy(Qt::CustomContextMenu);
connect(program.data(), &QWidget::customContextMenuRequested,
this, &OBSBasic::on_program_customContextMenuRequested);
@@ -1192,6 +1193,8 @@ void OBSBasic::SetPreviewProgramMode(bool enabled)
if (IsPreviewProgramMode() == enabled)
return;
ui->previewLabel->setHidden(!enabled);
ui->modeSwitch->setChecked(enabled);
os_atomic_set_bool(&previewProgramMode, enabled);
@@ -1230,10 +1233,28 @@ void OBSBasic::SetPreviewProgramMode(bool enabled)
RefreshQuickTransitions();
programLabel = new QLabel(QTStr("StudioMode.Program"));
programLabel->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
programLabel->setProperty("themeID", "previewProgramLabels");
programWidget = new QWidget();
programLayout = new QVBoxLayout();
programLayout->setContentsMargins(0, 0, 0, 0);
programLayout->addWidget(programLabel);
programLayout->addWidget(program);
bool labels = config_get_bool(GetGlobalConfig(),
"BasicWindow", "StudioModeLabels");
programLabel->setHidden(!labels);
programWidget->setLayout(programLayout);
ui->previewLayout->addWidget(programOptions);
ui->previewLayout->addWidget(program);
ui->previewLayout->addWidget(programWidget);
ui->previewLayout->setAlignment(programOptions, Qt::AlignCenter);
program->show();
if (api)
api->on_event(OBS_FRONTEND_EVENT_STUDIO_MODE_ENABLED);
@@ -1251,6 +1272,8 @@ void OBSBasic::SetPreviewProgramMode(bool enabled)
delete programOptions;
delete program;
delete programLabel;
delete programWidget;
if (lastScene) {
OBSSource actualLastScene = OBSGetStrongRef(lastScene);