summaryrefslogtreecommitdiffstats
path: root/src/control
diff options
context:
space:
mode:
authorDaniel Schürmann <daschuer@mixxx.org>2021-04-28 09:38:57 +0200
committerDaniel Schürmann <daschuer@mixxx.org>2021-04-28 09:38:57 +0200
commit3f9d90c16e9e6e8256c25b7f3caad4e4d98aeff9 (patch)
tree0514da3c75ecd17f330134579a7e0d41af971488 /src/control
parentc9f52dc1d115a5d8a1d77cad3a71121baadb25e8 (diff)
parent9ba57d6ad20920b1d413593ab40f5fc53ab717a4 (diff)
Merge remote-tracking branch 'upstream/2.3' into main
Diffstat (limited to 'src/control')
-rw-r--r--src/control/controlpotmeter.cpp31
-rw-r--r--src/control/controlpotmeter.h8
2 files changed, 31 insertions, 8 deletions
diff --git a/src/control/controlpotmeter.cpp b/src/control/controlpotmeter.cpp
index 2c03d4d308..966f788295 100644
--- a/src/control/controlpotmeter.cpp
+++ b/src/control/controlpotmeter.cpp
@@ -1,5 +1,6 @@
#include "control/controlpotmeter.h"
+#include "control/control.h"
#include "control/controlproxy.h"
#include "control/controlpushbutton.h"
#include "moc_controlpotmeter.cpp"
@@ -20,10 +21,16 @@ ControlPotmeter::ControlPotmeter(const ConfigKey& key,
if (!bPersist) {
set(default_value);
}
- //qDebug() << "" << this << ", min " << m_dMinValue << ", max " << m_dMaxValue << ", range " << m_dValueRange << ", val " << m_dValue;
-}
+ //qDebug() << "" << this << ", min " << dMinValue << ", max " << dMaxValue << ", default " << default_value;
-ControlPotmeter::~ControlPotmeter() {
+ if (m_pControl) {
+ connect(m_pControl.data(),
+ &ControlDoublePrivate::valueChanged,
+ this,
+ &ControlPotmeter::privateValueChanged,
+ Qt::DirectConnection);
+ }
+ m_controls.setIsDefault(get() == default_value);
}
void ControlPotmeter::setStepCount(int count) {
@@ -44,6 +51,12 @@ void ControlPotmeter::setRange(double dMinValue, double dMaxValue,
}
}
+// slot
+void ControlPotmeter::privateValueChanged(double dValue, QObject* pSender) {
+ Q_UNUSED(pSender);
+ m_controls.setIsDefault(dValue == defaultValue());
+}
+
PotmeterControls::PotmeterControls(const ConfigKey& key)
: m_pControl(new ControlProxy(key, this)),
m_stepCount(10),
@@ -84,10 +97,10 @@ PotmeterControls::PotmeterControls(const ConfigKey& key)
this,
&PotmeterControls::decSmallValue);
- ControlPushButton* controlDefault = new ControlPushButton(
- ConfigKey(key.group, QString(key.item) + "_set_default"));
- controlDefault->setParent(this);
- connect(controlDefault,
+ m_pControlDefault = new ControlPushButton(
+ ConfigKey(key.group, QString(key.item) + "_set_default"));
+ m_pControlDefault->setParent(this);
+ connect(m_pControlDefault,
&ControlPushButton::valueChanged,
this,
&PotmeterControls::setToDefault);
@@ -202,3 +215,7 @@ void PotmeterControls::toggleMinusValue(double v) {
m_pControl->set(value > 0.0 ? -1.0 : 1.0);
}
}
+
+void PotmeterControls::setIsDefault(bool isDefault) {
+ m_pControlDefault->forceSet(isDefault ? 1.0 : 0.0);
+}
diff --git a/src/control/controlpotmeter.h b/src/control/controlpotmeter.h
index 1913513b91..14081207ea 100644
--- a/src/control/controlpotmeter.h
+++ b/src/control/controlpotmeter.h
@@ -41,9 +41,11 @@ class PotmeterControls : public QObject {
void toggleValue(double);
// Toggles the value between -1.0 and 0.0.
void toggleMinusValue(double);
+ void setIsDefault(bool isDefault);
private:
ControlProxy* m_pControl;
+ ControlPushButton* m_pControlDefault;
int m_stepCount;
double m_smallStepCount;
};
@@ -59,7 +61,7 @@ class ControlPotmeter : public ControlObject {
bool bTrack = false,
bool bPersist = false,
double defaultValue = 0.0);
- virtual ~ControlPotmeter();
+ ~ControlPotmeter() override = default;
// Sets the step count of the associated PushButtons.
void setStepCount(int count);
@@ -71,6 +73,10 @@ class ControlPotmeter : public ControlObject {
// when calling this method
void setRange(double dMinValue, double dMaxValue, bool allowOutOfBounds);
+ private slots:
+ // Used to check if the current control value matches the default value.
+ void privateValueChanged(double dValue, QObject* pSender);
+
protected:
bool m_bAllowOutOfBounds;
PotmeterControls m_controls;