Просмотр исходного кода

Merge pull request #367 from fryshorts/adv-audio-crash

UI: Small fixes to advanced audio settings
Jim 11 лет назад
Родитель
Сommit
8ecbe91d9a

+ 6 - 0
obs/window-basic-adv-audio.cpp

@@ -82,6 +82,12 @@ OBSBasicAdvAudio::OBSBasicAdvAudio(QWidget *parent)
 	setAttribute(Qt::WA_DeleteOnClose, true);
 }
 
+OBSBasicAdvAudio::~OBSBasicAdvAudio()
+{
+	for (size_t i = 0; i < controls.size(); ++i)
+		delete controls[i];
+}
+
 bool OBSBasicAdvAudio::EnumSources(void *param, obs_source_t *source)
 {
 	OBSBasicAdvAudio *dialog = reinterpret_cast<OBSBasicAdvAudio*>(param);

+ 1 - 0
obs/window-basic-adv-audio.hpp

@@ -33,4 +33,5 @@ public slots:
 
 public:
 	OBSBasicAdvAudio(QWidget *parent);
+	~OBSBasicAdvAudio();
 };

+ 13 - 0
obs/window-basic-main.cpp

@@ -1651,9 +1651,17 @@ void OBSBasic::on_action_Settings_triggered()
 
 void OBSBasic::on_actionAdvAudioProperties_triggered()
 {
+	if (advAudioWindow != nullptr) {
+		advAudioWindow->raise();
+		return;
+	}
+
 	advAudioWindow = new OBSBasicAdvAudio(this);
 	advAudioWindow->show();
 	advAudioWindow->setAttribute(Qt::WA_DeleteOnClose, true);
+
+	connect(advAudioWindow, SIGNAL(destroyed()),
+		this, SLOT(on_advAudioProps_destroyed()));
 }
 
 void OBSBasic::on_advAudioProps_clicked()
@@ -1661,6 +1669,11 @@ void OBSBasic::on_advAudioProps_clicked()
 	on_actionAdvAudioProperties_triggered();
 }
 
+void OBSBasic::on_advAudioProps_destroyed()
+{
+	advAudioWindow = nullptr;
+}
+
 void OBSBasic::on_scenes_currentItemChanged(QListWidgetItem *current,
 		QListWidgetItem *prev)
 {

+ 1 - 0
obs/window-basic-main.hpp

@@ -234,6 +234,7 @@ private slots:
 	void on_action_Settings_triggered();
 	void on_actionAdvAudioProperties_triggered();
 	void on_advAudioProps_clicked();
+	void on_advAudioProps_destroyed();
 	void on_actionShowLogs_triggered();
 	void on_actionUploadCurrentLog_triggered();
 	void on_actionUploadLastLog_triggered();