From 4e578d955a2cc38a82bfea24fe56aa0d032e0ed3 Mon Sep 17 00:00:00 2001
From: Lasse Holmstedt <lasse.holmstedt@nokia.com>
Date: Thu, 18 Mar 2010 16:55:27 +0100
Subject: [PATCH] setting menu item visiblity in debuggeruiswitcher

---
 src/plugins/debugger/debuggermanager.h      |  2 +-
 src/plugins/debugger/debuggerplugin.cpp     |  1 +
 src/plugins/debugger/debuggeruiswitcher.cpp | 11 ++++++++---
 src/plugins/debugger/debuggeruiswitcher.h   |  1 -
 4 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/plugins/debugger/debuggermanager.h b/src/plugins/debugger/debuggermanager.h
index 13e9f4f08c1..b968f4c3933 100644
--- a/src/plugins/debugger/debuggermanager.h
+++ b/src/plugins/debugger/debuggermanager.h
@@ -258,7 +258,7 @@ public slots:
 public slots: // FIXME
     void showDebuggerOutput(const QString &msg)
         { showDebuggerOutput(LogDebug, msg); }
-   void ensureLogVisible();
+    void ensureLogVisible();
 
 //private slots:  // FIXME
     void showDebuggerOutput(int channel, const QString &msg);
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 30e814e21b3..11df358d824 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -1251,6 +1251,7 @@ void DebuggerPlugin::languageChanged(const QString &language)
     m_attachCoreAction->setVisible(debuggerIsCPP);
     m_startRemoteAction->setVisible(debuggerIsCPP);
     m_detachAction->setVisible(debuggerIsCPP);
+
 }
 
 void DebuggerPlugin::writeSettings() const
diff --git a/src/plugins/debugger/debuggeruiswitcher.cpp b/src/plugins/debugger/debuggeruiswitcher.cpp
index 2a5d6ab8c06..0a2343ef8df 100644
--- a/src/plugins/debugger/debuggeruiswitcher.cpp
+++ b/src/plugins/debugger/debuggeruiswitcher.cpp
@@ -6,7 +6,7 @@
 
 #include <utils/savedaction.h>
 #include <utils/styledbar.h>
-
+#include <coreplugin/actionmanager/command.h>
 #include <debugger/debuggerconstants.h>
 #include <debugger/debuggeractions.h>
 
@@ -73,6 +73,8 @@ struct DebuggerUISwitcherPrivate {
     Core::ActionContainer *m_viewsMenu;
     Core::ActionContainer *m_debugMenu;
 
+    QMultiHash< int, Core::Command *> m_menuCommands;
+
     static DebuggerUISwitcher *m_instance;
 };
 
@@ -119,9 +121,11 @@ DebuggerUISwitcher::~DebuggerUISwitcher()
     delete d;
 }
 
+void DebuggerUISwitcher::addMenuAction(Core::Command *command, const QString &langName,
+                                       const QString &group)
 {
     d->m_debugMenu->addAction(command, group);
-    m_menuCommands.insert(d->m_languages.indexOf(langName), command);
+    d->m_menuCommands.insert(d->m_languages.indexOf(langName), command);
 }
 
 void DebuggerUISwitcher::setActiveLanguage(const QString &langName)
@@ -270,8 +274,9 @@ void DebuggerUISwitcher::changeDebuggerUI(const QString &langName)
                 menuitem.second->setVisible(false);
             }
         }
+
         d->m_languageMenu->menu()->setTitle(tr("Language") + " (" + langName + ")");
-        QHashIterator<int, Core::Command *> iter(m_menuCommands);
+        QHashIterator<int, Core::Command *> iter(d->m_menuCommands);
         while (iter.hasNext()) {
             iter.next();
             bool active = (iter.key() == langId);
diff --git a/src/plugins/debugger/debuggeruiswitcher.h b/src/plugins/debugger/debuggeruiswitcher.h
index cb1a14a53e3..b06db60d3c6 100644
--- a/src/plugins/debugger/debuggeruiswitcher.h
+++ b/src/plugins/debugger/debuggeruiswitcher.h
@@ -89,7 +89,6 @@ private:
     QWidget *createMainWindow(Core::BaseMode *mode);
 
     DebuggerUISwitcherPrivate *d;
-    QMultiHash< int, Core::Command *> m_menuCommands;
     Utils::SavedAction *m_changeLanguageAction;
 };
 
-- 
GitLab