summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGabriel de Dietrich <gabriel.dietrich-de@nokia.com>2011-04-14 14:58:25 +0200
committerOlivier Goffart <olivier.goffart@nokia.com>2011-05-10 12:54:47 +0200
commit4b25f3fa1f7cdbee225b6b8aebe3102f5201e217 (patch)
tree3a4dafd9134b19d0f0732338b6493ec0c831c2da /src
parent9b609e1c05ea48028497f0a4aca7dae646053635 (diff)
Reverting merge request 916
Revert "Introduce menubar plugin system" This reverts commits 56c3de426d97ab7c8fb..f7b60fffb673b182e63 (cherry picked from commit c6514537a8568050f5812a2b55fcf47a3ec2fce1)
Diffstat (limited to 'src')
-rw-r--r--src/gui/widgets/qabstractmenubarimpl_p.cpp44
-rw-r--r--src/gui/widgets/qabstractmenubarimpl_p.h (renamed from src/gui/widgets/qabstractmenubarinterface_p.h)26
-rw-r--r--src/gui/widgets/qmenubar.cpp9
-rw-r--r--src/gui/widgets/qmenubar_p.h4
-rw-r--r--src/gui/widgets/qmenubarimpl.cpp34
-rw-r--r--src/gui/widgets/qmenubarimpl_p.h8
-rw-r--r--src/gui/widgets/widgets.pri3
7 files changed, 70 insertions, 58 deletions
diff --git a/src/gui/widgets/qabstractmenubarimpl_p.cpp b/src/gui/widgets/qabstractmenubarimpl_p.cpp
new file mode 100644
index 0000000000..bc16030835
--- /dev/null
+++ b/src/gui/widgets/qabstractmenubarimpl_p.cpp
@@ -0,0 +1,44 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtGui module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <private/qabstractmenubarimpl_p.h>
+
+QAbstractMenuBarImpl::~QAbstractMenuBarImpl()
+{}
diff --git a/src/gui/widgets/qabstractmenubarinterface_p.h b/src/gui/widgets/qabstractmenubarimpl_p.h
index a014bc121e..d0010082ea 100644
--- a/src/gui/widgets/qabstractmenubarinterface_p.h
+++ b/src/gui/widgets/qabstractmenubarimpl_p.h
@@ -38,12 +38,10 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-#ifndef QABSTRACTMENUBARINTERFACE_P_H
-#define QABSTRACTMENUBARINTERFACE_P_H
+#ifndef QABSTRACTMENUBARIMPL_P_H
+#define QABSTRACTMENUBARIMPL_P_H
-#include <qfactoryinterface.h>
#include <qglobal.h>
-#include <qplugin.h>
#ifndef QT_NO_MENUBAR
@@ -56,29 +54,19 @@ class QMenuBar;
class QObject;
class QWidget;
-class QAbstractMenuBarInterface;
-
-struct QMenuBarImplFactoryInterface : public QFactoryInterface
-{
- virtual QAbstractMenuBarInterface* createImpl() = 0;
-};
-
-#define QMenuBarImplFactoryInterface_iid "com.nokia.qt.QMenuBarImplFactoryInterface"
-Q_DECLARE_INTERFACE(QMenuBarImplFactoryInterface, QMenuBarImplFactoryInterface_iid)
-
/**
* The platform-specific implementation of a menubar
*/
-class QAbstractMenuBarInterface
+class Q_GUI_EXPORT QAbstractMenuBarImpl
{
public:
- QAbstractMenuBarInterface() {}
- virtual ~QAbstractMenuBarInterface() {}
+ virtual ~QAbstractMenuBarImpl();
// QMenuBarPrivate::init()
virtual void init(QMenuBar *) = 0;
- virtual void setVisible(bool visible) = 0;
+ // QMenuBar::setVisible()
+ virtual bool allowSetVisible() const = 0;
virtual void actionEvent(QActionEvent *) = 0;
@@ -113,4 +101,4 @@ QT_END_NAMESPACE
#endif // QT_NO_MENUBAR
-#endif // QABSTRACTMENUBARINTERFACE_P_H
+#endif // QABSTRACTMENUBARIMPL_P_H
diff --git a/src/gui/widgets/qmenubar.cpp b/src/gui/widgets/qmenubar.cpp
index 357c0fa092..4a311323d1 100644
--- a/src/gui/widgets/qmenubar.cpp
+++ b/src/gui/widgets/qmenubar.cpp
@@ -55,7 +55,6 @@
#include <qtoolbar.h>
#include <qtoolbutton.h>
#include <qwhatsthis.h>
-#include <qpluginloader.h>
#ifndef QT_NO_MENUBAR
@@ -729,8 +728,7 @@ void QMenuBarPrivate::init()
Q_Q(QMenuBar);
q->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Minimum);
q->setAttribute(Qt::WA_CustomWhatsThis);
-
- impl = qt_guiMenuBarImplFactory()->createImpl();
+ impl = new QMenuBarImpl;
impl->init(q);
q->setBackgroundRole(QPalette::Button);
@@ -1055,7 +1053,10 @@ void QMenuBar::paintEvent(QPaintEvent *e)
void QMenuBar::setVisible(bool visible)
{
Q_D(QMenuBar);
- d->impl->setVisible(visible);
+ if (!d->impl->allowSetVisible()) {
+ return;
+ }
+ QWidget::setVisible(visible);
}
/*!
diff --git a/src/gui/widgets/qmenubar_p.h b/src/gui/widgets/qmenubar_p.h
index 427cd30908..b49e03931d 100644
--- a/src/gui/widgets/qmenubar_p.h
+++ b/src/gui/widgets/qmenubar_p.h
@@ -61,7 +61,7 @@
#include "qguifunctions_wince.h"
#endif
-#include "qabstractmenubarinterface_p.h"
+#include "qabstractmenubarimpl_p.h"
#ifndef QT_NO_MENUBAR
#ifdef Q_WS_S60
@@ -160,7 +160,7 @@ public:
#ifdef QT3_SUPPORT
bool doAutoResize;
#endif
- QAbstractMenuBarInterface *impl;
+ QAbstractMenuBarImpl *impl;
#ifdef QT_SOFTKEYS_ENABLED
QAction *menuBarAction;
#endif
diff --git a/src/gui/widgets/qmenubarimpl.cpp b/src/gui/widgets/qmenubarimpl.cpp
index d40250726b..cbe9198e58 100644
--- a/src/gui/widgets/qmenubarimpl.cpp
+++ b/src/gui/widgets/qmenubarimpl.cpp
@@ -49,8 +49,6 @@
#include "qmenu.h"
#include "qmenubar.h"
-#include <private/qfactoryloader_p.h>
-
QT_BEGIN_NAMESPACE
QMenuBarImpl::~QMenuBarImpl()
@@ -90,16 +88,20 @@ void QMenuBarImpl::init(QMenuBar *_menuBar)
#endif
}
-void QMenuBarImpl::setVisible(bool visible)
+bool QMenuBarImpl::allowSetVisible() const
{
#if defined(Q_WS_MAC) || defined(Q_OS_WINCE) || defined(Q_WS_S60)
+ // FIXME: Port this to a setVisible() method
+ /*
if (isNativeMenuBar()) {
if (!visible)
- menuBar->QWidget::setVisible(false);
+ QWidget::setVisible(false);
return;
}
+ */
+ return !isNativeMenuBar();
#endif
- menuBar->QWidget::setVisible(visible);
+ return true;
}
void QMenuBarImpl::actionEvent(QActionEvent *e)
@@ -237,28 +239,6 @@ bool QMenuBarImpl::menuBarEventFilter(QObject *, QEvent *)
return false;
}
-struct QMenuBarImplFactory : public QMenuBarImplFactoryInterface
-{
- QAbstractMenuBarInterface* createImpl() { return new QMenuBarImpl; }
- virtual QStringList keys() const { return QStringList(); }
-};
-
-QMenuBarImplFactoryInterface *qt_guiMenuBarImplFactory()
-{
- static QMenuBarImplFactoryInterface *factory = 0;
- if (!factory) {
-#ifndef QT_NO_LIBRARY
- QFactoryLoader loader(QMenuBarImplFactoryInterface_iid, QLatin1String("/menubar"));
- factory = qobject_cast<QMenuBarImplFactoryInterface *>(loader.instance(QLatin1String("default")));
-#endif // QT_NO_LIBRARY
- if (!factory) {
- static QMenuBarImplFactory def;
- factory = &def;
- }
- }
- return factory;
-}
-
QT_END_NAMESPACE
#endif // QT_NO_MENUBAR
diff --git a/src/gui/widgets/qmenubarimpl_p.h b/src/gui/widgets/qmenubarimpl_p.h
index 749c39571a..c4ab2df6d2 100644
--- a/src/gui/widgets/qmenubarimpl_p.h
+++ b/src/gui/widgets/qmenubarimpl_p.h
@@ -44,20 +44,20 @@
#ifndef QT_NO_MENUBAR
-#include "qabstractmenubarinterface_p.h"
+#include "qabstractmenubarimpl_p.h"
QT_BEGIN_NAMESPACE
class QMenuBar;
-class QMenuBarImpl : public QAbstractMenuBarInterface
+class QMenuBarImpl : public QAbstractMenuBarImpl
{
public:
~QMenuBarImpl();
virtual void init(QMenuBar *);
- virtual void setVisible(bool visible);
+ virtual bool allowSetVisible() const;
virtual void actionEvent(QActionEvent *e);
@@ -176,8 +176,6 @@ private:
#endif
};
-QMenuBarImplFactoryInterface *qt_guiMenuBarImplFactory();
-
QT_END_NAMESPACE
#endif // QT_NO_MENUBAR
diff --git a/src/gui/widgets/widgets.pri b/src/gui/widgets/widgets.pri
index 97d23f7f00..e5d6890495 100644
--- a/src/gui/widgets/widgets.pri
+++ b/src/gui/widgets/widgets.pri
@@ -4,7 +4,7 @@ HEADERS += \
widgets/qbuttongroup.h \
widgets/qabstractbutton.h \
widgets/qabstractbutton_p.h \
- widgets/qabstractmenubarinterface_p.h \
+ widgets/qabstractmenubarimpl_p.h \
widgets/qabstractslider.h \
widgets/qabstractslider_p.h \
widgets/qabstractspinbox.h \
@@ -85,6 +85,7 @@ HEADERS += \
widgets/qprintpreviewwidget.h
SOURCES += \
widgets/qabstractbutton.cpp \
+ widgets/qabstractmenubarimpl_p.cpp \
widgets/qabstractslider.cpp \
widgets/qabstractspinbox.cpp \
widgets/qcalendarwidget.cpp \