From 2a41dff80028958c67dfbcdc12b491eade96b105 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Tue, 26 Oct 2021 00:04:25 +0200 Subject: [PATCH 1/2] Rename presetNameChanged() to chainPresetChanged(), because not only the name changes --- src/effects/effectchain.cpp | 2 +- src/effects/effectchain.h | 2 +- src/widget/weffectchain.cpp | 8 ++++---- src/widget/weffectchain.h | 2 +- src/widget/weffectchainpresetselector.cpp | 8 ++++---- src/widget/weffectchainpresetselector.h | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/effects/effectchain.cpp b/src/effects/effectchain.cpp index 17357fc1c32..1f81b5825f2 100644 --- a/src/effects/effectchain.cpp +++ b/src/effects/effectchain.cpp @@ -213,7 +213,7 @@ void EffectChain::loadChainPreset(EffectChainPresetPointer pPreset) { m_pControlChainSuperParameter->setDefaultValue(pPreset->superKnob()); m_presetName = pPreset->name(); - emit presetNameChanged(m_presetName); + emit chainPresetChanged(m_presetName); setControlLoadedPresetIndex(presetIndex()); } diff --git a/src/effects/effectchain.h b/src/effects/effectchain.h index 72eb472b1e7..d7fd1a03e6a 100644 --- a/src/effects/effectchain.h +++ b/src/effects/effectchain.h @@ -82,7 +82,7 @@ class EffectChain : public QObject { void slotControlClear(double value); signals: - void presetNameChanged(const QString& name); + void chainPresetChanged(const QString& name); protected slots: void sendParameterUpdate(); diff --git a/src/widget/weffectchain.cpp b/src/widget/weffectchain.cpp index 18bb295e50f..6ec1216b71a 100644 --- a/src/widget/weffectchain.cpp +++ b/src/widget/weffectchain.cpp @@ -28,13 +28,13 @@ void WEffectChain::setEffectChain(EffectChainPointer pEffectChain) { if (pEffectChain) { m_pEffectChain = pEffectChain; connect(pEffectChain.data(), - &EffectChain::presetNameChanged, + &EffectChain::chainPresetChanged, this, - &WEffectChain::presetNameChanged); - presetNameChanged(m_pEffectChain->presetName()); + &WEffectChain::chainPresetChanged); + chainPresetChanged(m_pEffectChain->presetName()); } } -void WEffectChain::presetNameChanged(const QString& newName) { +void WEffectChain::chainPresetChanged(const QString& newName) { setText(newName); } diff --git a/src/widget/weffectchain.h b/src/widget/weffectchain.h index 7b2c3abe290..e8b25927fae 100644 --- a/src/widget/weffectchain.h +++ b/src/widget/weffectchain.h @@ -18,7 +18,7 @@ class WEffectChain : public WLabel { void setup(const QDomNode& node, const SkinContext& context) override; private slots: - void presetNameChanged(const QString& newName); + void chainPresetChanged(const QString& newName); private: // Set the EffectChain that should be monitored by this WEffectChain diff --git a/src/widget/weffectchainpresetselector.cpp b/src/widget/weffectchainpresetselector.cpp index a47450e3ec1..6857ad0a8a9 100644 --- a/src/widget/weffectchainpresetselector.cpp +++ b/src/widget/weffectchainpresetselector.cpp @@ -39,9 +39,9 @@ void WEffectChainPresetSelector::setup(const QDomNode& node, const SkinContext& this, &WEffectChainPresetSelector::populate); connect(m_pChain.data(), - &EffectChain::presetNameChanged, + &EffectChain::chainPresetChanged, this, - &WEffectChainPresetSelector::slotEffectChainNameChanged); + &WEffectChainPresetSelector::slotChainPresetChanged); connect(this, QOverload::of(&QComboBox::activated), this, @@ -72,7 +72,7 @@ void WEffectChainPresetSelector::populate() { setItemData(i, pChainPreset->name(), Qt::ToolTipRole); } - slotEffectChainNameChanged(m_pChain->presetName()); + slotChainPresetChanged(m_pChain->presetName()); blockSignals(false); } @@ -83,7 +83,7 @@ void WEffectChainPresetSelector::slotEffectChainPresetSelected(int index) { setBaseTooltip(itemData(index, Qt::ToolTipRole).toString()); } -void WEffectChainPresetSelector::slotEffectChainNameChanged(const QString& name) { +void WEffectChainPresetSelector::slotChainPresetChanged(const QString& name) { setCurrentIndex(findData(name)); setBaseTooltip(name); } diff --git a/src/widget/weffectchainpresetselector.h b/src/widget/weffectchainpresetselector.h index 2ac1cf3ed86..d1b4b50170e 100644 --- a/src/widget/weffectchainpresetselector.h +++ b/src/widget/weffectchainpresetselector.h @@ -18,7 +18,7 @@ class WEffectChainPresetSelector : public QComboBox, public WBaseWidget { private slots: void populate(); void slotEffectChainPresetSelected(int index); - void slotEffectChainNameChanged(const QString& name); + void slotChainPresetChanged(const QString& name); bool event(QEvent* pEvent) override; private: From b65dc20ffdfdd36bed3144a69eab9b3c09844c6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Tue, 26 Oct 2021 00:08:39 +0200 Subject: [PATCH 2/2] Added new signal EffectChainPresetManager::effectChainPresetRenamed and make use of it. --- src/effects/effectchain.cpp | 10 ++++++++++ src/effects/effectchain.h | 1 + src/effects/presets/effectchainpresetmanager.cpp | 8 ++++++-- src/effects/presets/effectchainpresetmanager.h | 1 + 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/effects/effectchain.cpp b/src/effects/effectchain.cpp index 1f81b5825f2..6c7fd8d13a5 100644 --- a/src/effects/effectchain.cpp +++ b/src/effects/effectchain.cpp @@ -45,6 +45,10 @@ EffectChain::EffectChain(const QString& group, ConfigKey(m_group, "num_chain_presets")); m_pControlNumChainPresets->set(m_pChainPresetManager->numPresets()); m_pControlNumChainPresets->setReadOnly(); + connect(m_pChainPresetManager.data(), + &EffectChainPresetManager::effectChainPresetRenamed, + this, + &EffectChain::slotEffectChainPresetRenamed); connect(m_pChainPresetManager.data(), &EffectChainPresetManager::effectChainPresetListUpdated, this, @@ -371,6 +375,12 @@ void EffectChain::slotChannelStatusChanged( } } +void EffectChain::slotEffectChainPresetRenamed(const QString& oldName, const QString& newName) { + if (m_presetName == oldName) { + m_presetName = newName; + } +} + void EffectChain::slotPresetListUpdated() { setControlLoadedPresetIndex(presetIndex()); m_pControlNumChainPresets->forceSet(numPresets()); diff --git a/src/effects/effectchain.h b/src/effects/effectchain.h index d7fd1a03e6a..42e5dd33218 100644 --- a/src/effects/effectchain.h +++ b/src/effects/effectchain.h @@ -112,6 +112,7 @@ class EffectChain : public QObject { QList m_effectSlots; protected slots: + void slotEffectChainPresetRenamed(const QString& oldName, const QString& newName); void slotPresetListUpdated(); private slots: diff --git a/src/effects/presets/effectchainpresetmanager.cpp b/src/effects/presets/effectchainpresetmanager.cpp index 2b916858444..b983d0623fb 100644 --- a/src/effects/presets/effectchainpresetmanager.cpp +++ b/src/effects/presets/effectchainpresetmanager.cpp @@ -256,12 +256,12 @@ void EffectChainPresetManager::renamePreset(const QString& oldName) { } EffectChainPresetPointer pPreset = m_effectChainPresets.take(oldName); - int index = m_effectChainPresetsSorted.indexOf(pPreset); pPreset->setName(newName); m_effectChainPresets.insert(newName, pPreset); if (!savePresetXml(pPreset)) { + // Saving failed, revert renaming m_effectChainPresets.take(newName); pPreset->setName(oldName); m_effectChainPresets.insert(oldName, pPreset); @@ -282,16 +282,20 @@ void EffectChainPresetManager::renamePreset(const QString& oldName) { msgBox.exec(); } + emit effectChainPresetRenamed(oldName, newName); + + int index = m_effectChainPresetsSorted.indexOf(pPreset); if (index != -1) { m_effectChainPresetsSorted.removeAt(index); m_effectChainPresetsSorted.insert(index, pPreset); + emit effectChainPresetListUpdated(); } index = m_quickEffectChainPresetsSorted.indexOf(pPreset); if (index != -1) { m_quickEffectChainPresetsSorted.removeAt(index); m_quickEffectChainPresetsSorted.insert(index, pPreset); + emit quickEffectChainPresetListUpdated(); } - emit effectChainPresetListUpdated(); } bool EffectChainPresetManager::deletePreset(const QString& chainPresetName) { diff --git a/src/effects/presets/effectchainpresetmanager.h b/src/effects/presets/effectchainpresetmanager.h index 73948699c57..9c15ede0a16 100644 --- a/src/effects/presets/effectchainpresetmanager.h +++ b/src/effects/presets/effectchainpresetmanager.h @@ -72,6 +72,7 @@ class EffectChainPresetManager : public QObject { void saveEffectsXml(QDomDocument* pDoc, const EffectsXmlData& data); signals: + void effectChainPresetRenamed(const QString& oldName, const QString& newName); void effectChainPresetListUpdated(); void quickEffectChainPresetListUpdated();