summaryrefslogtreecommitdiffstats
path: root/src/widget/weffectparameterknobcomposed.cpp
blob: b1420ca1d4829594ef64518537e46037e6d69a11 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "widget/weffectparameterknobcomposed.h"

#include "moc_weffectparameterknobcomposed.cpp"
#include "widget/effectwidgetutils.h"

namespace {
const QString effectGroupSeparator = "_";
const QString groupClose = "]";
} // anonymous namespace

void WEffectParameterKnobComposed::setupEffectParameterSlot(const ConfigKey& configKey) {
    EffectParameterSlotPointer pParameterSlot =
            m_pEffectsManager->getEffectParameterSlot(configKey);
    if (!pParameterSlot) {
        qWarning() << "EffectParameterKnobComposed" << configKey <<
                "is not an effect parameter.";
        return;
    }
    setEffectParameterSlot(pParameterSlot);
    setFocusPolicy(Qt::NoFocus);
}

void WEffectParameterKnobComposed::setEffectParameterSlot(
        EffectParameterSlotPointer pParameterSlot) {
    m_pEffectParameterSlot = pParameterSlot;
    if (m_pEffectParameterSlot) {
        connect(m_pEffectParameterSlot.data(),
                &EffectParameterSlot::updated,
                this,
                &WEffectParameterKnobComposed::parameterUpdated);
    }
    parameterUpdated();
}

void WEffectParameterKnobComposed::parameterUpdated() {
    if (m_pEffectParameterSlot) {
        setBaseTooltip(QString("%1\n%2").arg(
                       m_pEffectParameterSlot->name(),
                       m_pEffectParameterSlot->description()));
    } else {
        // The knob should be hidden by the skin when the parameterX_loaded ControlObject
        // indicates no parameter is loaded, so this tooltip should never be shown.
        setBaseTooltip("");
    }
}