diff options
-rw-r--r-- | examples/declarative/dynamic/DynRect.qml | 1 | ||||
-rw-r--r-- | examples/declarative/dynamic/dynamic.js | 3 | ||||
-rw-r--r-- | src/declarative/qml/qmlengine.cpp | 13 |
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(); |