/**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** ** This file is part of the documentation 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 either Technology Preview License Agreement or the ** Beta Release License Agreement. ** ** 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.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \page qmlmodules.html \title Modules A \bold module is a collection of QML types. To use types from a module it must be imported using the \c import statement. Successive import statements override earlier import statements. \section1 Importing Built-in Types To use built-in types, you must import the module defining them. For example, to use types from Qt, import it: \code import Qt 4.6 \endcode This makes available all types in Qt that were available in Qt 4.6, regardless of the actual version of Qt executing the QML. Modules can be compiled-in (such as the Qt module), or they can be defined in QML files. \section1 Importing QML Files To import types defined in QML files in directories relative to the file importing them, a quoted import directory is used: \code import "path" \endcode This allows all components defined in the directory \c path to be used in the component where this statement appears. To import types defined in QML files that are installed somewhere on the system, an unquoted URI is used: \code import com.nokia.CoolStuff 1.0 \endcode This will access file in the directory \c com/nokia/CoolStuff/, found in some location determined outside QML. See QmlEngine::addImportPath() and the \c -L option to the \l {qmlviewer}{viewer} application. The directory of installed files must include a file \c qmldir which specifies the mapping from all type names to versioned QML files. It is a list of lines of the form: \code # \endcode is the type being made available; is a version number like \c 4.0; is the (relative) file name of the QML file defining the type. The same type can be provided by different files in different versions, in which case later earlier versions (eg. 1.2) must precede earlier versions (eg. 1.0), since the \e first name-version match is used. Installed files do not need to import the module of which they are a part, as they can refer to the other QML files in the module as relative (local) files. Installed files \e must be referred to by version information described above, local files \e may have it. The versioning system ensures that a given QML file will work regardless of the version of installed software, since a versioned import \e only imports types for that version, leaving other identifiers available, even if the actual installed version might otherwise use those identifiers. \section1 Namespaces - Named Imports When importing content it by default imports types into the global namespace. You may choose to import the module into another namespace, either to allow identically-named types to be referenced, or purely for readability. To import a module into a namespace: \code import Qt 4.6 as TheQtLibrary \endcode Types from Qt 4.6 may then be used, but only by qualifying them with the namespace: \code TheQtLibrary.Rectangle { ... } \endcode Multiple modules can be imported into the same namespace in the same way that multiple modules can be imported into the global namespace: \code import Qt 4.6 as Nokia import Ovi 1.0 as Nokia \endcode */ /* See original requirement QT-558. */