diff --git a/kdevplatform/debugger/variable/variabletooltip.cpp b/kdevplatform/debugger/variable/variabletooltip.cpp --- a/kdevplatform/debugger/variable/variabletooltip.cpp +++ b/kdevplatform/debugger/variable/variabletooltip.cpp @@ -29,7 +29,6 @@ #include #include #include -#include #include #include #include @@ -138,12 +137,10 @@ QPushButton* stopOnChangeButton = new QPushButton(i18n("Stop on Change")); buttonBox->addWidget(stopOnChangeButton); - QSignalMapper* mapper = new QSignalMapper(this); - connect(watchThisButton, &QPushButton::clicked, mapper, static_cast(&QSignalMapper::map)); - mapper->setMapping(watchThisButton, QStringLiteral("add_watch")); - connect(stopOnChangeButton, &QPushButton::clicked, mapper, static_cast(&QSignalMapper::map)); - mapper->setMapping(stopOnChangeButton, QStringLiteral("add_watchpoint")); - connect(mapper, static_cast(&QSignalMapper::mapped), this, &VariableToolTip::slotLinkActivated); + connect(watchThisButton, &QPushButton::clicked, + this, [this](){ slotLinkActivated(QStringLiteral("add_watch")); }); + connect(stopOnChangeButton, &QPushButton::clicked, + this, [this](){ slotLinkActivated(QStringLiteral("add_watchpoint")); }); QHBoxLayout* inner = new QHBoxLayout(); l->addLayout(inner); diff --git a/kdevplatform/debugger/variable/variablewidget.h b/kdevplatform/debugger/variable/variablewidget.h --- a/kdevplatform/debugger/variable/variablewidget.h +++ b/kdevplatform/debugger/variable/variablewidget.h @@ -16,8 +16,6 @@ #ifndef KDEVPLATFORM_VARIABLEWIDGET_H #define KDEVPLATFORM_VARIABLEWIDGET_H -#include - #include #include "../util/treeview.h" #include "variablecollection.h" @@ -109,7 +107,6 @@ QAction *m_watchDelete; QAction *m_copyVariableValue; QAction *m_stopOnChange; - QSignalMapper *m_signalMapper; QSortFilterProxyModel *m_proxy; TreeModel *m_model; }; diff --git a/kdevplatform/debugger/variable/variablewidget.cpp b/kdevplatform/debugger/variable/variablewidget.cpp --- a/kdevplatform/debugger/variable/variablewidget.cpp +++ b/kdevplatform/debugger/variable/variablewidget.cpp @@ -176,7 +176,6 @@ controller->variableCollection()->watches(), 0); setExpanded(index, true); - m_signalMapper = new QSignalMapper(this); setupActions(); } @@ -233,11 +232,10 @@ { act->setCheckable(true); act->setShortcutContext(Qt::WidgetWithChildrenShortcut); - m_signalMapper->setMapping(act, act->data().toInt()); - connect(act, &QAction::triggered, m_signalMapper, static_cast(&QSignalMapper::map)); + const int id = act->data().toInt(); + connect(act, &QAction::triggered, this, [this, id](){ changeVariableFormat(id); }); addAction(act); } - connect(m_signalMapper, static_cast(&QSignalMapper::mapped), this, &VariableTree::changeVariableFormat); m_watchDelete = new QAction( QIcon::fromTheme(QStringLiteral("edit-delete")), i18n( "Remove Watch Variable" ), this); diff --git a/kdevplatform/shell/problemmodel.h b/kdevplatform/shell/problemmodel.h --- a/kdevplatform/shell/problemmodel.h +++ b/kdevplatform/shell/problemmodel.h @@ -161,10 +161,10 @@ /// Show imports void setShowImports(bool showImports); - /// Sets the scope filter. Uses int to be able to use QSignalMapper + /// Sets the scope filter void setScope(int scope); - /// Sets the severity filter. Uses int to be able to use QSignalMapper + /// Sets the severity filter void setSeverity(int severity);///old-style severity filtering void setSeverities(KDevelop::IProblem::Severities severities);///new-style severity filtering diff --git a/kdevplatform/shell/runcontroller.cpp b/kdevplatform/shell/runcontroller.cpp --- a/kdevplatform/shell/runcontroller.cpp +++ b/kdevplatform/shell/runcontroller.cpp @@ -22,7 +22,6 @@ #include #include -#include #include #include @@ -137,8 +136,6 @@ QMap launchConfigurationTypes; QList launchConfigurations; QMap launchModes; - QSignalMapper* launchChangeMapper; - QSignalMapper* launchAsMapper; QMap > launchAsInfo; KDevelop::ProjectBaseItem* contextItem; DebugMode* debugMode; @@ -321,8 +318,6 @@ d->state = Idle; d->q = this; d->delegate = new RunDelegate(this); - d->launchChangeMapper = new QSignalMapper( this ); - d->launchAsMapper = nullptr; d->contextItem = nullptr; d->executeMode = nullptr; d->debugMode = nullptr; @@ -964,9 +959,6 @@ ContextMenuExtension RunController::contextMenuExtension(Context* ctx, QWidget* parent) { - delete d->launchAsMapper; - d->launchAsMapper = new QSignalMapper( this ); - connect( d->launchAsMapper, static_cast(&QSignalMapper::mapped), this, [&] (int id) { d->launchAs(id); } ); d->launchAsInfo.clear(); d->contextItem = nullptr; ContextMenuExtension ext; @@ -992,11 +984,10 @@ if( hasLauncher && type->canLaunch(itm) ) { d->launchAsInfo[i] = qMakePair( type->id(), mode->id() ); - QAction* act = new QAction( d->launchAsMapper ); + QAction* act = new QAction(menu); act->setText( type->name() ); - qCDebug(SHELL) << "Setting up mapping for:" << i << "for action" << act->text() << "in mode" << mode->name(); - d->launchAsMapper->setMapping( act, i ); - connect( act, &QAction::triggered, d->launchAsMapper, static_cast(&QSignalMapper::map) ); + qCDebug(SHELL) << "Connect " << i << "for action" << act->text() << "in mode" << mode->name(); + connect( act, &QAction::triggered, this, [this, i] () { d->launchAs(i); } ); menu->addAction(act); i++; } diff --git a/kdevplatform/shell/statusbar.h b/kdevplatform/shell/statusbar.h --- a/kdevplatform/shell/statusbar.h +++ b/kdevplatform/shell/statusbar.h @@ -24,7 +24,6 @@ #include #include -class QSignalMapper; class QTimer; namespace Sublime { @@ -87,7 +86,6 @@ QTimer* m_timer; QTime m_time; Sublime::View* m_currentView; - QSignalMapper* m_errorRemovalMapper; QMap m_progressItems; StatusbarProgressWidget* m_progressWidget; // embedded in the statusbar, shows a single progressbar & button to expand the overlay widget ProgressDialog* m_progressDialog; // the actual overlay widget that contains multiple progressbars and status messages diff --git a/kdevplatform/shell/statusbar.cpp b/kdevplatform/shell/statusbar.cpp --- a/kdevplatform/shell/statusbar.cpp +++ b/kdevplatform/shell/statusbar.cpp @@ -23,7 +23,6 @@ #include "progresswidget/progressdialog.h" #include -#include #include #include @@ -44,7 +43,6 @@ : QStatusBar(parent) , m_timer(new QTimer(this)) , m_currentView(nullptr) - , m_errorRemovalMapper(new QSignalMapper(this)) { #ifdef Q_OS_MAC /* At time of writing this is only required for OSX and only has effect on OSX. @@ -64,8 +62,6 @@ registerStatus(Core::self()->languageController()->backgroundParser()); - connect(m_errorRemovalMapper, static_cast(&QSignalMapper::mapped), this, &StatusBar::removeError); - m_progressController = Core::self()->progressController(); m_progressDialog = new ProgressDialog(this, parent); // construct this first, then progressWidget m_progressDialog->setVisible(false); @@ -144,8 +140,7 @@ QTimer* timer = new QTimer(error); timer->setSingleShot(true); timer->setInterval(1000*timeout); - m_errorRemovalMapper->setMapping(timer, error); - connect(timer, &QTimer::timeout, m_errorRemovalMapper, static_cast(&QSignalMapper::map)); + connect(timer, &QTimer::timeout, this, [this, error](){ removeError(error); }); return timer; } diff --git a/plugins/appwizard/appwizarddialog.h b/plugins/appwizard/appwizarddialog.h --- a/plugins/appwizard/appwizarddialog.h +++ b/plugins/appwizard/appwizarddialog.h @@ -18,7 +18,6 @@ #include class KPageWidgetItem; -class QSignalMapper; class ProjectSelectionPage; class ProjectVcsPage; class ProjectTemplatesModel; @@ -54,8 +53,6 @@ void next() override; private: QMap m_pageItems; - QSignalMapper* m_invalidMapper; - QSignalMapper* m_validMapper; ProjectSelectionPage* m_selectionPage; ProjectVcsPage* m_vcsPage; }; diff --git a/plugins/appwizard/appwizarddialog.cpp b/plugins/appwizard/appwizarddialog.cpp --- a/plugins/appwizard/appwizarddialog.cpp +++ b/plugins/appwizard/appwizarddialog.cpp @@ -9,7 +9,6 @@ ***************************************************************************/ #include "appwizarddialog.h" -#include #include #include @@ -44,21 +43,10 @@ setValid( m_pageItems[m_selectionPage], false ); - m_invalidMapper = new QSignalMapper(this); - m_invalidMapper->setMapping(m_selectionPage, m_selectionPage); - m_invalidMapper->setMapping(m_vcsPage, m_vcsPage); - m_validMapper = new QSignalMapper(this); - m_validMapper->setMapping(m_selectionPage, m_selectionPage); - m_validMapper->setMapping(m_vcsPage, m_vcsPage); - - connect( m_selectionPage, &ProjectSelectionPage::invalid, m_invalidMapper, static_cast(&QSignalMapper::map) ); - connect( m_selectionPage, &ProjectSelectionPage::valid, m_validMapper, static_cast(&QSignalMapper::map) ); - - connect( m_vcsPage, &ProjectVcsPage::invalid, m_invalidMapper, static_cast(&QSignalMapper::map) ); - connect( m_vcsPage, &ProjectVcsPage::valid, m_validMapper, static_cast(&QSignalMapper::map) ); - - connect( m_validMapper, static_cast(&QSignalMapper::mapped), this, &AppWizardDialog::pageValid ); - connect( m_invalidMapper, static_cast(&QSignalMapper::mapped), this, &AppWizardDialog::pageInValid ); + connect(m_selectionPage, &ProjectSelectionPage::invalid, this, [this]() { pageInValid(m_selectionPage); }); + connect(m_vcsPage, &ProjectVcsPage::invalid, this, [this]() { pageInValid(m_vcsPage); }); + connect(m_selectionPage, &ProjectSelectionPage::valid, this, [this]() { pageValid(m_selectionPage); }); + connect(m_vcsPage, &ProjectVcsPage::valid, this, [this]() { pageValid(m_vcsPage); }); } ApplicationInfo AppWizardDialog::appInfo() const diff --git a/plugins/custom-definesandincludes/compilerprovider/widget/compilerswidget.h b/plugins/custom-definesandincludes/compilerprovider/widget/compilerswidget.h --- a/plugins/custom-definesandincludes/compilerprovider/widget/compilerswidget.h +++ b/plugins/custom-definesandincludes/compilerprovider/widget/compilerswidget.h @@ -38,7 +38,6 @@ class CompilersModel; class QMenu; -class QSignalMapper; class CompilersWidget : public KDevelop::ConfigPage { @@ -77,7 +76,6 @@ QScopedPointer m_ui; CompilersModel* m_compilersModel; QMenu *m_addMenu; - QSignalMapper *m_mapper; }; #endif diff --git a/plugins/custom-definesandincludes/compilerprovider/widget/compilerswidget.cpp b/plugins/custom-definesandincludes/compilerprovider/widget/compilerswidget.cpp --- a/plugins/custom-definesandincludes/compilerprovider/widget/compilerswidget.cpp +++ b/plugins/custom-definesandincludes/compilerprovider/widget/compilerswidget.cpp @@ -32,7 +32,6 @@ #include #include #include -#include #include "ui_compilerswidget.h" #include "compilersmodel.h" @@ -55,19 +54,16 @@ m_ui->removeButton->setIcon(QIcon::fromTheme(QStringLiteral("list-remove"))); m_addMenu = new QMenu(m_ui->addButton); - m_mapper = new QSignalMapper(m_addMenu); - connect(m_mapper, static_cast(&QSignalMapper::mapped), this, &CompilersWidget::addCompiler); m_addMenu->clear(); auto settings = SettingsManager::globalInstance(); auto provider = settings->provider(); foreach (const auto& factory, provider->compilerFactories()) { QAction* action = new QAction(m_addMenu); - action->setText(factory->name()); - connect(action, &QAction::triggered, - m_mapper, static_cast(&QSignalMapper::map)); - m_mapper->setMapping(action, factory->name()); + const QString fname = factory->name(); + action->setText(fname); + connect(action, &QAction::triggered, this, [this, fname]() { addCompiler(fname); }); m_addMenu->addAction(action); } m_ui->addButton->setMenu(m_addMenu); diff --git a/plugins/debuggercommon/midebuggerplugin.h b/plugins/debuggercommon/midebuggerplugin.h --- a/plugins/debuggercommon/midebuggerplugin.h +++ b/plugins/debuggercommon/midebuggerplugin.h @@ -36,16 +36,15 @@ #include -class QDBusInterface; -class QSignalMapper; class QUrl; namespace KDevelop { class Context; } namespace KDevMI { class MIDebugSession; +class DBusProxy; class MIDebuggerPlugin : public KDevelop::IPlugin, public KDevelop::IStatus { Q_OBJECT @@ -92,7 +91,7 @@ protected Q_SLOTS: - void slotDebugExternalProcess(QObject* interface); + void slotDebugExternalProcess(DBusProxy* proxy); void slotExamineCore(); #if KF5SysGuard_FOUND @@ -111,8 +110,7 @@ void showStatusMessage(const QString& msg, int timeout); private: - QHash m_drkonqis; - QSignalMapper* m_drkonqiMap; + QHash m_drkonqis; QString m_drkonqi; }; diff --git a/plugins/debuggercommon/midebuggerplugin.cpp b/plugins/debuggercommon/midebuggerplugin.cpp --- a/plugins/debuggercommon/midebuggerplugin.cpp +++ b/plugins/debuggercommon/midebuggerplugin.cpp @@ -51,12 +51,42 @@ #include #include #include -#include #include using namespace KDevelop; using namespace KDevMI; +class KDevMI::DBusProxy : public QObject +{ + Q_OBJECT + +public: + DBusProxy(const QString & service, const QString & path, QObject* parent) + : QObject(parent), + dbusinterface(service, path, + QString(), QDBusConnection::sessionBus(), this) + {} + + QDBusInterface * interface() + { + return &dbusinterface; + } + +public Q_SLOTS: + void slotDBusCall() + { + emit signalDBusCall(this); + } + +Q_SIGNALS: + void signalDBusCall(DBusProxy*); + +private: + QDBusInterface dbusinterface; +}; + +#include "midebuggerplugin.moc" + MIDebuggerPlugin::MIDebuggerPlugin(const QString &componentName, const QString& displayName, QObject *parent) : KDevelop::IPlugin(componentName, parent) { @@ -95,10 +125,6 @@ void MIDebuggerPlugin::setupDBus() { - m_drkonqiMap = new QSignalMapper(this); - connect(m_drkonqiMap, static_cast(&QSignalMapper::mapped), - this, &MIDebuggerPlugin::slotDebugExternalProcess); - QDBusConnectionInterface* dbusInterface = QDBusConnection::sessionBus().interface(); for (const auto &service : dbusInterface->registeredServiceNames().value()) { slotDBusServiceRegistered(service); @@ -124,15 +150,14 @@ { if (service.startsWith(QLatin1String("org.kde.drkonqi"))) { // New registration - QDBusInterface* drkonqiInterface = new QDBusInterface(service, QStringLiteral("/krashinfo"), - QString(), QDBusConnection::sessionBus(), - this); - m_drkonqis.insert(service, drkonqiInterface); - - connect(drkonqiInterface, SIGNAL(acceptDebuggingApplication()), m_drkonqiMap, SLOT(map())); - m_drkonqiMap->setMapping(drkonqiInterface, drkonqiInterface); - - drkonqiInterface->call(QStringLiteral("registerDebuggingApplication"), i18n("KDevelop")); + auto drkonqiProxy = new DBusProxy(service, QStringLiteral("/krashinfo"), this); + m_drkonqis.insert(service, drkonqiProxy); + connect(drkonqiProxy->interface(), SIGNAL(acceptDebuggingApplication()), + drkonqiProxy, SLOT(slotDBusCall())); + connect(drkonqiProxy, &DBusProxy::signalDBusCall, + this, &MIDebuggerPlugin::slotDebugExternalProcess); + + drkonqiProxy->interface()->call(QStringLiteral("registerDebuggingApplication"), i18n("KDevelop")); } } @@ -145,16 +170,14 @@ } } -void MIDebuggerPlugin::slotDebugExternalProcess(QObject* interface) +void MIDebuggerPlugin::slotDebugExternalProcess(DBusProxy* proxy) { - auto dbusInterface = static_cast(interface); - - QDBusReply reply = dbusInterface->call(QStringLiteral("pid")); + QDBusReply reply = proxy->interface()->call(QStringLiteral("pid")); if (reply.isValid()) { attachProcess(reply.value()); QTimer::singleShot(500, this, &MIDebuggerPlugin::slotCloseDrKonqi); - m_drkonqi = m_drkonqis.key(dbusInterface); + m_drkonqi = m_drkonqis.key(proxy); } core()->uiController()->activeMainWindow()->raise(); diff --git a/plugins/debuggercommon/registers/registersview.h b/plugins/debuggercommon/registers/registersview.h --- a/plugins/debuggercommon/registers/registersview.h +++ b/plugins/debuggercommon/registers/registersview.h @@ -26,7 +26,6 @@ #include class QMenu; -class QSignalMapper; namespace KDevMI { @@ -81,7 +80,6 @@ private: QMenu* m_menu; - QSignalMapper* m_mapper; ModelsManager* m_modelsManager; diff --git a/plugins/debuggercommon/registers/registersview.cpp b/plugins/debuggercommon/registers/registersview.cpp --- a/plugins/debuggercommon/registers/registersview.cpp +++ b/plugins/debuggercommon/registers/registersview.cpp @@ -26,7 +26,6 @@ #include #include -#include #include @@ -38,14 +37,12 @@ } RegistersView::RegistersView(QWidget* p) - : QWidget(p), m_menu(new QMenu(this)), m_mapper(new QSignalMapper(this)), m_modelsManager(nullptr) + : QWidget(p), m_menu(new QMenu(this)), m_modelsManager(nullptr) { setupUi(this); setupActions(); - connect(m_mapper, static_cast(&QSignalMapper::mapped), this, &RegistersView::menuTriggered); - connect(tabWidget, &QTabWidget::currentChanged, this, &RegistersView::updateRegisters); } @@ -243,6 +240,6 @@ m_actions.append(a); addAction(a); - m_mapper->setMapping(a, a->text()); - connect(a, &QAction::triggered, m_mapper, static_cast(&QSignalMapper::map)); + const QString atext = a->text(); + connect(a, &QAction::triggered, this, [this, atext](){ menuTriggered(atext); }); } diff --git a/plugins/filetemplates/outputpage.cpp b/plugins/filetemplates/outputpage.cpp --- a/plugins/filetemplates/outputpage.cpp +++ b/plugins/filetemplates/outputpage.cpp @@ -28,7 +28,6 @@ #include #include -#include #include namespace KDevelop { @@ -41,7 +40,6 @@ { } OutputPage* page; Ui::OutputLocationDialog* output; - QSignalMapper urlChangedMapper; QHash outputFiles; QHash outputLines; @@ -142,8 +140,6 @@ d->output->setupUi(this); d->output->messageWidget->setVisible(false); - connect(&d->urlChangedMapper, static_cast(&QSignalMapper::mapped), - this, [&] (const QString& field) { d->updateFileRange(field); }); connect(d->output->lowerFilenameCheckBox, &QCheckBox::stateChanged, this, [&] { d->updateFileNames(); }); } @@ -171,11 +167,6 @@ d->output->positionFormLayout->takeAt(0); } - foreach (KUrlRequester* req, d->outputFiles) - { - d->urlChangedMapper.removeMappings(req); - } - qDeleteAll(d->outputFiles); qDeleteAll(d->outputLines); qDeleteAll(d->outputColumns); @@ -192,16 +183,16 @@ foreach (const SourceFileTemplate::OutputFile& file, fileTemplate.outputFiles()) { - d->fileIdentifiers << file.identifier; + const QString id = file.identifier; + d->fileIdentifiers << id; const QString fileLabelText = i18n("%1:", file.label); QLabel* label = new QLabel(fileLabelText, this); d->labels << label; KUrlRequester* requester = new KUrlRequester(this); requester->setMode( KFile::File | KFile::LocalOnly ); - d->urlChangedMapper.setMapping(requester, file.identifier); - connect(requester, &KUrlRequester::textChanged, &d->urlChangedMapper, static_cast(&QSignalMapper::map)); + connect(requester, &KUrlRequester::textChanged, this, [this, id] () { d->updateFileRange(id); }); d->output->urlFormLayout->addRow(label, requester); d->outputFiles.insert(file.identifier, requester); diff --git a/plugins/openwith/openwithplugin.h b/plugins/openwith/openwithplugin.h --- a/plugins/openwith/openwithplugin.h +++ b/plugins/openwith/openwithplugin.h @@ -28,8 +28,6 @@ #include "iopenwith.h" -class QSignalMapper; - class OpenWithPlugin : public KDevelop::IPlugin, public KDevelop::IOpenWith { Q_OBJECT @@ -49,7 +47,6 @@ private: QList actionsForServiceType(const QString& serviceType, QWidget* parent); - QScopedPointer m_actionMap; QList m_urls; QString m_mimeType; KService::List m_services; diff --git a/plugins/openwith/openwithplugin.cpp b/plugins/openwith/openwithplugin.cpp --- a/plugins/openwith/openwithplugin.cpp +++ b/plugins/openwith/openwithplugin.cpp @@ -25,7 +25,6 @@ #include #include #include -#include #include #include @@ -88,8 +87,7 @@ } OpenWithPlugin::OpenWithPlugin ( QObject* parent, const QVariantList& ) - : IPlugin ( QStringLiteral("kdevopenwith"), parent ), - m_actionMap( nullptr ) + : IPlugin ( QStringLiteral("kdevopenwith"), parent ) { } @@ -105,7 +103,6 @@ } m_urls.clear(); - m_actionMap.reset(); m_services.clear(); FileContext* filectx = dynamic_cast( context ); @@ -128,9 +125,6 @@ return KDevelop::ContextMenuExtension(); } - m_actionMap.reset(new QSignalMapper( this )); - connect( m_actionMap.data(), static_cast(&QSignalMapper::mapped), this, &OpenWithPlugin::open ); - // Ok, lets fetch the mimetype for the !!first!! url and the relevant services // TODO: Think about possible alternatives to using the mimetype of the first url. QMimeType mimetype = QMimeDatabase().mimeTypeForUrl(m_urls.first()); @@ -201,8 +195,8 @@ font.setBold(true); act->setFont(font); } - connect(act, &QAction::triggered, m_actionMap.data(), static_cast(&QSignalMapper::map)); - m_actionMap->setMapping( act, svc->storageId() ); + const QString sid = svc->storageId(); + connect(act, &QAction::triggered, this, [this, sid]() { open(sid); } ); actions << act; if ( isTextEditor(svc) ) { standardAction = act; diff --git a/plugins/problemreporter/problemsview.cpp b/plugins/problemreporter/problemsview.cpp --- a/plugins/problemreporter/problemsview.cpp +++ b/plugins/problemreporter/problemsview.cpp @@ -25,7 +25,6 @@ #include #include #include -#include #include #include #include @@ -95,30 +94,11 @@ } addAction(m_scopeMenu); - QSignalMapper* scopeMapper = new QSignalMapper(this); - scopeMapper->setMapping(m_currentDocumentAction, CurrentDocument); - scopeMapper->setMapping(openDocumentsAction, OpenDocuments); - scopeMapper->setMapping(currentProjectAction, CurrentProject); - scopeMapper->setMapping(allProjectAction, AllProjects); - connect(m_currentDocumentAction, &QAction::triggered, scopeMapper, - static_cast(&QSignalMapper::map)); - connect(openDocumentsAction, &QAction::triggered, scopeMapper, - static_cast(&QSignalMapper::map)); - connect(currentProjectAction, &QAction::triggered, scopeMapper, - static_cast(&QSignalMapper::map)); - connect(allProjectAction, &QAction::triggered, scopeMapper, - static_cast(&QSignalMapper::map)); - - { - scopeMapper->setMapping(actions.last(), BypassScopeFilter); - connect(actions.last(), &QAction::triggered, scopeMapper, - static_cast(&QSignalMapper::map)); - } - - connect(scopeMapper, static_cast(&QSignalMapper::mapped), - this, [this](int index) { - setScope(index); - }); + connect(m_currentDocumentAction, &QAction::triggered, this, [this](){ setScope(CurrentDocument); }); + connect(openDocumentsAction, &QAction::triggered, this, [this](){ setScope(OpenDocuments); }); + connect(currentProjectAction, &QAction::triggered, this, [this](){ setScope(CurrentProject); }); + connect(allProjectAction, &QAction::triggered, this, [this](){ setScope(AllProjects); }); + connect(actions.last(), &QAction::triggered, this, [this](){ setScope(BypassScopeFilter); }); } { @@ -188,22 +168,10 @@ addAction(m_groupingMenu); noGroupingAction->setChecked(true); - QSignalMapper* groupingMapper = new QSignalMapper(this); - groupingMapper->setMapping(noGroupingAction, NoGrouping); - groupingMapper->setMapping(pathGroupingAction, PathGrouping); - groupingMapper->setMapping(severityGroupingAction, SeverityGrouping); - - connect(noGroupingAction, &QAction::triggered, groupingMapper, - static_cast(&QSignalMapper::map)); - connect(pathGroupingAction, &QAction::triggered, groupingMapper, - static_cast(&QSignalMapper::map)); - connect(severityGroupingAction, &QAction::triggered, groupingMapper, - static_cast(&QSignalMapper::map)); - - connect(groupingMapper, static_cast(&QSignalMapper::mapped), - this, [this](int index) { - currentView()->model()->setGrouping(index); - }); + + connect(noGroupingAction, &QAction::triggered, this, [this](){ currentView()->model()->setGrouping(NoGrouping); }); + connect(pathGroupingAction, &QAction::triggered, this, [this](){ currentView()->model()->setGrouping(PathGrouping); }); + connect(severityGroupingAction, &QAction::triggered, this, [this](){ currentView()->model()->setGrouping(SeverityGrouping); }); } { diff --git a/plugins/switchtobuddy/switchtobuddyplugin.h b/plugins/switchtobuddy/switchtobuddyplugin.h --- a/plugins/switchtobuddy/switchtobuddyplugin.h +++ b/plugins/switchtobuddy/switchtobuddyplugin.h @@ -74,9 +74,6 @@ * the cursor will be also set to the declaration's position when the buddy document is opened */ void switchDefinitionDeclaration(); - -private: - class QSignalMapper* m_signalMapper; }; diff --git a/plugins/switchtobuddy/switchtobuddyplugin.cpp b/plugins/switchtobuddy/switchtobuddyplugin.cpp --- a/plugins/switchtobuddy/switchtobuddyplugin.cpp +++ b/plugins/switchtobuddy/switchtobuddyplugin.cpp @@ -26,7 +26,6 @@ #include #include #include -#include #include #include @@ -93,7 +92,6 @@ SwitchToBuddyPlugin::SwitchToBuddyPlugin ( QObject* parent, const QVariantList& ) : IPlugin ( QStringLiteral("kdevswitchtobuddy"), parent ) - , m_signalMapper(nullptr) { setXMLFile(QStringLiteral("kdevswitchtobuddy.rc")); } @@ -120,21 +118,15 @@ const QVector& potentialBuddies = buddyFinder->getPotentialBuddies(currentUrl); ContextMenuExtension extension; - if (m_signalMapper) { - delete m_signalMapper; - } - m_signalMapper = new QSignalMapper(this); foreach(const QUrl& url, potentialBuddies) { if (!QFile::exists(url.toLocalFile())) { continue; } QAction* action = new QAction(i18n("Switch to '%1'", url.fileName()), parent); - connect(action, &QAction::triggered, m_signalMapper, static_cast(&QSignalMapper::map), Qt::QueuedConnection); - m_signalMapper->setMapping(action, url.toLocalFile()); - connect(m_signalMapper, static_cast(&QSignalMapper::mapped), - this, &SwitchToBuddyPlugin::switchToBuddy, Qt::QueuedConnection); + const QString surl = url.toLocalFile(); + connect(action, &QAction::triggered, this, [this, surl](){ switchToBuddy(surl); }, Qt::QueuedConnection); extension.addAction(ContextMenuExtension::NavigationGroup, action); }