From d7e7c3427d878cadbdce26f12ef39aceafbff966 Mon Sep 17 00:00:00 2001
From: con <qtc-committer@nokia.com>
Date: Fri, 12 Nov 2010 13:45:13 +0100
Subject: [PATCH] Fix updating of menus with EA_Hide.

---
 src/plugins/coreplugin/actionmanager/actioncontainer.cpp | 8 +++++---
 src/plugins/coreplugin/actionmanager/actionmanager.cpp   | 5 -----
 src/plugins/coreplugin/actionmanager/actionmanager_p.h   | 1 -
 3 files changed, 5 insertions(+), 9 deletions(-)

diff --git a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
index 4d39b49e759..68e73a197c5 100644
--- a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
+++ b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
@@ -150,7 +150,7 @@ using namespace Core::Internal;
 ActionContainerPrivate::ActionContainerPrivate(int id)
     : m_data(0), m_id(id), m_updateRequested(false)
 {
-
+    scheduleUpdate();
 }
 
 void ActionContainerPrivate::setEmptyAction(EmptyAction ea)
@@ -251,6 +251,7 @@ void ActionContainerPrivate::addAction(Command *action, int pos, bool setpos)
     m_posmap.insert(pos, action->id());
     connect(action, SIGNAL(activeStateChanged()), this, SLOT(scheduleUpdate()));
     insertAction(ba, a->action());
+    scheduleUpdate();
 }
 
 void ActionContainerPrivate::addMenu(ActionContainer *menu, int pos, bool setpos)
@@ -271,6 +272,7 @@ void ActionContainerPrivate::addMenu(ActionContainer *menu, int pos, bool setpos
     m_subContainers.append(menu);
     m_posmap.insert(pos, menu->id());
     insertMenu(ba, mc->menu());
+    scheduleUpdate();
 }
 
 QAction *ActionContainerPrivate::beforeAction(int pos, int *prevKey) const
@@ -418,9 +420,9 @@ bool MenuActionContainer::updateInternal()
     }
 
     if (hasEmptyAction(EA_Hide))
-        m_menu->setVisible(hasitems);
+        m_menu->menuAction()->setVisible(hasitems);
     else if (hasEmptyAction(EA_Disable))
-        m_menu->setEnabled(hasitems);
+        m_menu->menuAction()->setEnabled(hasitems);
 
     return hasitems;
 }
diff --git a/src/plugins/coreplugin/actionmanager/actionmanager.cpp b/src/plugins/coreplugin/actionmanager/actionmanager.cpp
index 96888ad819e..c44c6591695 100644
--- a/src/plugins/coreplugin/actionmanager/actionmanager.cpp
+++ b/src/plugins/coreplugin/actionmanager/actionmanager.cpp
@@ -255,11 +255,6 @@ QList<Command *> ActionManagerPrivate::commands() const
     return result;
 }
 
-QList<ActionContainerPrivate *> ActionManagerPrivate::containers() const
-{
-    return m_idContainerMap.values();
-}
-
 bool ActionManagerPrivate::hasContext(int context) const
 {
     return m_context.contains(context);
diff --git a/src/plugins/coreplugin/actionmanager/actionmanager_p.h b/src/plugins/coreplugin/actionmanager/actionmanager_p.h
index 4d3e3c99100..39cb3f65665 100644
--- a/src/plugins/coreplugin/actionmanager/actionmanager_p.h
+++ b/src/plugins/coreplugin/actionmanager/actionmanager_p.h
@@ -72,7 +72,6 @@ public:
     QList<int> defaultGroups() const;
 
     QList<Command *> commands() const;
-    QList<ActionContainerPrivate *> containers() const;
 
     bool hasContext(int context) const;
 
-- 
GitLab