diff options
author | Eike Ziller <eike.ziller@nokia.com> | 2012-05-02 13:53:46 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@nokia.com> | 2012-05-02 13:53:46 +0200 |
commit | b1216cf376653c942c0f96b025180b3cf393eb38 (patch) | |
tree | 8dbefbfb256479efb078be223b7f015ffa537e37 /src/plugins/coreplugin/actionmanager | |
parent | 1c1736944fdbd1b6b8e783e217d326c310fa7080 (diff) | |
parent | f059018a8eeab714647685e43473f348e3b3d3c9 (diff) | |
download | qt-creator-b1216cf376653c942c0f96b025180b3cf393eb38.tar.gz |
Merge remote-tracking branch 'origin/2.5'
Conflicts:
src/plugins/coreplugin/mainwindow.cpp
Change-Id: I975a4208588d174ebb44054de56c5ac8d7c878fe
Diffstat (limited to 'src/plugins/coreplugin/actionmanager')
-rw-r--r-- | src/plugins/coreplugin/actionmanager/actioncontainer.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp index ed771668b3..83329ef46c 100644 --- a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp +++ b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp @@ -402,11 +402,27 @@ void MenuActionContainer::removeMenu(QMenu *menu) m_menu->removeAction(menu->menuAction()); } +static bool menuInMenuBar(const QMenu *menu) +{ + foreach (const QWidget *widget, menu->menuAction()->associatedWidgets()) { + if (qobject_cast<const QMenuBar *>(widget)) + return true; + } + return false; +} + bool MenuActionContainer::updateInternal() { if (onAllDisabledBehavior() == Show) return true; +#ifdef Q_OS_MAC + // work around QTBUG-25544 which makes menus in the menu bar stay at their enabled state at startup + // (so menus that are disabled at startup would stay disabled) + if (menuInMenuBar(m_menu)) + return true; +#endif + bool hasitems = false; QList<QAction *> actions = m_menu->actions(); |