summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/declarative/qml/qmldom.cpp5
-rw-r--r--src/declarative/qml/qmldom.h2
-rw-r--r--tests/auto/declarative/qmldom/tst_qmldom.cpp13
3 files changed, 14 insertions, 6 deletions
diff --git a/src/declarative/qml/qmldom.cpp b/src/declarative/qml/qmldom.cpp
index 689446b..a31be81 100644
--- a/src/declarative/qml/qmldom.cpp
+++ b/src/declarative/qml/qmldom.cpp
@@ -149,16 +149,15 @@ int QmlDomDocument::version() const
\sa QmlDomDocument::save() QmlDomDocument::loadError()
*/
-bool QmlDomDocument::load(QmlEngine *engine, const QByteArray &data)
+bool QmlDomDocument::load(QmlEngine *engine, const QByteArray &data, const QUrl &url)
{
Q_UNUSED(engine);
-
d->errors.clear();
QmlCompiledComponent component;
QmlCompiler compiler;
- QmlCompositeTypeData *td = ((QmlEnginePrivate *)QmlEnginePrivate::get(engine))->typeManager.getImmediate(data, QUrl());;
+ QmlCompositeTypeData *td = ((QmlEnginePrivate *)QmlEnginePrivate::get(engine))->typeManager.getImmediate(data, url);;
if(td->status == QmlCompositeTypeData::Error) {
d->errors = td->errors;
diff --git a/src/declarative/qml/qmldom.h b/src/declarative/qml/qmldom.h
index daca888..f90fb08 100644
--- a/src/declarative/qml/qmldom.h
+++ b/src/declarative/qml/qmldom.h
@@ -73,7 +73,7 @@ public:
int version() const;
QList<QmlError> errors() const;
- bool load(QmlEngine *, const QByteArray &);
+ bool load(QmlEngine *, const QByteArray &, const QUrl & = QUrl());
QByteArray save() const;
QmlDomObject rootObject() const;
diff --git a/tests/auto/declarative/qmldom/tst_qmldom.cpp b/tests/auto/declarative/qmldom/tst_qmldom.cpp
index 8df1829..ca8929d 100644
--- a/tests/auto/declarative/qmldom/tst_qmldom.cpp
+++ b/tests/auto/declarative/qmldom/tst_qmldom.cpp
@@ -95,10 +95,19 @@ void tst_qmldom::loadComposite()
QVERIFY(file.open(QIODevice::ReadOnly | QIODevice::Text));
QmlDomDocument document;
- QVERIFY(document.load(&engine, file.readAll()));
+ QVERIFY(document.load(&engine, file.readAll(), QUrl::fromLocalFile(file.fileName())));
QVERIFY(document.errors().isEmpty());
- // TODO: How should sub components be represented?
+ QmlDomObject rootItem = document.rootObject();
+ QVERIFY(rootItem.isValid());
+ QCOMPARE(rootItem.objectType(), QByteArray("MyComponent"));
+ QCOMPARE(rootItem.properties().size(), 2);
+
+ QmlDomProperty widthProperty = rootItem.property("width");
+ QVERIFY(widthProperty.value().isLiteral());
+
+ QmlDomProperty heightProperty = rootItem.property("height");
+ QVERIFY(heightProperty.value().isLiteral());
}
void tst_qmldom::testValueSource()