Ver código fonte

UI: Use connection with modeSwitch button

tytan652 1 ano atrás
pai
commit
cb024a0696

+ 2 - 2
UI/window-basic-main-transitions.cpp

@@ -976,7 +976,7 @@ int OBSBasic::GetTbarPosition()
 	return tBar->value();
 }
 
-void OBSBasic::on_modeSwitch_clicked()
+void OBSBasic::TogglePreviewProgramMode()
 {
 	SetPreviewProgramMode(!IsPreviewProgramMode());
 }
@@ -1607,8 +1607,8 @@ void OBSBasic::SetPreviewProgramMode(bool enabled)
 	if (IsPreviewProgramMode() == enabled)
 		return;
 
-	ui->modeSwitch->setChecked(enabled);
 	os_atomic_set_bool(&previewProgramMode, enabled);
+	emit PreviewProgramModeChanged(enabled);
 
 	if (IsPreviewProgramMode()) {
 		if (!previewEnabled)

+ 6 - 0
UI/window-basic-main.cpp

@@ -334,6 +334,12 @@ OBSBasic::OBSBasic(QWidget *parent)
 	ui->previewDisabledWidget->setVisible(false);
 	ui->broadcastButton->setVisible(false);
 
+	/* Setup Studio Mode button connections */
+	connect(this, &OBSBasic::PreviewProgramModeChanged, ui->modeSwitch,
+		&QAbstractButton::setChecked);
+	connect(ui->modeSwitch, &QAbstractButton::clicked, this,
+		&OBSBasic::TogglePreviewProgramMode);
+
 	startingDockLayout = saveState();
 
 	statsDock = new OBSDock();

+ 7 - 2
UI/window-basic-main.hpp

@@ -1177,8 +1177,6 @@ private slots:
 	void ShowTransitionProperties();
 	void HideTransitionProperties();
 
-	void on_modeSwitch_clicked();
-
 	// Source Context Buttons
 	void on_sourcePropertiesButton_clicked();
 	void on_sourceFiltersButton_clicked();
@@ -1236,6 +1234,9 @@ private slots:
 	void RepairOldExtraDockName();
 	void RepairCustomExtraDockName();
 
+	/* Studio Mode toggle slot */
+	void TogglePreviewProgramMode();
+
 public slots:
 	void on_actionResetTransform_triggered();
 
@@ -1249,6 +1250,10 @@ public slots:
 	void UpdateContextBarDeferred(bool force = false);
 	void UpdateContextBarVisibility();
 
+signals:
+	/* Studio Mode signal */
+	void PreviewProgramModeChanged(bool enabled);
+
 private:
 	std::unique_ptr<Ui::OBSBasic> ui;