QAbstractMenuBarImpl::allowSetVisible => setVisible
authorAurélien Gâteau <agateau@kde.org>
Thu, 14 Apr 2011 08:00:30 +0000 (10:00 +0200)
committerOlivier Goffart <olivier.goffart@nokia.com>
Tue, 10 May 2011 10:54:46 +0000 (12:54 +0200)
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 <thierry.bastian@nokia.com>
(cherry picked from commit bafeffd7b8b2c40761369ba496ee655dff6cf2a5)

src/gui/widgets/qabstractmenubarimpl_p.h
src/gui/widgets/qmenubar.cpp
src/gui/widgets/qmenubarimpl.cpp
src/gui/widgets/qmenubarimpl_p.h

index 76eef28..25441df 100644 (file)
@@ -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;
 
index ec19908..556c192 100644 (file)
@@ -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);
 }
 
 /*!
index 4844e4e..1ca2e11 100644 (file)
@@ -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)
index 0546eb2..e7a3bde 100644 (file)
@@ -56,7 +56,7 @@ public:
 
     virtual void init(QMenuBar *);
 
-    virtual bool allowSetVisible() const;
+    virtual void setVisible(bool visible);
 
     virtual void actionEvent(QActionEvent *e);