diff options
14 files changed, 29 insertions, 228 deletions
diff --git a/examples/declarative/plugins/files/Clock.qml b/examples/declarative/plugins/com/nokia/TimeExample/Clock.qml index 01ec686..01ec686 100644 --- a/examples/declarative/plugins/files/Clock.qml +++ b/examples/declarative/plugins/com/nokia/TimeExample/Clock.qml diff --git a/examples/declarative/plugins/files/center.png b/examples/declarative/plugins/com/nokia/TimeExample/center.png Binary files differindex 7fbd802..7fbd802 100644 --- a/examples/declarative/plugins/files/center.png +++ b/examples/declarative/plugins/com/nokia/TimeExample/center.png diff --git a/examples/declarative/plugins/files/clock.png b/examples/declarative/plugins/com/nokia/TimeExample/clock.png Binary files differindex 462edac..462edac 100644 --- a/examples/declarative/plugins/files/clock.png +++ b/examples/declarative/plugins/com/nokia/TimeExample/clock.png diff --git a/examples/declarative/plugins/files/hour.png b/examples/declarative/plugins/com/nokia/TimeExample/hour.png Binary files differindex f8061a1..f8061a1 100644 --- a/examples/declarative/plugins/files/hour.png +++ b/examples/declarative/plugins/com/nokia/TimeExample/hour.png diff --git a/examples/declarative/plugins/files/minute.png b/examples/declarative/plugins/com/nokia/TimeExample/minute.png Binary files differindex 1297ec7..1297ec7 100644 --- a/examples/declarative/plugins/files/minute.png +++ b/examples/declarative/plugins/com/nokia/TimeExample/minute.png diff --git a/examples/declarative/plugins/plugin.cpp b/examples/declarative/plugins/plugin.cpp index 820d4eb..8e21263 100644 --- a/examples/declarative/plugins/plugin.cpp +++ b/examples/declarative/plugins/plugin.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include <QtDeclarative/qmlmoduleplugin.h> +#include <QtDeclarative/QmlExtensionPlugin> #include <QtDeclarative/qml.h> #include <qdebug.h> #include <qdatetime.h> @@ -140,19 +140,15 @@ MinuteTimer *Time::timer=0; QML_DECLARE_TYPE(Time); -class QExampleQmlPlugin : public QmlModulePlugin +class QExampleQmlPlugin : public QmlExtensionPlugin { Q_OBJECT public: - QStringList keys() const - { - return QStringList() << QLatin1String("com.nokia.TimeExample"); - } - - void defineModule(const QString& uri) + void initialize(QmlEngine *engine, const char *uri) { + Q_UNUSED(engine); Q_ASSERT(uri == QLatin1String("com.nokia.TimeExample")); - qmlRegisterType<Time>("com.nokia.TimeExample", 1, 0, "Time", "Time"); + qmlRegisterType<Time>(uri, 1, 0, "Time", "Time"); } }; diff --git a/examples/declarative/plugins/plugins.pro b/examples/declarative/plugins/plugins.pro index 84ab8da..d932b01 100644 --- a/examples/declarative/plugins/plugins.pro +++ b/examples/declarative/plugins/plugins.pro @@ -1,4 +1,5 @@ TEMPLATE = lib +DESTDIR = com/nokia/TimeExample TARGET = qtimeexampleqmlplugin CONFIG += qt plugin QT += declarative @@ -6,10 +7,18 @@ QT += declarative SOURCES += plugin.cpp target.path += $$[QT_INSTALL_PLUGINS]/qmlmodules -sources.files += files/Clock.qml files/qmldir files/background.png files/center.png files/clock-night.png files/clock.png files/hour.png files/minute.png + +sources.files += \ + $$PWD/com/nokia/TimeExample/qmldir \ + $$PWD/com/nokia/TimeExample/center.png \ + $$PWD/com/nokia/TimeExample/clock.png \ + $$PWD/com/nokia/TimeExample/Clock.qml \ + $$PWD/com/nokia/TimeExample/hour.png \ + $$PWD/com/nokia/TimeExample/minute.png + sources.path += $$[QT_INSTALL_DATA]/qml/com/nokia/TimeExample -INSTALLS += target sources +INSTALLS += target sources VERSION=1.0.0 diff --git a/src/declarative/qml/qml.pri b/src/declarative/qml/qml.pri index 4f75391..1e4e234 100644 --- a/src/declarative/qml/qml.pri +++ b/src/declarative/qml/qml.pri @@ -7,7 +7,6 @@ SOURCES += \ $$PWD/qmlexpression.cpp \ $$PWD/qmlbinding.cpp \ $$PWD/qmlmetaproperty.cpp \ - $$PWD/qmlmoduleplugin.cpp \ $$PWD/qmlcomponent.cpp \ $$PWD/qmlcontext.cpp \ $$PWD/qmlcustomparser.cpp \ @@ -65,7 +64,6 @@ HEADERS += \ $$PWD/qmlbinding_p.h \ $$PWD/qmlbinding_p_p.h \ $$PWD/qmlmetaproperty.h \ - $$PWD/qmlmoduleplugin.h \ $$PWD/qmlcomponent.h \ $$PWD/qmlcomponent_p.h \ $$PWD/qmlcustomparser_p.h \ diff --git a/src/declarative/qml/qmlengine.cpp b/src/declarative/qml/qmlengine.cpp index a7c3d08..c7e1e16 100644 --- a/src/declarative/qml/qmlengine.cpp +++ b/src/declarative/qml/qmlengine.cpp @@ -50,7 +50,6 @@ #include "qmlexpression.h" #include "qmlcomponent.h" #include "qmlmetaproperty_p.h" -#include "qmlmoduleplugin.h" #include "qmlbinding_p_p.h" #include "qmlvme_p.h" #include "qmlenginedebug_p.h" diff --git a/src/declarative/qml/qmlmoduleplugin.cpp b/src/declarative/qml/qmlmoduleplugin.cpp deleted file mode 100644 index 8019805..0000000 --- a/src/declarative/qml/qmlmoduleplugin.cpp +++ /dev/null @@ -1,111 +0,0 @@ -/**************************************************************************** -** -** 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 QtDeclarative 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 "qmlmoduleplugin.h" -#include "qstringlist.h" - -QT_BEGIN_NAMESPACE - -/*! - \class QmlModulePlugin - \brief The QmlModulePlugin class provides an abstract base for custom QML module plugins. - \reentrant - \ingroup plugins - - The QML module plugin is a simple plugin interface that makes it - easy to add custom QML modules that can be loaded dynamically - into applications. - - Writing a QML module plugin is achieved by subclassing this base - class, reimplementing the pure virtual function keys(), and - exporting the class with the Q_EXPORT_PLUGIN2() macro. See \l{How - to Create Qt Plugins} for details. - - The strings returned by keys() should be the list of URIs of modules - that the plugin registers. - - The plugin should register QML types with qmlRegisterType() when the - defineModule() method is called. - - See the example in \c{examples/declarative/plugins}. -*/ - -/*! - Constructs a QML module plugin with the given \a parent. This is - invoked automatically by the Q_EXPORT_PLUGIN2() macro. -*/ -QmlModulePlugin::QmlModulePlugin(QObject *parent) - : QObject(parent) -{ -} - -/*! - Destroys the QML module plugin. - - You never have to call this explicitly. Qt destroys a plugin - automatically when it is no longer used. -*/ -QmlModulePlugin::~QmlModulePlugin() -{ -} - -/*! - \fn void QmlModulePlugin::defineModule(const QString& uri) - - Subclasses must override this function to register types - of the module \a uri, which will be one of the strings returned by keys(). - - The plugin registers QML types with qmlRegisterType(): - - \code - qmlRegisterType<MyClass>("com.nokia.MyModule", 1, 0, "MyType", "MyClass"); - \endcode -*/ - -void QmlModulePlugin::defineModuleOnce(const QString& uri) -{ - if (!defined.contains(uri)) { - defined += uri; - defineModule(uri); - } -} - -QT_END_NAMESPACE diff --git a/src/declarative/qml/qmlmoduleplugin.h b/src/declarative/qml/qmlmoduleplugin.h deleted file mode 100644 index b28f1ad..0000000 --- a/src/declarative/qml/qmlmoduleplugin.h +++ /dev/null @@ -1,86 +0,0 @@ -/**************************************************************************** -** -** 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 QtDeclarative 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$ -** -****************************************************************************/ - -#ifndef QMLMODULEPLUGIN_H -#define QMLMODULEPLUGIN_H - -#include <QtCore/qplugin.h> -#include <QtCore/qfactoryinterface.h> -#include <QtCore/qlist.h> -#include <QtCore/qset.h> -#include <QtCore/qbytearray.h> - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -struct Q_DECLARATIVE_EXPORT QmlModuleFactoryInterface : public QFactoryInterface -{ - virtual void defineModuleOnce(const QString& uri) = 0; -}; - -#define QmlModuleFactoryInterface_iid "com.nokia.Qt.QmlModuleFactoryInterface" - -Q_DECLARE_INTERFACE(QmlModuleFactoryInterface, QmlModuleFactoryInterface_iid) - - -class Q_DECLARATIVE_EXPORT QmlModulePlugin : public QObject, public QmlModuleFactoryInterface -{ - Q_OBJECT - Q_INTERFACES(QmlModuleFactoryInterface:QFactoryInterface) -public: - explicit QmlModulePlugin(QObject *parent = 0); - ~QmlModulePlugin(); - - virtual void defineModule(const QString& uri) = 0; - -private: - void defineModuleOnce(const QString& uri); - QSet<QString> defined; -}; - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // QMLMODULEPLUGIN_H diff --git a/src/multimedia/qml/qml.cpp b/src/multimedia/qml/qml.cpp index b9ee212..43a32c5 100644 --- a/src/multimedia/qml/qml.cpp +++ b/src/multimedia/qml/qml.cpp @@ -55,11 +55,13 @@ namespace QtMultimedia \internal */ -void qRegisterQmlElements() +void qRegisterQmlElements(QmlEngine *engine, const char *uri) { - qmlRegisterType<QSoundEffect>("Qt.multimedia", 4, 7, "SoundEffect", "SoundEffect"); - qmlRegisterType<QmlAudio>("Qt.multimedia", 4, 7, "Audio", "Audio"); - qmlRegisterType<QmlGraphicsVideo>("Qt.multimedia", 4, 7, "Video", "Video"); + Q_UNUSED(engine); + + qmlRegisterType<QSoundEffect>(uri, 4, 7, "SoundEffect", "SoundEffect"); + qmlRegisterType<QmlAudio>(uri, 4, 7, "Audio", "Audio"); + qmlRegisterType<QmlGraphicsVideo>(uri, 4, 7, "Video", "Video"); } } diff --git a/src/multimedia/qml/qml.h b/src/multimedia/qml/qml.h index 41274c8..c4159b3 100644 --- a/src/multimedia/qml/qml.h +++ b/src/multimedia/qml/qml.h @@ -47,11 +47,13 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE +class QmlEngine; + QT_MODULE(Multimedia) namespace QtMultimedia { -extern void Q_MULTIMEDIA_EXPORT qRegisterQmlElements(); +extern void Q_MULTIMEDIA_EXPORT qRegisterQmlElements(QmlEngine *engine, const char *uri); } QT_END_NAMESPACE diff --git a/src/plugins/qmlmodules/multimedia/multimedia.cpp b/src/plugins/qmlmodules/multimedia/multimedia.cpp index d9414ee..0ebdfd9 100644 --- a/src/plugins/qmlmodules/multimedia/multimedia.cpp +++ b/src/plugins/qmlmodules/multimedia/multimedia.cpp @@ -39,27 +39,19 @@ ** ****************************************************************************/ -#include <QtDeclarative/qmlmoduleplugin.h> +#include <QtDeclarative/qmlextensionplugin.h> #include <QtDeclarative/qml.h> #include <QtMultimedia/qml.h> QT_BEGIN_NAMESPACE -class QMultimediaQmlModule : public QmlModulePlugin +class QMultimediaQmlModule : public QmlExtensionPlugin { Q_OBJECT public: - QStringList keys() const + virtual void initialize(QmlEngine *engine, const char *uri) { - return QStringList() << QLatin1String("Qt.multimedia"); - } - - void defineModule(const QString& uri) - { - Q_UNUSED(uri) - Q_ASSERT(uri == QLatin1String("Qt.multimedia")); - - QtMultimedia::qRegisterQmlElements(); + QtMultimedia::qRegisterQmlElements(engine, uri); } }; |