aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmltypeloader.cpp
diff options
context:
space:
mode:
authorLorn Potter <lorn.potter@gmail.com>2017-12-01 15:50:30 +1000
committerLorn Potter <lorn.potter@gmail.com>2018-01-04 20:15:52 +0000
commit62d07125620e787e7461edc5cfd4aa4287f26847 (patch)
treeced38f7a6c4c6976c8d31d31001691d12e029ab6 /src/qml/qml/qqmltypeloader.cpp
parent1dbe0acecbc286b6df25fe2a9c4a373fa0d6b11e (diff)
wasm: get declarative building and running for webassembly
One thread Change-Id: Iab9bd20eb5951c7b0fe0b6f48f1f14ea7560d8f7 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Diffstat (limited to 'src/qml/qml/qqmltypeloader.cpp')
-rw-r--r--src/qml/qml/qqmltypeloader.cpp20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp
index 55e05afdaa..451f122cb2 100644
--- a/src/qml/qml/qqmltypeloader.cpp
+++ b/src/qml/qml/qqmltypeloader.cpp
@@ -484,8 +484,9 @@ The setError() method may only be called from within a QQmlDataBlob callback.
*/
void QQmlDataBlob::addDependency(QQmlDataBlob *blob)
{
+#ifndef Q_OS_HTML5
ASSERT_CALLBACK();
-
+#endif
Q_ASSERT(status() != Null);
if (!blob ||
@@ -1039,8 +1040,8 @@ void QQmlTypeLoader::doLoad(const Loader &loader, QQmlDataBlob *blob, Mode mode)
qWarning("QQmlTypeLoader::doLoad(%s): %s thread", qPrintable(blob->m_url.toString()),
m_thread->isThisThread()?"Compile":"Engine");
#endif
- blob->startLoading();
+ blob->startLoading();
if (m_thread->isThisThread()) {
unlock();
loader.loadThread(this, blob);
@@ -1048,7 +1049,12 @@ void QQmlTypeLoader::doLoad(const Loader &loader, QQmlDataBlob *blob, Mode mode)
} else if (mode == Asynchronous) {
blob->m_data.setIsAsync(true);
unlock();
+
+#ifndef Q_OS_HTML5
+ loader.loadThread(this, blob);
+#else
loader.loadAsync(this, blob);
+#endif
lock();
} else {
unlock();
@@ -1723,10 +1729,14 @@ Returns a QQmlQmldirData for \a url. The QQmlQmldirData may be cached.
*/
QQmlQmldirData *QQmlTypeLoader::getQmldir(const QUrl &url)
{
+#ifdef Q_OS_HTML5
+ // ### asserts here on urls like "qml/QtQuick.2.1/qmldir",
+ // which are relative urls we want to load over the network.
+#else
Q_ASSERT(!url.isRelative() &&
(QQmlFile::urlToLocalFileOrQrc(url).isEmpty() ||
!QDir::isRelativePath(QQmlFile::urlToLocalFileOrQrc(url))));
-
+#endif
LockHolder<QQmlTypeLoader> holder(this);
QQmlQmldirData *qmldirData = m_qmldirCache.value(url);
@@ -2387,10 +2397,10 @@ bool QQmlTypeData::loadImplicitImport()
void QQmlTypeData::dataReceived(const SourceCodeData &data)
{
m_backupSourceCode = data;
-
+#ifndef Q_OS_HTML5
if (tryLoadFromDiskCache())
return;
-
+#endif
if (isError())
return;