The earlier name, com.nokia.TimeExample is irrelevant now.
Also updated all instances of documentation where this older module
name was referred.
Change-Id: Ic252d0e72af23c2d39d5fed55f242e47c1b6bde9
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
+++ /dev/null
-This example shows a module "com.nokia.TimeExample" that is implemented
-by a C++ plugin (providing the "Time" type), and by QML files (providing the
-"Clock" type).
-
-To run:
-
- make install
- QML_IMPORT_PATH=$PWD qmlscene plugins.qml
-
--- /dev/null
+/****************************************************************************
+**
+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: http://www.gnu.org/copyleft/fdl.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \title QML Plugin Example
+ \example plugins
+
+ \brief This example creates a C++ plugin extension by subclassing QQmlExtensionPlugin.
+
+ \image qml-plugins-example.png
+
+ To run this example, use the following commands on the prompt:
+ \code
+ > qmake
+ > make
+ > qmlscene -I imports plugins.qml
+ \endcode
+*/
-module com.nokia.TimeExample
+module TimeExample
Clock 1.0 Clock.qml
plugin qmlqtimeexampleplugin
public:
void registerTypes(const char *uri)
{
- Q_ASSERT(uri == QLatin1String("com.nokia.TimeExample"));
+ Q_ASSERT(uri == QLatin1String("TimeExample"));
qmlRegisterType<TimeModel>(uri, 1, 0, "Time");
}
};
CONFIG += qt plugin
QT += qml
-DESTDIR = com/nokia/TimeExample
+DESTDIR = imports/TimeExample
TARGET = qmlqtimeexampleplugin
SOURCES += plugin.cpp
qdeclarativesources.files += \
- com/nokia/TimeExample/qmldir \
- com/nokia/TimeExample/center.png \
- com/nokia/TimeExample/clock.png \
- com/nokia/TimeExample/Clock.qml \
- com/nokia/TimeExample/hour.png \
- com/nokia/TimeExample/minute.png
+ imports/TimeExample/qmldir \
+ imports/TimeExample/center.png \
+ imports/TimeExample/clock.png \
+ imports/TimeExample/Clock.qml \
+ imports/TimeExample/hour.png \
+ imports/TimeExample/minute.png
-qdeclarativesources.path += $$[QT_INSTALL_EXAMPLES]/qtdeclarative/qml/plugins/com/nokia/TimeExample
+qdeclarativesources.path += $$[QT_INSTALL_EXAMPLES]/qtdeclarative/qml/plugins/imports/TimeExample
-sources.files += plugins.pro plugin.cpp plugins.qml README
+sources.files += plugins.pro plugin.cpp plugins.qml
sources.path += $$[QT_INSTALL_EXAMPLES]/qtdeclarative/qml/plugins
-target.path += $$[QT_INSTALL_EXAMPLES]/qtdeclarative/qml/plugins/com/nokia/TimeExample
+target.path += $$[QT_INSTALL_EXAMPLES]/qtdeclarative/qml/plugins/imports/TimeExample
INSTALLS += qdeclarativesources sources target
**
****************************************************************************/
//![0]
-import com.nokia.TimeExample 1.0 // import types from the plugin
+import TimeExample 1.0 // import types from the plugin
-Clock { // this class is defined in QML (com/nokia/TimeExample/Clock.qml)
+Clock { // this class is defined in QML (imports/TimeExample/Clock.qml)
Time { // this class is defined in C++ (plugin.cpp)
id: time
****************************************************************************/
//! [import]
-import com.nokia.TimeExample 1.0
+import TimeExample 1.0
//! [import]
Item {
types into the runtime.
For this example, the TimeExample source directory is in
- \c{com/nokia/TimeExample}. The plugin's type namespace will mirror
+ \c{imports/TimeExample}. The plugin's type namespace will mirror
this structure, so the types are registered into the namespace
- "com.nokia.TimeExample".
+ "TimeExample".
Additionally, the project file, in a \c .pro file, defines the project as a plugin library,
- specifies it should be built into the \c com/nokia/TimeExample directory, and registers
+ specifies it should be built into the \c imports/TimeExample directory, and registers
the plugin target name and various other details:
\code
CONFIG += qt plugin
QT += qml
- DESTDIR = com/nokia/TimeExample
+ DESTDIR = imports/TimeExample
TARGET = qmlqtimeexampleplugin
SOURCES += qexampleqmlplugin.cpp
\endcode
Finally, a \l{Module Definition qmldir Files}{qmldir file} is required
- in the \c com/nokia/TimeExample directory to describe the plugin and the types that it
+ in the \c imports/TimeExample directory to describe the plugin and the types that it
exports. The plugin includes a \c Clock.qml file along with the \c qmlqtimeexampleplugin
that is built by the project (as shown above in the \c .pro file) so both of these
need to be specified in the \c qmldir file:
- \quotefile examples/qml/plugins/com/nokia/TimeExample/qmldir
+ \quotefile examples/qml/plugins/imports/TimeExample/qmldir
Once the project is built and installed, the new \c Time component is
- accessible by any QML component that imports the \c com.nokia.TimeExample
+ accessible by any QML component that imports the \c TimeExample
module
\snippet examples/qml/plugins/plugins.qml 0
To make this class available as a QML type, create a plugin that registers
this type with a specific \l {QML Modules}{module} using qmlRegisterType(). For this example the plugin
- module will be named \c com.nokia.TimeExample (as defined in the project
+ module will be named \c TimeExample (as defined in the project
file further below).
\snippet examples/qml/plugins/plugin.cpp plugin
ensures the module is imported correctly by any QML components that use this plugin.
The project file defines the project as a plugin library and specifies
- it should be built into the \c com/nokia/TimeExample directory:
+ it should be built into the \c imports/TimeExample directory:
\code
TEMPLATE = lib
CONFIG += qt plugin
QT += qml
- DESTDIR = com/nokia/TimeExample
+ DESTDIR = imports/TimeExample
TARGET = qmlqtimeexampleplugin
...
\endcode
- Finally, a \l{Module Definition qmldir Files}{qmldir file} is required in the \c com/nokia/TimeExample directory
+ Finally, a \l{Module Definition qmldir Files}{qmldir file} is required in the \c imports/TimeExample directory
that describes the plugin. This directory includes a \c Clock.qml file that
should be bundled with the plugin, so it needs to be specified in the \c qmldir
file:
- \quotefile examples/qml/plugins/com/nokia/TimeExample/qmldir
+ \quotefile examples/qml/plugins/imports/TimeExample/qmldir
Once the project is built and installed, the new \c Time element can be
- used by any QML component that imports the \c com.nokia.TimeExample module:
+ used by any QML component that imports the \c TimeExample module:
\snippet examples/qml/plugins/plugins.qml 0