summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qdeclarativeengine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/declarative/qml/qdeclarativeengine.cpp')
-rw-r--r--src/declarative/qml/qdeclarativeengine.cpp248
1 files changed, 132 insertions, 116 deletions
diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp
index ddbe433..2f0ec24 100644
--- a/src/declarative/qml/qdeclarativeengine.cpp
+++ b/src/declarative/qml/qdeclarativeengine.cpp
@@ -114,16 +114,16 @@ QT_BEGIN_NAMESPACE
DEFINE_BOOL_CONFIG_OPTION(qmlImportTrace, QML_IMPORT_TRACE)
/*!
- \qmlclass QtObject QObject
+ \qmlclass QtObject QObject
\since 4.7
- \brief The QtObject element is the most basic element in QML
+ \brief The QtObject element is the most basic element in QML
- The QtObject element is a non-visual element which contains only
- the objectName property. It is useful for when you need an extremely
- lightweight element to place your own custom properties in.
+ The QtObject element is a non-visual element which contains only the
+ objectName property. It is useful for when you need an extremely
+ lightweight element to place your own custom properties in.
- It can also be useful for C++ integration, as it is just a plain QObject. See
- the QObject documentation for further details.
+ It can also be useful for C++ integration, as it is just a plain
+ QObject. See the QObject documentation for further details.
*/
/*!
\qmlproperty string QtObject::objectName
@@ -371,37 +371,38 @@ QDeclarativeWorkerScriptEngine *QDeclarativeEnginePrivate::getWorkerScriptEngine
}
/*!
- \class QDeclarativeEngine
+ \class QDeclarativeEngine
\since 4.7
- \brief The QDeclarativeEngine class provides an environment for instantiating QML components.
- \mainclass
-
- Each QML component is instantiated in a QDeclarativeContext. QDeclarativeContext's are
- essential for passing data to QML components. In QML, contexts are arranged
- hierarchically and this hierarchy is managed by the QDeclarativeEngine.
-
- Prior to creating any QML components, an application must have created a
- QDeclarativeEngine to gain access to a QML context. The following example shows how
- to create a simple Text item.
-
- \code
- QDeclarativeEngine engine;
- QDeclarativeComponent component(&engine);
- component.setData("import Qt 4.6\nText { text: \"Hello world!\" }", QUrl());
- QDeclarativeItem *item = qobject_cast<QDeclarativeItem *>(component.create());
-
- //add item to view, etc
- ...
- \endcode
-
- In this case, the Text item will be created in the engine's
- \l {QDeclarativeEngine::rootContext()}{root context}.
-
- \sa QDeclarativeComponent QDeclarativeContext
+ \brief The QDeclarativeEngine class provides an environment for instantiating QML components.
+ \mainclass
+
+ Each QML component is instantiated in a QDeclarativeContext.
+ QDeclarativeContext's are essential for passing data to QML
+ components. In QML, contexts are arranged hierarchically and this
+ hierarchy is managed by the QDeclarativeEngine.
+
+ Prior to creating any QML components, an application must have
+ created a QDeclarativeEngine to gain access to a QML context. The
+ following example shows how to create a simple Text item.
+
+ \code
+ QDeclarativeEngine engine;
+ QDeclarativeComponent component(&engine);
+ component.setData("import Qt 4.6\nText { text: \"Hello world!\" }", QUrl());
+ QDeclarativeItem *item = qobject_cast<QDeclarativeItem *>(component.create());
+
+ //add item to view, etc
+ ...
+ \endcode
+
+ In this case, the Text item will be created in the engine's
+ \l {QDeclarativeEngine::rootContext()}{root context}.
+
+ \sa QDeclarativeComponent QDeclarativeContext
*/
/*!
- Create a new QDeclarativeEngine with the given \a parent.
+ Create a new QDeclarativeEngine with the given \a parent.
*/
QDeclarativeEngine::QDeclarativeEngine(QObject *parent)
: QObject(*new QDeclarativeEnginePrivate(this), parent)
@@ -411,10 +412,11 @@ QDeclarativeEngine::QDeclarativeEngine(QObject *parent)
}
/*!
- Destroys the QDeclarativeEngine.
+ Destroys the QDeclarativeEngine.
- Any QDeclarativeContext's created on this engine will be invalidated, but not
- destroyed (unless they are parented to the QDeclarativeEngine object).
+ Any QDeclarativeContext's created on this engine will be
+ invalidated, but not destroyed (unless they are parented to the
+ QDeclarativeEngine object).
*/
QDeclarativeEngine::~QDeclarativeEngine()
{
@@ -430,8 +432,9 @@ QDeclarativeEngine::~QDeclarativeEngine()
/*!
Clears the engine's internal component cache.
- Normally the QDeclarativeEngine caches components loaded from qml files. This method
- clears this cache and forces the component to be reloaded.
+ Normally the QDeclarativeEngine caches components loaded from qml
+ files. This method clears this cache and forces the component to be
+ reloaded.
*/
void QDeclarativeEngine::clearComponentCache()
{
@@ -440,14 +443,15 @@ void QDeclarativeEngine::clearComponentCache()
}
/*!
- Returns the engine's root context.
+ Returns the engine's root context.
- The root context is automatically created by the QDeclarativeEngine. Data that
- should be available to all QML component instances instantiated by the
- engine should be put in the root context.
+ The root context is automatically created by the QDeclarativeEngine.
+ Data that should be available to all QML component instances
+ instantiated by the engine should be put in the root context.
- Additional data that should only be available to a subset of component
- instances should be added to sub-contexts parented to the root context.
+ Additional data that should only be available to a subset of
+ component instances should be added to sub-contexts parented to the
+ root context.
*/
QDeclarativeContext *QDeclarativeEngine::rootContext()
{
@@ -456,14 +460,14 @@ QDeclarativeContext *QDeclarativeEngine::rootContext()
}
/*!
- Sets the \a factory to use for creating QNetworkAccessManager(s).
+ Sets the \a factory to use for creating QNetworkAccessManager(s).
- QNetworkAccessManager is used for all network access by QML.
- By implementing a factory it is possible to create custom
- QNetworkAccessManager with specialized caching, proxy and
- cookie support.
+ QNetworkAccessManager is used for all network access by QML. By
+ implementing a factory it is possible to create custom
+ QNetworkAccessManager with specialized caching, proxy and cookie
+ support.
- The factory must be set before exceuting the engine.
+ The factory must be set before exceuting the engine.
*/
void QDeclarativeEngine::setNetworkAccessManagerFactory(QDeclarativeNetworkAccessManagerFactory *factory)
{
@@ -473,9 +477,9 @@ void QDeclarativeEngine::setNetworkAccessManagerFactory(QDeclarativeNetworkAcces
}
/*!
- Returns the current QDeclarativeNetworkAccessManagerFactory.
+ Returns the current QDeclarativeNetworkAccessManagerFactory.
- \sa setNetworkAccessManagerFactory()
+ \sa setNetworkAccessManagerFactory()
*/
QDeclarativeNetworkAccessManagerFactory *QDeclarativeEngine::networkAccessManagerFactory() const
{
@@ -505,15 +509,16 @@ QNetworkAccessManager *QDeclarativeEnginePrivate::getNetworkAccessManager() cons
}
/*!
- Returns a common QNetworkAccessManager which can be used by any QML element
- instantiated by this engine.
+ Returns a common QNetworkAccessManager which can be used by any QML
+ element instantiated by this engine.
- If a QDeclarativeNetworkAccessManagerFactory has been set and a QNetworkAccessManager
- has not yet been created, the QDeclarativeNetworkAccessManagerFactory will be used
- to create the QNetworkAccessManager; otherwise the returned QNetworkAccessManager
- will have no proxy or cache set.
+ If a QDeclarativeNetworkAccessManagerFactory has been set and a
+ QNetworkAccessManager has not yet been created, the
+ QDeclarativeNetworkAccessManagerFactory will be used to create the
+ QNetworkAccessManager; otherwise the returned QNetworkAccessManager
+ will have no proxy or cache set.
- \sa setNetworkAccessManagerFactory()
+ \sa setNetworkAccessManagerFactory()
*/
QNetworkAccessManager *QDeclarativeEngine::networkAccessManager() const
{
@@ -522,26 +527,27 @@ QNetworkAccessManager *QDeclarativeEngine::networkAccessManager() const
}
/*!
- Sets the \a provider to use for images requested via the \e image: url
- scheme, with host \a providerId.
- QDeclarativeImageProvider allows images to be provided to QML asynchronously.
- The image request will be run in a low priority thread. This allows
- potentially costly image loading to be done in the background, without
- affecting the performance of the UI.
+ Sets the \a provider to use for images requested via the \e
+ image: url scheme, with host \a providerId.
+
+ QDeclarativeImageProvider allows images to be provided to QML
+ asynchronously. The image request will be run in a low priority
+ thread. This allows potentially costly image loading to be done in
+ the background, without affecting the performance of the UI.
- Note that images loaded from a QDeclarativeImageProvider are cached by
- QPixmapCache, similar to any image loaded by QML.
+ Note that images loaded from a QDeclarativeImageProvider are cached
+ by QPixmapCache, similar to any image loaded by QML.
- The QDeclarativeEngine assumes ownership of the provider.
+ The QDeclarativeEngine assumes ownership of the provider.
- This example creates a provider with id \e colors:
+ This example creates a provider with id \e colors:
- \snippet examples/declarative/imageprovider/imageprovider.cpp 0
+ \snippet examples/declarative/imageprovider/imageprovider.cpp 0
- \snippet examples/declarative/imageprovider/imageprovider.qml 0
+ \snippet examples/declarative/imageprovider/imageprovider-example.qml 0
- \sa removeImageProvider()
+ \sa removeImageProvider()
*/
void QDeclarativeEngine::addImageProvider(const QString &providerId, QDeclarativeImageProvider *provider)
{
@@ -551,7 +557,7 @@ void QDeclarativeEngine::addImageProvider(const QString &providerId, QDeclarativ
}
/*!
- Returns the QDeclarativeImageProvider set for \a providerId.
+ Returns the QDeclarativeImageProvider set for \a providerId.
*/
QDeclarativeImageProvider *QDeclarativeEngine::imageProvider(const QString &providerId) const
{
@@ -561,11 +567,11 @@ QDeclarativeImageProvider *QDeclarativeEngine::imageProvider(const QString &prov
}
/*!
- Removes the QDeclarativeImageProvider for \a providerId.
+ Removes the QDeclarativeImageProvider for \a providerId.
- Returns the provider if it was found; otherwise returns 0.
+ Returns the provider if it was found; otherwise returns 0.
- \sa addImageProvider()
+ \sa addImageProvider()
*/
void QDeclarativeEngine::removeImageProvider(const QString &providerId)
{
@@ -585,13 +591,14 @@ QImage QDeclarativeEnginePrivate::getImageFromProvider(const QUrl &url)
}
/*!
- Return the base URL for this engine. The base URL is only used to resolve
- components when a relative URL is passed to the QDeclarativeComponent constructor.
+ Return the base URL for this engine. The base URL is only used to
+ resolve components when a relative URL is passed to the
+ QDeclarativeComponent constructor.
- If a base URL has not been explicitly set, this method returns the
- application's current working directory.
+ If a base URL has not been explicitly set, this method returns the
+ application's current working directory.
- \sa setBaseUrl()
+ \sa setBaseUrl()
*/
QUrl QDeclarativeEngine::baseUrl() const
{
@@ -604,9 +611,9 @@ QUrl QDeclarativeEngine::baseUrl() const
}
/*!
- Set the base URL for this engine to \a url.
+ Set the base URL for this engine to \a url.
- \sa baseUrl()
+ \sa baseUrl()
*/
void QDeclarativeEngine::setBaseUrl(const QUrl &url)
{
@@ -615,9 +622,11 @@ void QDeclarativeEngine::setBaseUrl(const QUrl &url)
}
/*!
- Returns the QDeclarativeContext for the \a object, or 0 if no context has been set.
+ Returns the QDeclarativeContext for the \a object, or 0 if no
+ context has been set.
- When the QDeclarativeEngine instantiates a QObject, the context is set automatically.
+ When the QDeclarativeEngine instantiates a QObject, the context is
+ set automatically.
*/
QDeclarativeContext *QDeclarativeEngine::contextForObject(const QObject *object)
{
@@ -642,7 +651,8 @@ QDeclarativeContext *QDeclarativeEngine::contextForObject(const QObject *object)
If the \a object already has a context, a warning is
output, but the context is not changed.
- When the QDeclarativeEngine instantiates a QObject, the context is set automatically.
+ When the QDeclarativeEngine instantiates a QObject, the context is
+ set automatically.
*/
void QDeclarativeEngine::setContextForObject(QObject *object, QDeclarativeContext *context)
{
@@ -660,37 +670,43 @@ void QDeclarativeEngine::setContextForObject(QObject *object, QDeclarativeContex
}
/*!
-\enum QDeclarativeEngine::ObjectOwnership
-
-Ownership controls whether or not QML automatically destroys the QObject when the object
-is garbage collected by the JavaScript engine. The two ownership options are:
-
-\list
-\o CppOwnership - The object is owned by C++ code, and will never be deleted by QML. The
-JavaScript destroy() method cannot be used on objects with CppOwnership. This option
-is similar to QScriptEngine::QtOwnership.
-
-\o JavaScriptOwnership - The object is owned by JavaScript. When the object is returned to QML
-as the return value of a method call or property access, QML will delete the object if there
-are no remaining JavaScript references to it and it has no QObject::parent(). This option
-is similar to QScriptEngine::ScriptOwnership.
-\endlist
-
-Generally an application doesn't need to set an object's ownership explicitly. QML uses
-a heuristic to set the default object ownership. By default, an object that is created by
-QML has JavaScriptOwnership. The exception to this are the root objects created by calling
-QDeclarativeCompnent::create() or QDeclarativeComponent::beginCreate() which have
-CppOwnership by default. The ownership of these root-level objects is considered to have
-been transfered to the C++ caller.
-
-Objects not-created by QML have CppOwnership by default. The exception to this is objects
-returned from a C++ method call. The ownership of these objects is passed to JavaScript.
-
-Calling setObjectOwnership() overrides the default ownership heuristic used by QML.
+ \enum QDeclarativeEngine::ObjectOwnership
+
+ Ownership controls whether or not QML automatically destroys the
+ QObject when the object is garbage collected by the JavaScript
+ engine. The two ownership options are:
+
+ \value CppOwnership The object is owned by C++ code, and will
+ never be deleted by QML. The JavaScript destroy() method cannot be
+ used on objects with CppOwnership. This option is similar to
+ QScriptEngine::QtOwnership.
+
+ \value JavaScriptOwnership The object is owned by JavaScript.
+ When the object is returned to QML as the return value of a method
+ call or property access, QML will delete the object if there are no
+ remaining JavaScript references to it and it has no
+ QObject::parent(). This option is similar to
+ QScriptEngine::ScriptOwnership.
+
+ Generally an application doesn't need to set an object's ownership
+ explicitly. QML uses a heuristic to set the default object
+ ownership. By default, an object that is created by QML has
+ JavaScriptOwnership. The exception to this are the root objects
+ created by calling QDeclarativeCompnent::create() or
+ QDeclarativeComponent::beginCreate() which have CppOwnership by
+ default. The ownership of these root-level objects is considered to
+ have been transfered to the C++ caller.
+
+ Objects not-created by QML have CppOwnership by default. The
+ exception to this is objects returned from a C++ method call. The
+ ownership of these objects is passed to JavaScript.
+
+ Calling setObjectOwnership() overrides the default ownership
+ heuristic used by QML.
*/
/*!
-Sets the \a ownership of \a object.
+ Sets the \a ownership of \a object.
*/
void QDeclarativeEngine::setObjectOwnership(QObject *object, ObjectOwnership ownership)
{
@@ -703,7 +719,7 @@ void QDeclarativeEngine::setObjectOwnership(QObject *object, ObjectOwnership own
}
/*!
-Returns the ownership of \a object.
+ Returns the ownership of \a object.
*/
QDeclarativeEngine::ObjectOwnership QDeclarativeEngine::objectOwnership(QObject *object)
{