diff options
author | RJ Ryan <rryan@mixxx.org> | 2013-11-30 17:28:47 -0500 |
---|---|---|
committer | RJ Ryan <rryan@mixxx.org> | 2013-11-30 17:28:47 -0500 |
commit | 09498b8805ecfbb369d09f50dc3d0c64a5b8b47d (patch) | |
tree | e45bd499e66ee8aa09d4fd3b3d989957b05d1202 /src/controlobjectslave.cpp | |
parent | 399a3fca0f5a17e44fdb8793aaaad4d7f08f3ee5 (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.cpp | 9 |
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; |