diff --git a/src/widget/weffectchainpresetbutton.cpp b/src/widget/weffectchainpresetbutton.cpp
index e4cb5d3128b..e33e46809ff 100644
--- a/src/widget/weffectchainpresetbutton.cpp
+++ b/src/widget/weffectchainpresetbutton.cpp
@@ -5,6 +5,7 @@
#include "effects/presets/effectpresetmanager.h"
#include "moc_weffectchainpresetbutton.cpp"
+#include "util/parented_ptr.h"
#include "widget/effectwidgetutils.h"
WEffectChainPresetButton::WEffectChainPresetButton(QWidget* parent, EffectsManager* pEffectsManager)
@@ -43,6 +44,7 @@ void WEffectChainPresetButton::setup(const QDomNode& node, const SkinContext& co
this,
&WEffectChainPresetButton::populateMenu);
}
+ m_pMenu->setToolTipsVisible(true);
populateMenu();
}
@@ -50,6 +52,7 @@ void WEffectChainPresetButton::populateMenu() {
m_pMenu->clear();
// Chain preset items
+ const EffectsBackendManagerPointer bem = m_pEffectsManager->getBackendManager();
bool presetIsReadOnly = true;
for (const auto& pChainPreset : m_pChainPresetManager->getPresetsSorted()) {
QString title = pChainPreset->name();
@@ -58,9 +61,27 @@ void WEffectChainPresetButton::populateMenu() {
QChar(' ') + title;
presetIsReadOnly = pChainPreset->isReadOnly();
}
- m_pMenu->addAction(title, this, [this, pChainPreset]() {
- m_pChain->loadChainPreset(pChainPreset);
- });
+ QString tooltip =
+ QStringLiteral("") + pChainPreset->name() + QStringLiteral("");
+ QStringList effectNames;
+ for (const auto& pEffectPreset : pChainPreset->effectPresets()) {
+ if (!pEffectPreset->isEmpty()) {
+ effectNames.append(bem->getDisplayNameForEffectPreset(pEffectPreset));
+ }
+ }
+ if (effectNames.size() > 1) {
+ tooltip.append("
");
+ tooltip.append(effectNames.join("
"));
+ }
+ parented_ptr pAction = make_parented(title, this);
+ connect(pAction,
+ &QAction::triggered,
+ this,
+ [this, pChainPreset]() {
+ m_pChain->loadChainPreset(pChainPreset);
+ });
+ pAction->setToolTip(tooltip);
+ m_pMenu->addAction(pAction);
}
m_pMenu->addSeparator();
// This prevents showing the Update button for the empty '---' preset, in case
diff --git a/src/widget/weffectchainpresetselector.cpp b/src/widget/weffectchainpresetselector.cpp
index f8a0a924e54..d106b8e602e 100644
--- a/src/widget/weffectchainpresetselector.cpp
+++ b/src/widget/weffectchainpresetselector.cpp
@@ -74,13 +74,26 @@ void WEffectChainPresetSelector::populate() {
presetList = m_pEffectsManager->getChainPresetManager()->getPresetsSorted();
}
+ const EffectsBackendManagerPointer bem = m_pEffectsManager->getBackendManager();
for (int i = 0; i < presetList.size(); i++) {
auto pChainPreset = presetList.at(i);
QString elidedDisplayName = metrics.elidedText(pChainPreset->name(),
Qt::ElideMiddle,
view()->width() - 2);
addItem(elidedDisplayName, QVariant(pChainPreset->name()));
- setItemData(i, pChainPreset->name(), Qt::ToolTipRole);
+ QString tooltip =
+ QStringLiteral("") + pChainPreset->name() + QStringLiteral("");
+ QStringList effectNames;
+ for (const auto& pEffectPreset : pChainPreset->effectPresets()) {
+ if (!pEffectPreset->isEmpty()) {
+ effectNames.append(bem->getDisplayNameForEffectPreset(pEffectPreset));
+ }
+ }
+ if (effectNames.size() > 1) {
+ tooltip.append("
");
+ tooltip.append(effectNames.join("
"));
+ }
+ setItemData(i, tooltip, Qt::ToolTipRole);
}
slotChainPresetChanged(m_pChain->presetName());