소스 검색

UI: Use connection with modeSwitch button

tytan652 1 년 전
부모
커밋
cb024a0696
3개의 변경된 파일15개의 추가작업 그리고 4개의 파일을 삭제
  1. 2 2
      UI/window-basic-main-transitions.cpp
  2. 6 0
      UI/window-basic-main.cpp
  3. 7 2
      UI/window-basic-main.hpp

+ 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;