summaryrefslogtreecommitdiffstats
path: root/src/effects/effectchainslot.cpp
diff options
context:
space:
mode:
authorBe <be@mixxx.org>2020-05-02 12:42:33 -0500
committerBe <be@mixxx.org>2020-05-02 12:42:33 -0500
commit374fec6d145b3dc83228ced710a24ecb29f595eb (patch)
treef19392c60f9f495bdea541e71effaddc7bf5e053 /src/effects/effectchainslot.cpp
parentfd4bb9dd8a5ecdcdfb52b326e3022a5984780e84 (diff)
EffectChainSlot: remove deprecated QSignalMapper
by using lambdas
Diffstat (limited to 'src/effects/effectchainslot.cpp')
-rw-r--r--src/effects/effectchainslot.cpp44
1 files changed, 15 insertions, 29 deletions
diff --git a/src/effects/effectchainslot.cpp b/src/effects/effectchainslot.cpp
index 4600a59d5e..f46d672fcc 100644
--- a/src/effects/effectchainslot.cpp
+++ b/src/effects/effectchainslot.cpp
@@ -95,9 +95,6 @@ EffectChainSlot::EffectChainSlot(const QString& group,
connect(m_pControlChainSelector, &ControlObject::valueChanged,
this, &EffectChainSlot::slotControlChainSelector);
- connect(&m_channelStatusMapper, QOverload<const QString &>::of(&QSignalMapper::mapped),
- this, &EffectChainSlot::slotChannelStatusChanged);
-
// ControlObjects for skin <-> controller mapping interaction.
// Refer to comment in header for full explanation.
m_pControlChainShowFocus = new ControlPushButton(
@@ -143,12 +140,6 @@ EffectChainSlot::~EffectChainSlot() {
delete m_pControlChainShowParameters;
delete m_pControlChainFocusedEffect;
- for (QMap<QString, ChannelInfo*>::iterator it = m_channelInfoByName.begin();
- it != m_channelInfoByName.end();) {
- delete it.value();
- it = m_channelInfoByName.erase(it);
- }
-
removeFromEngine();
}
@@ -271,26 +262,24 @@ EffectSlotPointer EffectChainSlot::addEffectSlot(const QString& group) {
void EffectChainSlot::registerInputChannel(const ChannelHandleAndGroup& handle_group,
const double initialValue) {
- VERIFY_OR_DEBUG_ASSERT(!m_channelInfoByName.contains(handle_group.name())) {
+ VERIFY_OR_DEBUG_ASSERT(!m_channelEnableButtons.contains(handle_group)) {
return;
}
- ControlPushButton* pEnableControl = new ControlPushButton(
+ auto pEnableControl = std::make_shared<ControlPushButton>(
ConfigKey(m_group, QString("group_%1_enable").arg(handle_group.name())),
- true, initialValue);
+ true,
+ initialValue);
+ m_channelEnableButtons.insert(handle_group, pEnableControl);
pEnableControl->setButtonMode(ControlPushButton::POWERWINDOW);
if (pEnableControl->toBool()) {
enableForInputChannel(handle_group);
}
- ChannelInfo* pInfo = new ChannelInfo(handle_group, pEnableControl);
- m_channelInfoByName[handle_group.name()] = pInfo;
-
- // m_channelStatusMapper will emit a mapped(handle_group.name()) signal whenever
- // the valueChanged(double) signal is emitted by pEnableControl
- m_channelStatusMapper.setMapping(pEnableControl, handle_group.name());
- connect(pEnableControl, &ControlObject::valueChanged,
- &m_channelStatusMapper, static_cast<void (QSignalMapper::*)()>(&QSignalMapper::map));
+ connect(pEnableControl.get(),
+ &ControlObject::valueChanged,
+ this,
+ [this, handle_group](double value) { slotChannelStatusChanged(value, handle_group); });
}
EffectSlotPointer EffectChainSlot::getEffectSlot(unsigned int slotNumber) {
@@ -345,15 +334,12 @@ void EffectChainSlot::slotControlChainPrevPreset(double value) {
}
}
-void EffectChainSlot::slotChannelStatusChanged(const QString& group) {
- ChannelInfo* pChannelInfo = m_channelInfoByName.value(group, NULL);
- if (pChannelInfo != NULL && pChannelInfo->pEnabled != NULL) {
- bool bEnable = pChannelInfo->pEnabled->toBool();
- if (bEnable) {
- enableForInputChannel(pChannelInfo->handle_group);
- } else {
- disableForInputChannel(pChannelInfo->handle_group);
- }
+void EffectChainSlot::slotChannelStatusChanged(
+ double value, const ChannelHandleAndGroup& handle_group) {
+ if (value > 0) {
+ enableForInputChannel(handle_group);
+ } else {
+ disableForInputChannel(handle_group);
}
}