summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFerran Pujol Camins <ferranpujolcamins@gmail.com>2023-06-10 17:01:08 +0200
committerFerran Pujol Camins <ferranpujolcamins@gmail.com>2023-06-10 17:01:08 +0200
commit307cfc8f8e54abba47b9d65a03648f46fc4a149f (patch)
treed963ea121f2cb523b54898b666448f4a0493c435
parent6eed9dc13ab15021e811ad243b47cc70bb34286e (diff)
Add ControlObject::exists method
-rw-r--r--src/control/controlobject.cpp4
-rw-r--r--src/control/controlobject.h3
-rw-r--r--src/controllers/controllerlearningeventfilter.cpp3
3 files changed, 8 insertions, 2 deletions
diff --git a/src/control/controlobject.cpp b/src/control/controlobject.cpp
index ebce489cad..911693b75f 100644
--- a/src/control/controlobject.cpp
+++ b/src/control/controlobject.cpp
@@ -67,6 +67,10 @@ ControlObject* ControlObject::getControl(const ConfigKey& key, ControlFlags flag
return nullptr;
}
+bool ControlObject::exists(const ConfigKey& key) {
+ return !ControlDoublePrivate::getControl(key, ControlFlag::NoWarnIfMissing).isNull();
+}
+
void ControlObject::setValueFromMidi(MidiOpCode o, double v) {
m_pControl->setValueFromMidi(o, v);
}
diff --git a/src/control/controlobject.h b/src/control/controlobject.h
index d36b2add69..4d542e6c4d 100644
--- a/src/control/controlobject.h
+++ b/src/control/controlobject.h
@@ -33,6 +33,9 @@ class ControlObject : public QObject {
return getControl(key, flags);
}
+ // Checks whether a ControlObject exists or not
+ static bool exists(const ConfigKey& key);
+
QString name() const {
return m_pControl ? m_pControl->name() : QString();
}
diff --git a/src/controllers/controllerlearningeventfilter.cpp b/src/controllers/controllerlearningeventfilter.cpp
index 4539d03e82..31ce624607 100644
--- a/src/controllers/controllerlearningeventfilter.cpp
+++ b/src/controllers/controllerlearningeventfilter.cpp
@@ -68,8 +68,7 @@ bool ControllerLearningEventFilter::eventFilter(QObject* pObject, QEvent* pEvent
}
ConfigKey key = pControl->getKey();
key.item = key.item + "_set_default";
- auto pResetControl = PollingControlProxy(key, ControlFlag::AllowMissingOrInvalid);
- if (pResetControl.valid()) {
+ if (ControlObject::exists(key)) {
qDebug() << "Right-click reset maps MIDI to:" << key.group << key.item;
emit controlClicked(key);
}