From 5b1cebc9891d13594993b25c9e51b00b38a3831f Mon Sep 17 00:00:00 2001
From: dt <qtc-committer@nokia.com>
Date: Mon, 6 Sep 2010 13:56:38 +0200
Subject: [PATCH] Ensure always having a mode

Switch to Edit Mode once we constructed it in Core::init(). Switch to a
the Welcome Mode in Core::extensionsInitialized. Also works
---
 src/plugins/coreplugin/coreplugin.cpp  | 2 ++
 src/plugins/coreplugin/modemanager.cpp | 5 +++++
 src/plugins/coreplugin/modemanager.h   | 2 ++
 src/plugins/welcome/welcomeplugin.cpp  | 1 -
 4 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/plugins/coreplugin/coreplugin.cpp b/src/plugins/coreplugin/coreplugin.cpp
index f589e8703c1..718a9a348de 100644
--- a/src/plugins/coreplugin/coreplugin.cpp
+++ b/src/plugins/coreplugin/coreplugin.cpp
@@ -84,6 +84,7 @@ bool CorePlugin::initialize(const QStringList &arguments, QString *errorMessage)
     if (success) {
         EditorManager *editorManager = m_mainWindow->editorManager();
         m_editMode = new EditMode(editorManager);
+        m_mainWindow->modeManager()->activateMode(m_editMode->id());
         addObject(m_editMode);
 
         m_designMode = new DesignMode(editorManager);
@@ -95,6 +96,7 @@ bool CorePlugin::initialize(const QStringList &arguments, QString *errorMessage)
 void CorePlugin::extensionsInitialized()
 {
     m_mainWindow->extensionsInitialized();
+    m_mainWindow->modeManager()->switchToDefaultMode();
 }
 
 void CorePlugin::remoteCommand(const QStringList & /* options */, const QStringList &args)
diff --git a/src/plugins/coreplugin/modemanager.cpp b/src/plugins/coreplugin/modemanager.cpp
index 091bcff4f4f..5f5e182be16 100644
--- a/src/plugins/coreplugin/modemanager.cpp
+++ b/src/plugins/coreplugin/modemanager.cpp
@@ -309,6 +309,11 @@ void ModeManager::setFocusToCurrentMode()
     }
 }
 
+void ModeManager::switchToDefaultMode()
+{
+    d->m_modeStack->setCurrentIndex(0);
+}
+
 ModeManager *ModeManager::instance()
 {
     return ModeManagerPrivate::m_instance;
diff --git a/src/plugins/coreplugin/modemanager.h b/src/plugins/coreplugin/modemanager.h
index ea0fb716188..e92c9272828 100644
--- a/src/plugins/coreplugin/modemanager.h
+++ b/src/plugins/coreplugin/modemanager.h
@@ -66,6 +66,8 @@ public:
     void addProjectSelector(QAction *action);
     void addWidget(QWidget *widget);
 
+    void switchToDefaultMode();
+
 signals:
     void currentModeAboutToChange(Core::IMode *mode);
 
diff --git a/src/plugins/welcome/welcomeplugin.cpp b/src/plugins/welcome/welcomeplugin.cpp
index 4ef9768394a..46c59e87144 100644
--- a/src/plugins/welcome/welcomeplugin.cpp
+++ b/src/plugins/welcome/welcomeplugin.cpp
@@ -76,7 +76,6 @@ bool WelcomePlugin::initialize(const QStringList & /* arguments */, QString * /*
 void WelcomePlugin::extensionsInitialized()
 {
     m_welcomeMode->initPlugins();
-    Core::ModeManager::instance()->activateMode(m_welcomeMode->id());
 }
 
 Q_EXPORT_PLUGIN(WelcomePlugin)
-- 
GitLab