diff --git a/src/plugins/coreplugin/actionmanager/actionmanager.cpp b/src/plugins/coreplugin/actionmanager/actionmanager.cpp index 90c52f16ef3..0c5c36f8d0c 100644 --- a/src/plugins/coreplugin/actionmanager/actionmanager.cpp +++ b/src/plugins/coreplugin/actionmanager/actionmanager.cpp @@ -146,16 +146,6 @@ void ActionBuilder::setOnTriggered(const std::function &func) QObject::connect(d->action, &QAction::triggered, d->action, func); } -void ActionBuilder::setOnTriggered(QObject *guard, const std::function &func) -{ - QObject::connect(d->action, &QAction::triggered, guard, func); -} - -void ActionBuilder::setOnTriggered(QObject *guard, const std::function &func) -{ - QObject::connect(d->action, &QAction::triggered, guard, func); -} - void ActionBuilder::setOnToggled(QObject *guard, const std::function &func) { QObject::connect(d->action, &QAction::toggled, guard, func); diff --git a/src/plugins/coreplugin/actionmanager/actionmanager.h b/src/plugins/coreplugin/actionmanager/actionmanager.h index ce6f12a4938..564d7202546 100644 --- a/src/plugins/coreplugin/actionmanager/actionmanager.h +++ b/src/plugins/coreplugin/actionmanager/actionmanager.h @@ -44,9 +44,20 @@ public: void setCommandDescription(const QString &desc); void setContainer(Utils::Id containerId, Utils::Id groupId = {}, bool needsToExist = true); void setOnTriggered(const std::function &func); - void setOnTriggered(QObject *guard, const std::function &func); - void setOnTriggered(QObject *guard, const std::function &func); void setOnToggled(QObject *guard, const std::function &func); + + template + void setOnTriggered(T *guard, + F &&function, + Qt::ConnectionType connectionType = Qt::AutoConnection) + { + QObject::connect(commandAction(), + &QAction::triggered, + guard, + std::forward(function), + connectionType); + } + void setDefaultKeySequence(const QKeySequence &seq); void setDefaultKeySequences(const QList &seqs); void setDefaultKeySequence(const QString &mac, const QString &nonMac);