forked from qt-creator/qt-creator
qmldesigner: fix error output at puppet crashes
Change-Id: I6c2a8d655e996e6f935d069a97a45e64ad0ef5b9 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Marco Bubke <marco.bubke@qt.io>
This commit is contained in:
@@ -66,9 +66,9 @@ bool BaseConnectionManager::isActive() const
|
|||||||
|
|
||||||
void BaseConnectionManager::showCannotConnectToPuppetWarningAndSwitchToEditMode() {}
|
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,
|
void BaseConnectionManager::writeCommandToIODevice(const QVariant &command,
|
||||||
|
@@ -64,7 +64,7 @@ protected:
|
|||||||
void dispatchCommand(const QVariant &command, Connection &connection) override;
|
void dispatchCommand(const QVariant &command, Connection &connection) override;
|
||||||
virtual void showCannotConnectToPuppetWarningAndSwitchToEditMode();
|
virtual void showCannotConnectToPuppetWarningAndSwitchToEditMode();
|
||||||
using ConnectionManagerInterface::processFinished;
|
using ConnectionManagerInterface::processFinished;
|
||||||
void processFinished();
|
void processFinished(const QString &reason);
|
||||||
static void writeCommandToIODevice(const QVariant &command,
|
static void writeCommandToIODevice(const QVariant &command,
|
||||||
QIODevice *ioDevice,
|
QIODevice *ioDevice,
|
||||||
unsigned int commandCounter);
|
unsigned int commandCounter);
|
||||||
|
@@ -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()) {
|
if (m_captureFileForTest.isOpen()) {
|
||||||
m_captureFileForTest.close();
|
m_captureFileForTest.close();
|
||||||
Core::AsynchronousMessageBox::warning(
|
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. "
|
tr("You are recording a puppet stream and the emulations layer crashed. "
|
||||||
"It is recommended to reopen the Qt Quick Designer and start again."));
|
"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)
|
void CapturingConnectionManager::writeCommand(const QVariant &command)
|
||||||
|
@@ -39,7 +39,7 @@ public:
|
|||||||
ProjectExplorer::Target *target,
|
ProjectExplorer::Target *target,
|
||||||
AbstractView *view) override;
|
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;
|
void writeCommand(const QVariant &command) override;
|
||||||
|
|
||||||
|
@@ -69,7 +69,7 @@ void ConnectionManager::setUp(NodeInstanceServerInterface *nodeInstanceServerPro
|
|||||||
socketToken,
|
socketToken,
|
||||||
[&] { printProcessOutput(connection.qmlPuppetProcess.get(), connection.name); },
|
[&] { printProcessOutput(connection.qmlPuppetProcess.get(), connection.name); },
|
||||||
[&](int exitCode, QProcess::ExitStatus exitStatus) {
|
[&](int exitCode, QProcess::ExitStatus exitStatus) {
|
||||||
processFinished(exitCode, exitStatus);
|
processFinished(exitCode, exitStatus, connection.name);
|
||||||
});
|
});
|
||||||
|
|
||||||
const int second = 1000;
|
const int second = 1000;
|
||||||
@@ -122,15 +122,10 @@ void ConnectionManager::writeCommand(const QVariant &command)
|
|||||||
m_writeCommandCounter++;
|
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<QProcess *>(sender());
|
qWarning() << "Process" << connectionName <<(exitStatus == QProcess::CrashExit ? "crashed:" : "finished:")
|
||||||
if (finishedProcess)
|
<< "with exitCode:" << exitCode;
|
||||||
qWarning() << "Process" << (exitStatus == QProcess::CrashExit ? "crashed:" : "finished:")
|
|
||||||
<< finishedProcess->arguments() << "exitCode:" << exitCode;
|
|
||||||
else
|
|
||||||
qWarning() << "Process" << (exitStatus == QProcess::CrashExit ? "crashed:" : "finished:")
|
|
||||||
<< sender() << "exitCode:" << exitCode;
|
|
||||||
|
|
||||||
writeCommand(QVariant::fromValue(EndPuppetCommand()));
|
writeCommand(QVariant::fromValue(EndPuppetCommand()));
|
||||||
|
|
||||||
|
@@ -58,7 +58,7 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
using BaseConnectionManager::processFinished;
|
using BaseConnectionManager::processFinished;
|
||||||
void processFinished(int exitCode, QProcess::ExitStatus exitStatus) override;
|
void processFinished(int exitCode, QProcess::ExitStatus exitStatus, const QString &connectionName) override;
|
||||||
std::vector<Connection> &connections() { return m_connections; }
|
std::vector<Connection> &connections() { return m_connections; }
|
||||||
|
|
||||||
quint32 &writeCommandCounter() { return m_writeCommandCounter; }
|
quint32 &writeCommandCounter() { return m_writeCommandCounter; }
|
||||||
|
@@ -79,7 +79,7 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void dispatchCommand(const QVariant &command, Connection &connection) = 0;
|
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
|
} // namespace QmlDesigner
|
||||||
|
@@ -107,7 +107,7 @@ void InteractiveConnectionManager::puppetTimeout(Connection &connection)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
processFinished();
|
processFinished(connection.name + "_timeout");
|
||||||
}
|
}
|
||||||
|
|
||||||
void InteractiveConnectionManager::puppetAlive(Connection &connection)
|
void InteractiveConnectionManager::puppetAlive(Connection &connection)
|
||||||
|
Reference in New Issue
Block a user