diff --git a/src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.cpp b/src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.cpp index 794c1a436c0..39590beadf7 100644 --- a/src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.cpp +++ b/src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.cpp @@ -66,9 +66,9 @@ bool BaseConnectionManager::isActive() const void BaseConnectionManager::showCannotConnectToPuppetWarningAndSwitchToEditMode() {} -void BaseConnectionManager::processFinished() +void BaseConnectionManager::processFinished(const QString &reason) { - processFinished(-1, QProcess::CrashExit); + processFinished(-1, QProcess::CrashExit, reason); } void BaseConnectionManager::writeCommandToIODevice(const QVariant &command, diff --git a/src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.h b/src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.h index fca035682fc..58588542f7f 100644 --- a/src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.h +++ b/src/plugins/qmldesigner/designercore/instances/baseconnectionmanager.h @@ -64,7 +64,7 @@ protected: void dispatchCommand(const QVariant &command, Connection &connection) override; virtual void showCannotConnectToPuppetWarningAndSwitchToEditMode(); using ConnectionManagerInterface::processFinished; - void processFinished(); + void processFinished(const QString &reason); static void writeCommandToIODevice(const QVariant &command, QIODevice *ioDevice, unsigned int commandCounter); diff --git a/src/plugins/qmldesigner/designercore/instances/capturingconnectionmanager.cpp b/src/plugins/qmldesigner/designercore/instances/capturingconnectionmanager.cpp index 90f4226217d..3e68e3342c1 100644 --- a/src/plugins/qmldesigner/designercore/instances/capturingconnectionmanager.cpp +++ b/src/plugins/qmldesigner/designercore/instances/capturingconnectionmanager.cpp @@ -54,17 +54,17 @@ void CapturingConnectionManager::setUp(NodeInstanceServerInterface *nodeInstance } } -void CapturingConnectionManager::processFinished(int exitCode, QProcess::ExitStatus exitStatus) +void CapturingConnectionManager::processFinished(int exitCode, QProcess::ExitStatus exitStatus, const QString &connectionName) { if (m_captureFileForTest.isOpen()) { m_captureFileForTest.close(); Core::AsynchronousMessageBox::warning( - tr("QML Emulation Layer (QML Puppet) Crashed"), + tr("QML Emulation Layer (QML Puppet - %1) Crashed").arg(connectionName), tr("You are recording a puppet stream and the emulations layer crashed. " "It is recommended to reopen the Qt Quick Designer and start again.")); } - InteractiveConnectionManager::processFinished(exitCode, exitStatus); + InteractiveConnectionManager::processFinished(exitCode, exitStatus, connectionName); } void CapturingConnectionManager::writeCommand(const QVariant &command) diff --git a/src/plugins/qmldesigner/designercore/instances/capturingconnectionmanager.h b/src/plugins/qmldesigner/designercore/instances/capturingconnectionmanager.h index 91b73687c80..7552fa27902 100644 --- a/src/plugins/qmldesigner/designercore/instances/capturingconnectionmanager.h +++ b/src/plugins/qmldesigner/designercore/instances/capturingconnectionmanager.h @@ -39,7 +39,7 @@ public: ProjectExplorer::Target *target, AbstractView *view) override; - void processFinished(int exitCode, QProcess::ExitStatus exitStatus) override; + void processFinished(int exitCode, QProcess::ExitStatus exitStatus, const QString &connectionName) override; void writeCommand(const QVariant &command) override; diff --git a/src/plugins/qmldesigner/designercore/instances/connectionmanager.cpp b/src/plugins/qmldesigner/designercore/instances/connectionmanager.cpp index 77ea8706bf1..3f28389b539 100644 --- a/src/plugins/qmldesigner/designercore/instances/connectionmanager.cpp +++ b/src/plugins/qmldesigner/designercore/instances/connectionmanager.cpp @@ -69,7 +69,7 @@ void ConnectionManager::setUp(NodeInstanceServerInterface *nodeInstanceServerPro socketToken, [&] { printProcessOutput(connection.qmlPuppetProcess.get(), connection.name); }, [&](int exitCode, QProcess::ExitStatus exitStatus) { - processFinished(exitCode, exitStatus); + processFinished(exitCode, exitStatus, connection.name); }); const int second = 1000; @@ -122,15 +122,10 @@ void ConnectionManager::writeCommand(const QVariant &command) m_writeCommandCounter++; } -void ConnectionManager::processFinished(int exitCode, QProcess::ExitStatus exitStatus) +void ConnectionManager::processFinished(int exitCode, QProcess::ExitStatus exitStatus, const QString &connectionName) { - auto finishedProcess = qobject_cast(sender()); - if (finishedProcess) - qWarning() << "Process" << (exitStatus == QProcess::CrashExit ? "crashed:" : "finished:") - << finishedProcess->arguments() << "exitCode:" << exitCode; - else - qWarning() << "Process" << (exitStatus == QProcess::CrashExit ? "crashed:" : "finished:") - << sender() << "exitCode:" << exitCode; + qWarning() << "Process" << connectionName <<(exitStatus == QProcess::CrashExit ? "crashed:" : "finished:") + << "with exitCode:" << exitCode; writeCommand(QVariant::fromValue(EndPuppetCommand())); diff --git a/src/plugins/qmldesigner/designercore/instances/connectionmanager.h b/src/plugins/qmldesigner/designercore/instances/connectionmanager.h index c3c2c34afbf..fec3adac060 100644 --- a/src/plugins/qmldesigner/designercore/instances/connectionmanager.h +++ b/src/plugins/qmldesigner/designercore/instances/connectionmanager.h @@ -58,7 +58,7 @@ public: protected: using BaseConnectionManager::processFinished; - void processFinished(int exitCode, QProcess::ExitStatus exitStatus) override; + void processFinished(int exitCode, QProcess::ExitStatus exitStatus, const QString &connectionName) override; std::vector &connections() { return m_connections; } quint32 &writeCommandCounter() { return m_writeCommandCounter; } diff --git a/src/plugins/qmldesigner/designercore/instances/connectionmanagerinterface.h b/src/plugins/qmldesigner/designercore/instances/connectionmanagerinterface.h index 2fc75c61c22..319c7407676 100644 --- a/src/plugins/qmldesigner/designercore/instances/connectionmanagerinterface.h +++ b/src/plugins/qmldesigner/designercore/instances/connectionmanagerinterface.h @@ -79,7 +79,7 @@ public: protected: virtual void dispatchCommand(const QVariant &command, Connection &connection) = 0; - virtual void processFinished(int exitCode, QProcess::ExitStatus exitStatus) = 0; + virtual void processFinished(int exitCode, QProcess::ExitStatus exitStatus, const QString &connectionName) = 0; }; } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/designercore/instances/interactiveconnectionmanager.cpp b/src/plugins/qmldesigner/designercore/instances/interactiveconnectionmanager.cpp index a8c1ecd5fee..dd2f47e5558 100644 --- a/src/plugins/qmldesigner/designercore/instances/interactiveconnectionmanager.cpp +++ b/src/plugins/qmldesigner/designercore/instances/interactiveconnectionmanager.cpp @@ -107,7 +107,7 @@ void InteractiveConnectionManager::puppetTimeout(Connection &connection) return; } - processFinished(); + processFinished(connection.name + "_timeout"); } void InteractiveConnectionManager::puppetAlive(Connection &connection)