From f98934ef731fc75fe6647ec494494452e8577e2c Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 14 Nov 2023 15:53:33 +0100 Subject: [PATCH] Core: Simplify ActionManager::setOnTriggered Allows the same functionality as QObject::connect Change-Id: I4416d991dc8bcdf24893435c30b530a6b4d3fda4 Reviewed-by: Qt CI Bot Reviewed-by: Eike Ziller --- .../coreplugin/actionmanager/actionmanager.cpp | 10 ---------- .../coreplugin/actionmanager/actionmanager.h | 15 +++++++++++++-- 2 files changed, 13 insertions(+), 12 deletions(-) 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);