From 893d5901a6e800e7d9886af9a56939cd2f34de24 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 1 Sep 2020 16:38:23 +0300 Subject: [PATCH] QmlPuppet: Fall back to primitive creation if component creation fails This ensures components defined in .qml files get loaded properly. Change-Id: I070132ab5ad58b2531f27f623f218e0ee3565c5b Fixes: QDS-2697 Reviewed-by: Thomas Hartmann --- .../qml2puppet/instances/servernodeinstance.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/servernodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/servernodeinstance.cpp index 96f4c30ba31..69c854f3e99 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/servernodeinstance.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/servernodeinstance.cpp @@ -231,9 +231,12 @@ ServerNodeInstance ServerNodeInstance::create(NodeInstanceServer *nodeInstanceSe } else if (!instanceContainer.componentPath().isEmpty()) { object = Internal::ObjectNodeInstance::createComponent(instanceContainer.componentPath(), nodeInstanceServer->context()); if (object == nullptr) { - const QString errors = getErrorString(nodeInstanceServer->engine(), instanceContainer.componentPath()); - const QString message = QString("Component with path %1 could not be created.\n\n").arg(instanceContainer.componentPath()); - nodeInstanceServer->sendDebugOutput(DebugOutputCommand::ErrorType, message + errors, instanceContainer.instanceId()); + object = Internal::ObjectNodeInstance::createPrimitive(QString::fromUtf8(instanceContainer.type()), instanceContainer.majorNumber(), instanceContainer.minorNumber(), nodeInstanceServer->context()); + if (object == nullptr) { + const QString errors = getErrorString(nodeInstanceServer->engine(), instanceContainer.componentPath()); + const QString message = QString("Component with path %1 could not be created.\n\n").arg(instanceContainer.componentPath()); + nodeInstanceServer->sendDebugOutput(DebugOutputCommand::ErrorType, message + errors, instanceContainer.instanceId()); + } } } else { object = Internal::ObjectNodeInstance::createPrimitive(QString::fromUtf8(instanceContainer.type()), instanceContainer.majorNumber(), instanceContainer.minorNumber(), nodeInstanceServer->context());