From 73d538102b889bddf9dbba632f28968bf83bfda7 Mon Sep 17 00:00:00 2001 From: jp9000 Date: Fri, 16 Jan 2015 09:06:57 -0800 Subject: [PATCH] UI: Set checkbox value without signaling Instead of comparing the value of the checkbox to prevent recursive signaling, just disable its ability to signal. --- obs/adv-audio-control.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/obs/adv-audio-control.cpp b/obs/adv-audio-control.cpp index 1f7ef45bf..04c222bcc 100644 --- a/obs/adv-audio-control.cpp +++ b/obs/adv-audio-control.cpp @@ -170,12 +170,17 @@ void OBSAdvAudioCtrl::OBSSourceSyncChanged(void *param, calldata_t *calldata) /* ------------------------------------------------------------------------- */ /* Qt event queue source callbacks */ +static inline void setCheckboxState(QCheckBox *checkbox, bool checked) +{ + checkbox->blockSignals(true); + checkbox->setChecked(checked); + checkbox->blockSignals(false); +} + void OBSAdvAudioCtrl::SourceFlagsChanged(uint32_t flags) { bool forceMonoVal = (flags & OBS_SOURCE_FLAG_FORCE_MONO) != 0; - - if (forceMono->isChecked() != forceMonoVal) - forceMono->setChecked(forceMonoVal); + setCheckboxState(forceMono, forceMonoVal); } void OBSAdvAudioCtrl::SourceVolumeChanged(float value)