diff options
Diffstat (limited to 'src/plugins/qnx')
-rw-r--r-- | src/plugins/qnx/qnxanalyzesupport.cpp | 76 | ||||
-rw-r--r-- | src/plugins/qnx/qnxanalyzesupport.h | 6 |
2 files changed, 32 insertions, 50 deletions
diff --git a/src/plugins/qnx/qnxanalyzesupport.cpp b/src/plugins/qnx/qnxanalyzesupport.cpp index f5e182a8e3..f42d3ecc56 100644 --- a/src/plugins/qnx/qnxanalyzesupport.cpp +++ b/src/plugins/qnx/qnxanalyzesupport.cpp @@ -36,76 +36,54 @@ #include <utils/qtcassert.h> #include <utils/qtcprocess.h> + #include <qmldebug/qmldebugcommandlinearguments.h> #include <qmldebug/qmloutputparser.h> +#include <ssh/sshconnection.h> + using namespace ProjectExplorer; using namespace Utils; namespace Qnx { namespace Internal { -class QnxAnalyzeeRunner : public SimpleTargetRunner -{ -public: - QnxAnalyzeeRunner(RunControl *runControl, PortsGatherer *portsGatherer) - : SimpleTargetRunner(runControl), m_portsGatherer(portsGatherer) - { - setDisplayName("QnxAnalyzeeRunner"); - } - -private: - void start() override - { - Utils::Port port = m_portsGatherer->findPort(); - - auto r = runnable().as<StandardRunnable>(); - if (!r.commandLineArguments.isEmpty()) - r.commandLineArguments += ' '; - r.commandLineArguments += - QmlDebug::qmlDebugTcpArguments(QmlDebug::QmlProfilerServices, port); - - setRunnable(r); - - SimpleTargetRunner::start(); - } - - PortsGatherer *m_portsGatherer; -}; - - -// QnxDebugSupport - QnxQmlProfilerSupport::QnxQmlProfilerSupport(RunControl *runControl) - : RunWorker(runControl) + : SimpleTargetRunner(runControl) { - runControl->createWorker(runControl->runMode()); - - setDisplayName("QnxAnalyzeSupport"); + setDisplayName("QnxQmlProfilerSupport"); appendMessage(tr("Preparing remote side..."), Utils::LogMessageFormat); - auto portsGatherer = new PortsGatherer(runControl); - - auto debuggeeRunner = new QnxAnalyzeeRunner(runControl, portsGatherer); - debuggeeRunner->addStartDependency(portsGatherer); + m_portsGatherer = new PortsGatherer(runControl); + addStartDependency(m_portsGatherer); auto slog2InfoRunner = new Slog2InfoRunner(runControl); - slog2InfoRunner->addStartDependency(debuggeeRunner); - addStartDependency(slog2InfoRunner); - // QmlDebug::QmlOutputParser m_outputParser; - // FIXME: m_outputParser needs to be fed with application output - // connect(&m_outputParser, &QmlDebug::QmlOutputParser::waitingForConnectionOnPort, - // this, &QnxAnalyzeSupport::remoteIsRunning); - - // m_outputParser.processOutput(msg); + m_profiler = runControl->createWorker(runControl->runMode()); + m_profiler->addStartDependency(this); + addStopDependency(m_profiler); } void QnxQmlProfilerSupport::start() { - // runControl()->notifyRemoteSetupDone(m_qmlPort); - reportStarted(); + Port qmlPort = m_portsGatherer->findPort(); + + QUrl serverUrl; + serverUrl.setHost(device()->sshParameters().host); + serverUrl.setPort(qmlPort.number()); + serverUrl.setScheme("tcp"); + m_profiler->recordData("QmlServerUrl", serverUrl); + + QString args = QmlDebug::qmlDebugTcpArguments(QmlDebug::QmlProfilerServices, qmlPort); + auto r = runnable().as<StandardRunnable>(); + if (!r.commandLineArguments.isEmpty()) + r.commandLineArguments.append(' '); + r.commandLineArguments += args; + + setRunnable(r); + + SimpleTargetRunner::start(); } } // namespace Internal diff --git a/src/plugins/qnx/qnxanalyzesupport.h b/src/plugins/qnx/qnxanalyzesupport.h index 9fbd11d0fe..415459e3c1 100644 --- a/src/plugins/qnx/qnxanalyzesupport.h +++ b/src/plugins/qnx/qnxanalyzesupport.h @@ -25,12 +25,13 @@ #pragma once +#include <projectexplorer/devicesupport/deviceusedportsgatherer.h> #include <projectexplorer/runconfiguration.h> namespace Qnx { namespace Internal { -class QnxQmlProfilerSupport : public ProjectExplorer::RunWorker +class QnxQmlProfilerSupport : public ProjectExplorer::SimpleTargetRunner { Q_OBJECT @@ -39,6 +40,9 @@ public: private: void start() override; + + ProjectExplorer::PortsGatherer *m_portsGatherer; + ProjectExplorer::RunWorker *m_profiler; }; } // namespace Internal |