diff options
author | Simon Hausmann <simon.hausmann@theqtcompany.com> | 2015-01-12 13:07:38 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2015-01-12 19:19:35 +0100 |
commit | f6e1e92c2ec0279c31d354f5fdf187f09223a705 (patch) | |
tree | f502a54f66cb5a769c05698ac68508e4f46c5e81 /src/qml/jsapi | |
parent | a33879b811e1c495ce0686edb6ab3a4e3a9539c4 (diff) |
Add ability to retrieve QJSEngine for a given QObject
[ChangeLog][QtQml] Added qjsEngine(QObject*) getter similar to qmlEngine(object)
that allows retrieving the engine for an exposed object.
Change-Id: Id14adec58d45fe58133f65bab773b07d6bc18569
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/jsapi')
-rw-r--r-- | src/qml/jsapi/qjsengine.cpp | 18 | ||||
-rw-r--r-- | src/qml/jsapi/qjsengine.h | 2 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/qml/jsapi/qjsengine.cpp b/src/qml/jsapi/qjsengine.cpp index c6caae2f09..831287d0b3 100644 --- a/src/qml/jsapi/qjsengine.cpp +++ b/src/qml/jsapi/qjsengine.cpp @@ -565,6 +565,24 @@ QQmlPropertyCache *QJSEnginePrivate::createCache(const QMetaObject *mo) } } +/*! + \since 5.5 + \relates QJSEngine + + Returns the QJSEngine associated with \a object, if any. + + This function is useful if you have exposed a QObject to the JavaScript environment + and later in your program would like to regain access. It does not require you to + keep the wrapper around that was returned from QJSEngine::newQObject(). + */ +QJSEngine *qjsEngine(const QObject *object) +{ + QQmlData *data = QQmlData::get(object, false); + if (!data || data->jsWrapper.isNullOrUndefined()) + return 0; + return data->jsWrapper.engine()->jsEngine(); +} + QT_END_NAMESPACE #include "moc_qjsengine.cpp" diff --git a/src/qml/jsapi/qjsengine.h b/src/qml/jsapi/qjsengine.h index bddc6f133c..f24808f503 100644 --- a/src/qml/jsapi/qjsengine.h +++ b/src/qml/jsapi/qjsengine.h @@ -127,6 +127,8 @@ inline QVariant qjsvalue_cast<QVariant>(const QJSValue &value) return value.toVariant(); } +Q_QML_EXPORT QJSEngine *qjsEngine(const QObject *); + QT_END_NAMESPACE #endif // QJSENGINE_H |