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)
// 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;
void QMenuBar::setVisible(bool visible)
{
Q_D(QMenuBar);
- if (!d->impl->allowSetVisible()) {
- return;
- }
- QWidget::setVisible(visible);
+ d->impl->setVisible(visible);
}
/*!
#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)
virtual void init(QMenuBar *);
- virtual bool allowSetVisible() const;
+ virtual void setVisible(bool visible);
virtual void actionEvent(QActionEvent *e);