From a09a62af7864d533deac9a78f42299c92e49dbe4 Mon Sep 17 00:00:00 2001
From: mae <qt-info@nokia.com>
Date: Mon, 8 Jun 2009 19:28:28 +0200
Subject: [PATCH] Create the submenu Debug/Start_Debugging. This does not win
 any beauty design contents, but is a workaround for the overlong debug menu.
 This needs cleanup for 1.3.

---
 src/plugins/debugger/debuggerplugin.cpp           | 15 ++++++++++-----
 src/plugins/projectexplorer/projectexplorer.cpp   |  6 +++++-
 .../projectexplorer/projectexplorerconstants.h    |  1 +
 3 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 3caaccb4890..80fad9ab1c4 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -97,6 +97,8 @@ using namespace TextEditor;
 namespace Debugger {
 namespace Constants {
 
+const char * const M_DEBUG_START_DEBUGGING = "QtCreator.Menu.Debug.StartDebugging";
+
 const char * const STARTEXTERNAL        = "Debugger.StartExternal";
 const char * const ATTACHEXTERNAL       = "Debugger.AttachExternal";
 const char * const ATTACHCORE           = "Debugger.AttachCore";
@@ -597,22 +599,25 @@ bool DebuggerPlugin::initialize(const QStringList &arguments, QString *errorMess
     Core::ActionContainer *mdebug =
         am->actionContainer(ProjectExplorer::Constants::M_DEBUG);
 
+    Core::ActionContainer *mstart =
+        am->actionContainer(ProjectExplorer::Constants::M_DEBUG_STARTDEBUGGING);
+
     Core::Command *cmd = 0;
     cmd = am->registerAction(m_manager->m_continueAction,
         ProjectExplorer::Constants::DEBUG, QList<int>() << m_gdbRunningContext);
-    mdebug->addAction(cmd, Core::Constants::G_DEFAULT_ONE);
+    mstart->addAction(cmd, Core::Constants::G_DEFAULT_ONE);
 
     cmd = am->registerAction(m_startExternalAction,
         Constants::STARTEXTERNAL, globalcontext);
-    mdebug->addAction(cmd, Core::Constants::G_DEFAULT_ONE);
+    mstart->addAction(cmd, Core::Constants::G_DEFAULT_ONE);
 
     cmd = am->registerAction(m_attachExternalAction,
         Constants::ATTACHEXTERNAL, globalcontext);
-    mdebug->addAction(cmd, Core::Constants::G_DEFAULT_ONE);
+    mstart->addAction(cmd, Core::Constants::G_DEFAULT_ONE);
 
     cmd = am->registerAction(m_attachCoreAction,
         Constants::ATTACHCORE, globalcontext);
-    mdebug->addAction(cmd, Core::Constants::G_DEFAULT_ONE);
+    mstart->addAction(cmd, Core::Constants::G_DEFAULT_ONE);
 /*
     cmd = am->registerAction(m_attachTcfAction,
         Constants::ATTACHTCF, globalcontext);
@@ -621,7 +626,7 @@ bool DebuggerPlugin::initialize(const QStringList &arguments, QString *errorMess
 
     cmd = am->registerAction(m_startRemoteAction,
         Constants::ATTACHREMOTE, globalcontext);
-    mdebug->addAction(cmd, Core::Constants::G_DEFAULT_ONE);
+    mstart->addAction(cmd, Core::Constants::G_DEFAULT_ONE);
 
     cmd = am->registerAction(m_detachAction,
         Constants::DETACH, globalcontext);
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index 3fe0ad0d889..d38a98b8a5d 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -279,6 +279,10 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
     mdebug->menu()->setTitle(tr("&Debug"));
     menubar->addMenu(mdebug, Core::Constants::G_VIEW);
 
+    Core::ActionContainer *mstartdebugging =
+        am->createMenu(Constants::M_DEBUG_STARTDEBUGGING);
+    mstartdebugging->menu()->setTitle(tr("&Start Debugging"));
+    mdebug->addMenu(mstartdebugging, Core::Constants::G_DEFAULT_ONE);
 
     //
     // Groups
@@ -600,7 +604,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
     cmd->setAttribute(Core::Command::CA_UpdateIcon);
     cmd->setDefaultText(tr("Start Debugging"));
     cmd->setDefaultKeySequence(QKeySequence(tr("F5")));
-    mdebug->addAction(cmd, Core::Constants::G_DEFAULT_ONE);
+    mstartdebugging->addAction(cmd, Core::Constants::G_DEFAULT_ONE);
     modeManager->addAction(cmd, Constants::P_ACTION_DEBUG, m_runConfigurationMenu);
 
     // add new file action
diff --git a/src/plugins/projectexplorer/projectexplorerconstants.h b/src/plugins/projectexplorer/projectexplorerconstants.h
index 105a715beab..522795c729e 100644
--- a/src/plugins/projectexplorer/projectexplorerconstants.h
+++ b/src/plugins/projectexplorer/projectexplorerconstants.h
@@ -90,6 +90,7 @@ const char * const LANG_CXX             = "CXX";
 const char * const M_RECENTPROJECTS     = "ProjectExplorer.Menu.Recent";
 const char * const M_BUILDPROJECT       = "ProjectExplorer.Menu.Build";
 const char * const M_DEBUG              = "ProjectExplorer.Menu.Debug";
+const char * const M_DEBUG_STARTDEBUGGING = "ProjectExplorer.Menu.Debug.StartDebugging";
 const char * const M_SESSION            = "ProjectExplorer.Menu.Session";
 
 // toolbars
-- 
GitLab