diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp index 31ec3bc29f2fe19a8385554093889912215b7096..0700c35d88a1fca6f0083e8004dae9f6f05de98b 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp @@ -170,8 +170,10 @@ NodeInstanceServerProxy::NodeInstanceServerProxy(NodeInstanceView *nodeInstanceV connect(m_qmlPuppetEditorProcess.data(), SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(processFinished(int,QProcess::ExitStatus))); connect(QCoreApplication::instance(), SIGNAL(aboutToQuit()), m_qmlPuppetEditorProcess.data(), SLOT(kill())); bool fowardQmlpuppetOutput = !qgetenv("FORWARD_QMLPUPPET_OUTPUT").isEmpty(); - if (fowardQmlpuppetOutput) - m_qmlPuppetEditorProcess->setProcessChannelMode(QProcess::ForwardedChannels); + if (fowardQmlpuppetOutput) { + m_qmlPuppetEditorProcess->setProcessChannelMode(QProcess::MergedChannels); + connect(m_qmlPuppetEditorProcess.data(), SIGNAL(readyRead()), this, SLOT(printEditorProcessOutput())); + } m_qmlPuppetEditorProcess->start(applicationPath, QStringList() << socketToken << "editormode" << "-graphicssystem raster"); if (runModus == NormalModus) { @@ -180,8 +182,10 @@ NodeInstanceServerProxy::NodeInstanceServerProxy(NodeInstanceView *nodeInstanceV m_qmlPuppetPreviewProcess->setObjectName("PreviewProcess"); connect(m_qmlPuppetPreviewProcess.data(), SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(processFinished(int,QProcess::ExitStatus))); connect(QCoreApplication::instance(), SIGNAL(aboutToQuit()), m_qmlPuppetPreviewProcess.data(), SLOT(kill())); - if (fowardQmlpuppetOutput) - m_qmlPuppetPreviewProcess->setProcessChannelMode(QProcess::ForwardedChannels); + if (fowardQmlpuppetOutput) { + m_qmlPuppetPreviewProcess->setProcessChannelMode(QProcess::MergedChannels); + connect(m_qmlPuppetPreviewProcess.data(), SIGNAL(readyRead()), this, SLOT(printPreviewProcessOutput())); + } m_qmlPuppetPreviewProcess->start(applicationPath, QStringList() << socketToken << "previewmode" << "-graphicssystem raster"); m_qmlPuppetRenderProcess = new QProcess; @@ -189,8 +193,10 @@ NodeInstanceServerProxy::NodeInstanceServerProxy(NodeInstanceView *nodeInstanceV m_qmlPuppetRenderProcess->setObjectName("RenderProcess"); connect(m_qmlPuppetRenderProcess.data(), SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(processFinished(int,QProcess::ExitStatus))); connect(QCoreApplication::instance(), SIGNAL(aboutToQuit()), m_qmlPuppetRenderProcess.data(), SLOT(kill())); - if (fowardQmlpuppetOutput) - m_qmlPuppetRenderProcess->setProcessChannelMode(QProcess::ForwardedChannels); + if (fowardQmlpuppetOutput) { + m_qmlPuppetRenderProcess->setProcessChannelMode(QProcess::MergedChannels); + connect(m_qmlPuppetRenderProcess.data(), SIGNAL(readyRead()), this, SLOT(printRenderProcessOutput())); + } m_qmlPuppetRenderProcess->start(applicationPath, QStringList() << socketToken << "rendermode" << "-graphicssystem raster"); } @@ -523,6 +529,37 @@ void NodeInstanceServerProxy::readThirdDataStream() } } +void NodeInstanceServerProxy::printEditorProcessOutput() +{ + while (m_qmlPuppetEditorProcess->canReadLine()) { + QByteArray line = m_qmlPuppetEditorProcess->readLine(); + line.chop(1); + qDebug().nospace() << "Editor Puppet: " << qPrintable(line); + } + qDebug() << "\n"; +} + +void NodeInstanceServerProxy::printPreviewProcessOutput() +{ + while (m_qmlPuppetPreviewProcess->canReadLine()) { + QByteArray line = m_qmlPuppetPreviewProcess->readLine(); + line.chop(1); + qDebug().nospace() << "Preview Puppet: " << qPrintable(line); + } + qDebug() << "\n"; +} + +void NodeInstanceServerProxy::printRenderProcessOutput() +{ + while (m_qmlPuppetRenderProcess->canReadLine()) { + QByteArray line = m_qmlPuppetRenderProcess->readLine(); + line.chop(1); + qDebug().nospace() << "Render Puppet: " << qPrintable(line); + } + + qDebug() << "\n"; +} + QString NodeInstanceServerProxy::qmlPuppetApplicationName() const { if (hasQtQuick2(m_nodeInstanceView.data())) diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h index a8f0b44ff080ce18b24470aba7d9c271bc6e0c77..1f2d092d7823254f5ca34ed81e5e69c1d9a09f96 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.h @@ -88,6 +88,9 @@ private slots: void readSecondDataStream(); void readThirdDataStream(); + void printEditorProcessOutput(); + void printPreviewProcessOutput(); + void printRenderProcessOutput(); private: QFile m_captureFileForTest; QWeakPointer<QLocalServer> m_localServer;