From 9317fee1d9cb3a871cf0efdd357688e0c86c6f84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20G=C3=A2teau?= Date: Thu, 14 Apr 2011 10:00:30 +0200 Subject: QAbstractMenuBarImpl::allowSetVisible => setVisible This makes it possible to alter the behavior of QMenuBar::setVisible(). It seems to be needed for the Mac menubar. Merge-request: 916 Reviewed-by: Thierry Bastian (cherry picked from commit bafeffd7b8b2c40761369ba496ee655dff6cf2a5) --- src/gui/widgets/qabstractmenubarimpl_p.h | 3 +-- src/gui/widgets/qmenubar.cpp | 5 +---- src/gui/widgets/qmenubarimpl.cpp | 10 +++------- src/gui/widgets/qmenubarimpl_p.h | 2 +- 4 files changed, 6 insertions(+), 14 deletions(-) (limited to 'src/gui') diff --git a/src/gui/widgets/qabstractmenubarimpl_p.h b/src/gui/widgets/qabstractmenubarimpl_p.h index 76eef2890d..25441dff4a 100644 --- a/src/gui/widgets/qabstractmenubarimpl_p.h +++ b/src/gui/widgets/qabstractmenubarimpl_p.h @@ -77,8 +77,7 @@ public: // QMenuBarPrivate::init() virtual void init(QMenuBar *) = 0; - // QMenuBar::setVisible() - virtual bool allowSetVisible() const = 0; + virtual void setVisible(bool visible) = 0; virtual void actionEvent(QActionEvent *) = 0; diff --git a/src/gui/widgets/qmenubar.cpp b/src/gui/widgets/qmenubar.cpp index ec19908169..556c1923b4 100644 --- a/src/gui/widgets/qmenubar.cpp +++ b/src/gui/widgets/qmenubar.cpp @@ -1055,10 +1055,7 @@ void QMenuBar::paintEvent(QPaintEvent *e) void QMenuBar::setVisible(bool visible) { Q_D(QMenuBar); - if (!d->impl->allowSetVisible()) { - return; - } - QWidget::setVisible(visible); + d->impl->setVisible(visible); } /*! diff --git a/src/gui/widgets/qmenubarimpl.cpp b/src/gui/widgets/qmenubarimpl.cpp index 4844e4eb72..1ca2e11966 100644 --- a/src/gui/widgets/qmenubarimpl.cpp +++ b/src/gui/widgets/qmenubarimpl.cpp @@ -90,20 +90,16 @@ void QMenuBarImpl::init(QMenuBar *_menuBar) #endif } -bool QMenuBarImpl::allowSetVisible() const +void QMenuBarImpl::setVisible(bool visible) { #if defined(Q_WS_MAC) || defined(Q_OS_WINCE) || defined(Q_WS_S60) - // FIXME: Port this to a setVisible() method - /* if (isNativeMenuBar()) { if (!visible) - QWidget::setVisible(false); + menuBar->QWidget::setVisible(false); return; } - */ - return !isNativeMenuBar(); #endif - return true; + menuBar->QWidget::setVisible(visible); } void QMenuBarImpl::actionEvent(QActionEvent *e) diff --git a/src/gui/widgets/qmenubarimpl_p.h b/src/gui/widgets/qmenubarimpl_p.h index 0546eb22f7..e7a3bdeae7 100644 --- a/src/gui/widgets/qmenubarimpl_p.h +++ b/src/gui/widgets/qmenubarimpl_p.h @@ -56,7 +56,7 @@ public: virtual void init(QMenuBar *); - virtual bool allowSetVisible() const; + virtual void setVisible(bool visible); virtual void actionEvent(QActionEvent *e); -- cgit v1.2.3