summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/declarative/dynamic/DynRect.qml1
-rw-r--r--examples/declarative/dynamic/dynamic.js3
-rw-r--r--src/declarative/qml/qmlengine.cpp13
3 files changed, 6 insertions, 11 deletions
diff --git a/examples/declarative/dynamic/DynRect.qml b/examples/declarative/dynamic/DynRect.qml
new file mode 100644
index 0000000..d9a2ef3
--- /dev/null
+++ b/examples/declarative/dynamic/DynRect.qml
@@ -0,0 +1 @@
+Rect { color: "steelblue"; width: 100; height: 100; id: newRect }
diff --git a/examples/declarative/dynamic/dynamic.js b/examples/declarative/dynamic/dynamic.js
index 5accc46..13317df 100644
--- a/examples/declarative/dynamic/dynamic.js
+++ b/examples/declarative/dynamic/dynamic.js
@@ -3,8 +3,7 @@ var fourthBox = null;
var component = null;
var started = false;
function createQml(p) {
- return createQmlObject('Rect { color: "steelblue"; width: 100;'
- + 'height: 100; id: newRect }',p,'DynPart.qml');
+ return createQmlObject('DynRect {}',p,'DynPart.qml');
}
function destroyDynamicObject() {
diff --git a/src/declarative/qml/qmlengine.cpp b/src/declarative/qml/qmlengine.cpp
index 5c9273a..389e512 100644
--- a/src/declarative/qml/qmlengine.cpp
+++ b/src/declarative/qml/qmlengine.cpp
@@ -912,27 +912,22 @@ QScriptValue QmlEngine::createQmlObject(QScriptContext *ctxt, QScriptEngine *eng
url = QUrl(ctxt->argument(2).toString());
QObject *parentArg = ctxt->argument(1).data().toQObject();
QmlContext *qmlCtxt = qmlContext(parentArg);
- if(qmlCtxt)
- qmlCtxt->activate();
+ url = qmlCtxt->resolvedUrl(url);
QmlComponent component(activeEngine, qml.toUtf8(), url);
if(component.isError()) {
QList<QmlError> errors = component.errors();
foreach (const QmlError &error, errors) {
- qWarning() << error;
+ qWarning() <<"Error in createQmlObject(): "<< error;
}
- if(qmlCtxt)
- qmlCtxt->deactivate();
return engine->nullValue();
}
- QObject *obj = component.create();
- if(qmlCtxt)
- qmlCtxt->deactivate();
+ QObject *obj = component.create(qmlCtxt);
if(component.isError()) {
QList<QmlError> errors = component.errors();
foreach (const QmlError &error, errors) {
- qWarning() << error;
+ qWarning() <<"Error in createQmlObject(): "<< error;
}
return engine->nullValue();