diff --git a/src/plugins/coreplugin/actionmanager/command.cpp b/src/plugins/coreplugin/actionmanager/command.cpp index 6e84d29c554dfdf4cacb8f8617cd57f3b3e92629..b92720f4cd9fc57438b67159ad820d6241962b4a 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<int> &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<int, QPointer<QAction> >::const_iterator it = m_contextActionMap.constBegin(); + QMap<int, QPointer<QAction> >::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 176866dfeeb7a3ffc48621f5c8188a591e661922..accb15e4acb3cceb30a30493fe17e9b1140b0531 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<int> &context); void addOverrideAction(QAction *action, const QList<int> &context); bool isActive() const; + void setKeySequence(const QKeySequence &key); private slots: void actionChanged();