diff --git a/src/plugins/coreplugin/actionmanager/command.cpp b/src/plugins/coreplugin/actionmanager/command.cpp index 6e84d29c554..b92720f4cd9 100644 --- a/src/plugins/coreplugin/actionmanager/command.cpp +++ b/src/plugins/coreplugin/actionmanager/command.cpp @@ -500,6 +500,7 @@ void OverrideableAction::addOverrideAction(QAction *action, const QList &co m_contextActionMap.insert(k, action); } } + action->setShortcut(OverrideableAction::action()->shortcut()); } void OverrideableAction::actionChanged() @@ -529,3 +530,14 @@ bool OverrideableAction::isActive() const { return m_active; } + +void OverrideableAction::setKeySequence(const QKeySequence &key) +{ + QMap >::const_iterator it = m_contextActionMap.constBegin(); + QMap >::const_iterator itEnd = m_contextActionMap.constEnd(); + while (it != itEnd) { + it.value()->setShortcut(key); + ++it; + } + Action::setKeySequence(key); +} diff --git a/src/plugins/coreplugin/actionmanager/command_p.h b/src/plugins/coreplugin/actionmanager/command_p.h index 176866dfeeb..accb15e4acb 100644 --- a/src/plugins/coreplugin/actionmanager/command_p.h +++ b/src/plugins/coreplugin/actionmanager/command_p.h @@ -143,6 +143,7 @@ public: bool setCurrentContext(const QList &context); void addOverrideAction(QAction *action, const QList &context); bool isActive() const; + void setKeySequence(const QKeySequence &key); private slots: void actionChanged();