diff --git a/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h b/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h index 0cb8fa5c66d..d2634a03dc8 100644 --- a/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h +++ b/src/plugins/qmldesigner/designercore/include/nodeinstanceview.h @@ -157,6 +157,7 @@ public: signals: void qmlPuppetCrashed(); + void qmlPuppetError(const QString &errorMessage); private: // functions void activateState(const NodeInstance &instance); diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp index 657acce624c..bddcc8b0736 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp @@ -69,6 +69,7 @@ #include "componentcompletedcommand.h" #include "tokencommand.h" #include "removesharedmemorycommand.h" +#include "debugoutputcommand.h" #include "nodeinstanceserverproxy.h" @@ -1285,8 +1286,23 @@ void NodeInstanceView::token(const TokenCommand &command) emitInstanceToken(command.tokenName(), command.tokenNumber(), nodeVector); } -void NodeInstanceView::debugOutput(const DebugOutputCommand & /*command*/) +void NodeInstanceView::debugOutput(const DebugOutputCommand & command) { + if (command.instanceIds().isEmpty()) { + qmlPuppetError(command.text()); // TODO: connect that somewhere to show that to the user + } else { + QVector instanceIdsWithChangedErrors; + foreach (qint32 instanceId, command.instanceIds()) { + NodeInstance instance = instanceForId(instanceId); + if (instance.isValid()) { + if (instance.setError(command.text())) + instanceIdsWithChangedErrors.append(instanceId); + } else { + qmlPuppetError(command.text()); // TODO: connect that somewhere to show that to the user + } + } + emitInstanceErrorChange(instanceIdsWithChangedErrors); + } } void NodeInstanceView::sendToken(const QString &token, int number, const QVector &nodeVector)