summaryrefslogtreecommitdiffstats
path: root/src/controlobjectslave.cpp
diff options
context:
space:
mode:
authorRJ Ryan <rryan@mixxx.org>2013-11-30 17:28:47 -0500
committerRJ Ryan <rryan@mixxx.org>2013-11-30 17:28:47 -0500
commit09498b8805ecfbb369d09f50dc3d0c64a5b8b47d (patch)
treee45bd499e66ee8aa09d4fd3b3d989957b05d1202 /src/controlobjectslave.cpp
parent399a3fca0f5a17e44fdb8793aaaad4d7f08f3ee5 (diff)
Prevent duplicate connections to the underlying ControlObjectPrivate if connectValueChanged() is called multiple times on a ControlObjectSlave.
Diffstat (limited to 'src/controlobjectslave.cpp')
-rw-r--r--src/controlobjectslave.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/controlobjectslave.cpp b/src/controlobjectslave.cpp
index 5b701f672f..cb7c1deff4 100644
--- a/src/controlobjectslave.cpp
+++ b/src/controlobjectslave.cpp
@@ -36,12 +36,13 @@ bool ControlObjectSlave::connectValueChanged(const QObject* receiver,
bool ret = false;
if (m_pControl) {
ret = connect((QObject*)this, SIGNAL(valueChanged(double)),
- receiver, method, type);
+ receiver, method, type);
if (ret) {
- // connect to ControlObjectPrivate only if required
- ret = connect(m_pControl.data(), SIGNAL(valueChanged(double, QObject*)),
+ // Connect to ControlObjectPrivate only if required. Do not allow
+ // duplicate connections.
+ connect(m_pControl.data(), SIGNAL(valueChanged(double, QObject*)),
this, SLOT(slotValueChanged(double, QObject*)),
- Qt::DirectConnection);
+ Qt::DirectConnection | Qt::UniqueConnection);
}
}
return ret;