Reverting merge request 916

Revert "Introduce menubar plugin system"

This reverts commits 56c3de426d97ab7c8fb..f7b60fffb673b182e63
(cherry picked from commit c6514537a8568050f5812a2b55fcf47a3ec2fce1)
This commit is contained in:
Gabriel de Dietrich 2011-04-14 14:58:25 +02:00 committed by Olivier Goffart
parent 9b609e1c05
commit 4b25f3fa1f
7 changed files with 70 additions and 58 deletions

View File

@ -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()
{}

View File

@ -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

View File

@ -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);
}
/*!

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 \