From 1419135a5d99a7083c6c5ad832ae515a0a91a4fb Mon Sep 17 00:00:00 2001 From: Kai Uwe Broulik Date: Fri, 18 Aug 2017 11:53:10 +0200 Subject: [PATCH] Get rid of QSignalMapper Use lambdas instead. Differential Revision: https://phabricator.kde.org/D7361 --- .../qml/plasmoid/appletinterface.cpp | 23 ++++--------------- .../qml/plasmoid/appletinterface.h | 2 -- .../qml/plasmoid/wallpaperinterface.cpp | 18 ++++----------- .../qml/plasmoid/wallpaperinterface.h | 2 -- 4 files changed, 8 insertions(+), 37 deletions(-) diff --git a/src/scriptengines/qml/plasmoid/appletinterface.cpp b/src/scriptengines/qml/plasmoid/appletinterface.cpp index 62f0fb6b6..30a1e5f58 100644 --- a/src/scriptengines/qml/plasmoid/appletinterface.cpp +++ b/src/scriptengines/qml/plasmoid/appletinterface.cpp @@ -24,7 +24,6 @@ #include #include #include -#include #include #include @@ -49,7 +48,6 @@ Q_DECLARE_METATYPE(AppletInterface *) AppletInterface::AppletInterface(DeclarativeAppletScript *script, const QVariantList &args, QQuickItem *parent) : AppletQuickItem(script->applet(), parent), - m_actionSignals(0), m_configuration(0), m_appletScriptEngine(script), m_toolTipTextFormat(0), @@ -450,14 +448,9 @@ void AppletInterface::setAction(const QString &name, const QString &text, const Q_ASSERT(!m_actions.contains(name)); m_actions.append(name); - if (!m_actionSignals) { - m_actionSignals = new QSignalMapper(this); - connect(m_actionSignals, static_cast(&QSignalMapper::mapped), - appletScript(), &DeclarativeAppletScript::executeAction); - } - - connect(action, &QAction::triggered, m_actionSignals, static_cast(&QSignalMapper::map)); - m_actionSignals->setMapping(action, name); + connect(action, &QAction::triggered, this, [this, name] { + executeAction(name); + }); } if (!icon.isEmpty()) { @@ -475,15 +468,7 @@ void AppletInterface::removeAction(const QString &name) { Plasma::Applet *a = applet(); QAction *action = a->actions()->action(name); - - if (action) { - if (m_actionSignals) { - m_actionSignals->removeMappings(action); - } - - delete action; - } - + delete action; m_actions.removeAll(name); } diff --git a/src/scriptengines/qml/plasmoid/appletinterface.h b/src/scriptengines/qml/plasmoid/appletinterface.h index ca1d8cd0c..e905fb35a 100644 --- a/src/scriptengines/qml/plasmoid/appletinterface.h +++ b/src/scriptengines/qml/plasmoid/appletinterface.h @@ -33,7 +33,6 @@ class QAction; class QmlAppletScript; -class QSignalMapper; class QSizeF; namespace KDeclarative @@ -454,7 +453,6 @@ private Q_SLOTS: private: QStringList m_actions; - QSignalMapper *m_actionSignals; KDeclarative::ConfigPropertyMap *m_configuration; DeclarativeAppletScript *m_appletScriptEngine; diff --git a/src/scriptengines/qml/plasmoid/wallpaperinterface.cpp b/src/scriptengines/qml/plasmoid/wallpaperinterface.cpp index 0d735107e..57d600260 100644 --- a/src/scriptengines/qml/plasmoid/wallpaperinterface.cpp +++ b/src/scriptengines/qml/plasmoid/wallpaperinterface.cpp @@ -31,7 +31,6 @@ #include #include #include -#include #include #include @@ -43,8 +42,7 @@ WallpaperInterface::WallpaperInterface(ContainmentInterface *parent) m_containmentInterface(parent), m_qmlObject(0), m_configuration(0), - m_configLoader(0), - m_actionSignals(0) + m_configLoader(0) { m_actions = new KActionCollection(this); @@ -220,13 +218,9 @@ void WallpaperInterface::setAction(const QString &name, const QString &text, con action = new QAction(text, this); m_actions->addAction(name, action); - if (!m_actionSignals) { - m_actionSignals = new QSignalMapper(this); - connect(m_actionSignals, static_cast(&QSignalMapper::mapped), - this, &WallpaperInterface::executeAction); - } - connect(action, &QAction::triggered, m_actionSignals, static_cast(&QSignalMapper::map)); - m_actionSignals->setMapping(action, name); + connect(action, &QAction::triggered, this, [this, name] { + executeAction(name); + }); } if (!icon.isEmpty()) { @@ -246,11 +240,7 @@ void WallpaperInterface::removeAction(const QString &name) QAction *action = m_actions->action(name); if (action) { - if (m_actionSignals) { - m_actionSignals->removeMappings(action); - } m_actions->removeAction(action); - delete action; } setProperty("contextualActions", QVariant::fromValue(contextualActions())); diff --git a/src/scriptengines/qml/plasmoid/wallpaperinterface.h b/src/scriptengines/qml/plasmoid/wallpaperinterface.h index 4445b6308..af40ef74c 100644 --- a/src/scriptengines/qml/plasmoid/wallpaperinterface.h +++ b/src/scriptengines/qml/plasmoid/wallpaperinterface.h @@ -29,7 +29,6 @@ class KConfigLoader; class KActionCollection; class ContainmentInterface; -class QSignalMapper; namespace KDeclarative { @@ -104,7 +103,6 @@ private: KDeclarative::ConfigPropertyMap *m_configuration; KConfigLoader *m_configLoader; KActionCollection *m_actions; - QSignalMapper *m_actionSignals; static QHash s_rootObjects; };