From e27f6884920449d86d16e80d3ef0c1fbd89f3da6 Mon Sep 17 00:00:00 2001
From: con <qtc-committer@nokia.com>
Date: Thu, 23 Jul 2009 11:02:37 +0200
Subject: [PATCH] Fix setting the mode keyboard shortcuts.

Broke with 61e468a8851541ba5b6cffc2dd37b4167af1d064.
---
 src/plugins/coreplugin/modemanager.cpp | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/plugins/coreplugin/modemanager.cpp b/src/plugins/coreplugin/modemanager.cpp
index ba30077cd6b..55405e226ed 100644
--- a/src/plugins/coreplugin/modemanager.cpp
+++ b/src/plugins/coreplugin/modemanager.cpp
@@ -147,11 +147,16 @@ void ModeManager::objectAdded(QObject *obj)
     m_modeShortcuts.insert(index, cmd);
     connect(cmd, SIGNAL(keySequenceChanged()), this, SLOT(updateModeToolTip()));
     for (int i = 0; i < m_modeShortcuts.size(); ++i) {
+        Command *currentCmd = m_modeShortcuts.at(i);
+        bool currentlyHasDefaultSequence = (currentCmd->keySequence()
+                                            == currentCmd->defaultKeySequence());
 #ifdef Q_WS_MAC
-        m_modeShortcuts.at(i)->setDefaultKeySequence(QKeySequence(QString("Meta+%1").arg(i+1)));
+        currentCmd->setDefaultKeySequence(QKeySequence(QString("Meta+%1").arg(i+1)));
 #else
-        m_modeShortcuts.at(i)->setDefaultKeySequence(QKeySequence(QString("Ctrl+%1").arg(i+1)));
+        currentCmd->setDefaultKeySequence(QKeySequence(QString("Ctrl+%1").arg(i+1)));
 #endif
+        if (currentlyHasDefaultSequence)
+            currentCmd->setKeySequence(currentCmd->defaultKeySequence());
     }
 
     m_signalMapper->setMapping(shortcut, mode->uniqueModeName());
-- 
GitLab