diff options
Diffstat (limited to 'src/webenginequick/api/qquickwebenginescriptcollection.cpp')
-rw-r--r-- | src/webenginequick/api/qquickwebenginescriptcollection.cpp | 36 |
1 files changed, 30 insertions, 6 deletions
diff --git a/src/webenginequick/api/qquickwebenginescriptcollection.cpp b/src/webenginequick/api/qquickwebenginescriptcollection.cpp index cc1cfb2fa..9a12c6f5c 100644 --- a/src/webenginequick/api/qquickwebenginescriptcollection.cpp +++ b/src/webenginequick/api/qquickwebenginescriptcollection.cpp @@ -38,6 +38,7 @@ ****************************************************************************/ #include "qquickwebenginescriptcollection_p.h" +#include "qquickwebenginescriptcollection_p_p.h" #include "qwebenginescriptcollection.h" #include <QtWebEngineCore/private/qwebenginescriptcollection_p.h> #include <QtQml/qqmlinfo.h> @@ -79,9 +80,18 @@ QWebEngineScript parseScript(const QJSValue &value, bool *ok) return s; } -QQuickWebEngineScriptCollection::QQuickWebEngineScriptCollection( - QWebEngineScriptCollection *collection) - : d(collection) +QQuickWebEngineScriptCollectionPrivate::QQuickWebEngineScriptCollectionPrivate(QWebEngineScriptCollectionPrivate *p) + : QWebEngineScriptCollection(p) +{ + +} + +QQuickWebEngineScriptCollectionPrivate::~QQuickWebEngineScriptCollectionPrivate() +{ +} + +QQuickWebEngineScriptCollection::QQuickWebEngineScriptCollection(QQuickWebEngineScriptCollectionPrivate *p) + : d(p) { } @@ -119,10 +129,13 @@ void QQuickWebEngineScriptCollection::clear() QJSValue QQuickWebEngineScriptCollection::collection() const { + if (!d->m_qmlEngine) { + qmlWarning(this) << "Scripts collection doesn't have QML engine set! Undefined value is returned."; + return QJSValue(); + } + const QList<QWebEngineScript> &list = d->toList(); - QQmlContext *context = QQmlEngine::contextForObject(this); - QQmlEngine *engine = context->engine(); - QV4::ExecutionEngine *v4 = QQmlEnginePrivate::getV4Engine(engine); + QV4::ExecutionEngine *v4 = QQmlEnginePrivate::getV4Engine(d->m_qmlEngine); QV4::Scope scope(v4); QV4::Scoped<QV4::ArrayObject> scriptArray(scope, v4->newArrayObject(list.length())); int i = 0; @@ -155,3 +168,14 @@ void QQuickWebEngineScriptCollection::setCollection(const QJSValue &scripts) Q_EMIT collectionChanged(); } } + +QQmlEngine* QQuickWebEngineScriptCollection::qmlEngine() +{ + return d->m_qmlEngine; +} + +void QQuickWebEngineScriptCollection::setQmlEngine(QQmlEngine *engine) +{ + Q_ASSERT(engine); + d->m_qmlEngine = engine; +} |