diff --git a/src/plugins/analyzerbase/ianalyzertool.h b/src/plugins/analyzerbase/ianalyzertool.h index 3c1a46df52a1f99b2a9c5da545e9fc38745e26e0..87e0106b4669d36e8f2d8377360f88f7b205f5e6 100644 --- a/src/plugins/analyzerbase/ianalyzertool.h +++ b/src/plugins/analyzerbase/ianalyzertool.h @@ -123,11 +123,6 @@ public: virtual bool canRun(ProjectExplorer::RunConfiguration *runConfiguration, ProjectExplorer::RunMode mode) const = 0; - /// Create the start parameters for the run control factory - virtual AnalyzerStartParameters createStartParameters( - ProjectExplorer::RunConfiguration *runConfiguration, - ProjectExplorer::RunMode mode) const = 0; - virtual void startTool(StartMode mode) = 0; /// Called when tools gets selected. diff --git a/src/plugins/qmlprofiler/qmlprofilerruncontrolfactory.cpp b/src/plugins/qmlprofiler/qmlprofilerruncontrolfactory.cpp index 10fb74b1baf7b34d0ddfbd6c6b7437f686e848d2..e823a6d2e60b7494e8316884394e2ed5fb92d7b6 100644 --- a/src/plugins/qmlprofiler/qmlprofilerruncontrolfactory.cpp +++ b/src/plugins/qmlprofiler/qmlprofilerruncontrolfactory.cpp @@ -37,11 +37,22 @@ #include #include +#include + +#include #include +#include +#include +#include +#include #include +#include + #include +#include + using namespace Analyzer; using namespace ProjectExplorer; @@ -63,6 +74,51 @@ bool QmlProfilerRunControlFactory::canRun(RunConfiguration *runConfiguration, Ru return false; } +static AnalyzerStartParameters createQmlProfilerStartParameters(RunConfiguration *runConfiguration) +{ + AnalyzerStartParameters sp; + EnvironmentAspect *environment = runConfiguration->extraAspect(); + Debugger::DebuggerRunConfigurationAspect *debugger + = runConfiguration->extraAspect(); + QTC_ASSERT(debugger, return sp); + + // FIXME: This is only used to communicate the connParams settings. + if (QmlProjectManager::QmlProjectRunConfiguration *rc1 = + qobject_cast(runConfiguration)) { + // This is a "plain" .qmlproject. + if (environment) + sp.environment = environment->environment(); + sp.workingDirectory = rc1->workingDirectory(); + sp.debuggee = rc1->observerPath(); + sp.debuggeeArgs = rc1->viewerArguments(); + sp.displayName = rc1->displayName(); + } else if (LocalApplicationRunConfiguration *rc2 = + qobject_cast(runConfiguration)) { + if (environment) + sp.environment = environment->environment(); + sp.workingDirectory = rc2->workingDirectory(); + sp.debuggee = rc2->executable(); + sp.debuggeeArgs = rc2->commandLineArguments(); + sp.displayName = rc2->displayName(); + } else { + // What could that be? + QTC_ASSERT(false, return sp); + } + const IDevice::ConstPtr device = DeviceKitInformation::device(runConfiguration->target()->kit()); + if (device->type() == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE) { + QTcpServer server; + if (!server.listen(QHostAddress::LocalHost) && !server.listen(QHostAddress::LocalHostIPv6)) { + qWarning() << "Cannot open port on host for QML profiling."; + return sp; + } + sp.analyzerHost = server.serverAddress().toString(); + sp.analyzerPort = server.serverPort(); + } + sp.startMode = StartQml; + sp.toolId = "QmlProfiler"; + return sp; +} + RunControl *QmlProfilerRunControlFactory::create(RunConfiguration *runConfiguration, RunMode mode, QString *errorMessage) { IAnalyzerTool *tool = AnalyzerManager::toolFromRunMode(mode); @@ -74,12 +130,10 @@ RunControl *QmlProfilerRunControlFactory::create(RunConfiguration *runConfigurat QTC_ASSERT(canRun(runConfiguration, mode), return 0); - AnalyzerStartParameters sp = tool->createStartParameters(runConfiguration, mode); - sp.toolId = tool->id(); + AnalyzerStartParameters sp = createQmlProfilerStartParameters(runConfiguration); // only desktop device is supported - const ProjectExplorer::IDevice::ConstPtr device = - ProjectExplorer::DeviceKitInformation::device(runConfiguration->target()->kit()); + const IDevice::ConstPtr device = DeviceKitInformation::device(runConfiguration->target()->kit()); QTC_ASSERT(device->type() == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE, return 0); AnalyzerRunControl *rc = new AnalyzerRunControl(tool, sp, runConfiguration); diff --git a/src/plugins/qmlprofiler/qmlprofilertool.cpp b/src/plugins/qmlprofiler/qmlprofilertool.cpp index 8439d0e6018c698ce440128eed4a6268254b3fc0..d1162bc8ee7110c8367378b2ad1e9e0732afce1f 100644 --- a/src/plugins/qmlprofiler/qmlprofilertool.cpp +++ b/src/plugins/qmlprofiler/qmlprofilertool.cpp @@ -70,8 +70,6 @@ #include #include -#include - #include #include @@ -285,54 +283,6 @@ static QString sysroot(RunConfiguration *runConfig) return QString(); } -AnalyzerStartParameters QmlProfilerTool::createStartParameters(RunConfiguration *runConfiguration, RunMode mode) const -{ - Q_UNUSED(mode); - - AnalyzerStartParameters sp; - ProjectExplorer::EnvironmentAspect *environment - = runConfiguration->extraAspect(); - Debugger::DebuggerRunConfigurationAspect *debugger - = runConfiguration->extraAspect(); - QTC_ASSERT(debugger, return sp); - - // FIXME: This is only used to communicate the connParams settings. - if (QmlProjectRunConfiguration *rc1 = - qobject_cast(runConfiguration)) { - // This is a "plain" .qmlproject. - if (environment) - sp.environment = environment->environment(); - sp.workingDirectory = rc1->workingDirectory(); - sp.debuggee = rc1->observerPath(); - sp.debuggeeArgs = rc1->viewerArguments(); - sp.displayName = rc1->displayName(); - } else if (LocalApplicationRunConfiguration *rc2 = - qobject_cast(runConfiguration)) { - if (environment) - sp.environment = environment->environment(); - sp.workingDirectory = rc2->workingDirectory(); - sp.debuggee = rc2->executable(); - sp.debuggeeArgs = rc2->commandLineArguments(); - sp.displayName = rc2->displayName(); - } else { - // What could that be? - QTC_ASSERT(false, return sp); - } - const ProjectExplorer::IDevice::ConstPtr device = - ProjectExplorer::DeviceKitInformation::device(runConfiguration->target()->kit()); - if (device->type() == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE) { - QTcpServer server; - if (!server.listen(QHostAddress::LocalHost) && !server.listen(QHostAddress::LocalHostIPv6)) { - qWarning() << "Cannot open port on host for QML profiling."; - return sp; - } - sp.analyzerHost = server.serverAddress().toString(); - sp.analyzerPort = server.serverPort(); - } - sp.startMode = StartQml; - return sp; -} - QWidget *QmlProfilerTool::createWidgets() { QTC_ASSERT(!d->m_viewContainer, return 0); diff --git a/src/plugins/qmlprofiler/qmlprofilertool.h b/src/plugins/qmlprofiler/qmlprofilertool.h index 412cb6a87f5cff631544eee5b1d8e3bb1cd6c908..27dd2befbcdbfa14b2cbe2bf8aa47549c31a60cd 100644 --- a/src/plugins/qmlprofiler/qmlprofilertool.h +++ b/src/plugins/qmlprofiler/qmlprofilertool.h @@ -62,10 +62,6 @@ public: bool canRun(ProjectExplorer::RunConfiguration *runConfiguration, ProjectExplorer::RunMode mode) const; - Analyzer::AnalyzerStartParameters createStartParameters( - ProjectExplorer::RunConfiguration *runConfiguration, - ProjectExplorer::RunMode mode) const; - QWidget *createWidgets(); void startTool(Analyzer::StartMode mode); diff --git a/src/plugins/valgrind/valgrindruncontrolfactory.cpp b/src/plugins/valgrind/valgrindruncontrolfactory.cpp index 4fbbb40ea0397c8fa7cba128a43080bd50689880..2377100f1d68b09cc28b7846e242f7bb22da199b 100644 --- a/src/plugins/valgrind/valgrindruncontrolfactory.cpp +++ b/src/plugins/valgrind/valgrindruncontrolfactory.cpp @@ -35,8 +35,19 @@ #include #include +#include + +#include +#include +#include +#include +#include +#include + #include +#include + using namespace Analyzer; using namespace ProjectExplorer; @@ -58,6 +69,45 @@ bool ValgrindRunControlFactory::canRun(RunConfiguration *runConfiguration, RunMo return false; } +static AnalyzerStartParameters createValgrindStartParameters(RunConfiguration *runConfiguration) +{ + Analyzer::AnalyzerStartParameters sp; + sp.displayName = runConfiguration->displayName(); + if (LocalApplicationRunConfiguration *rc1 = + qobject_cast(runConfiguration)) { + EnvironmentAspect *aspect = runConfiguration->extraAspect(); + if (aspect) + sp.environment = aspect->environment(); + sp.workingDirectory = rc1->workingDirectory(); + sp.debuggee = rc1->executable(); + sp.debuggeeArgs = rc1->commandLineArguments(); + const IDevice::ConstPtr device = + DeviceKitInformation::device(runConfiguration->target()->kit()); + QTC_ASSERT(device, return sp); + QTC_ASSERT(device->type() == ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE, return sp); + QTcpServer server; + if (!server.listen(QHostAddress::LocalHost) && !server.listen(QHostAddress::LocalHostIPv6)) { + qWarning() << "Cannot open port on host for profiling."; + return sp; + } + sp.connParams.host = server.serverAddress().toString(); + sp.connParams.port = server.serverPort(); + sp.startMode = Analyzer::StartLocal; + } else if (RemoteLinux::RemoteLinuxRunConfiguration *rc2 = + qobject_cast(runConfiguration)) { + sp.startMode = Analyzer::StartRemote; + sp.debuggee = rc2->remoteExecutableFilePath(); + sp.connParams = DeviceKitInformation::device(rc2->target()->kit())->sshParameters(); + sp.analyzerCmdPrefix = rc2->commandPrefix(); + sp.debuggeeArgs = rc2->arguments(); + } else { + // Might be S60DeviceRunfiguration, or something else ... + //sp.startMode = StartRemote; + sp.startMode = Analyzer::StartRemote; + } + return sp; +} + RunControl *ValgrindRunControlFactory::create(RunConfiguration *runConfiguration, RunMode mode, QString *errorMessage) { IAnalyzerTool *tool = AnalyzerManager::toolFromRunMode(mode); @@ -69,7 +119,7 @@ RunControl *ValgrindRunControlFactory::create(RunConfiguration *runConfiguration QTC_ASSERT(canRun(runConfiguration, mode), return 0); - AnalyzerStartParameters sp = tool->createStartParameters(runConfiguration, mode); + AnalyzerStartParameters sp = createValgrindStartParameters(runConfiguration); sp.toolId = tool->id(); AnalyzerRunControl *rc = new AnalyzerRunControl(tool, sp, runConfiguration); diff --git a/src/plugins/valgrind/valgrindtool.cpp b/src/plugins/valgrind/valgrindtool.cpp index 041ecd07e69d294584316828300491c05c4581a6..8b58b863b37bfd74209023636f5e8a3b3477564e 100644 --- a/src/plugins/valgrind/valgrindtool.cpp +++ b/src/plugins/valgrind/valgrindtool.cpp @@ -29,21 +29,7 @@ #include "valgrindtool.h" -#include - -#include -#include -#include -#include -#include -#include - -#include - -#include - using namespace ProjectExplorer; -using namespace RemoteLinux; namespace Valgrind { namespace Internal { @@ -58,47 +44,5 @@ bool ValgrindTool::canRun(RunConfiguration *, RunMode mode) const return mode == runMode(); } -Analyzer::AnalyzerStartParameters ValgrindTool::createStartParameters( - RunConfiguration *runConfiguration, RunMode mode) const -{ - Q_UNUSED(mode); - - Analyzer::AnalyzerStartParameters sp; - sp.displayName = runConfiguration->displayName(); - if (LocalApplicationRunConfiguration *rc1 = - qobject_cast(runConfiguration)) { - EnvironmentAspect *aspect = runConfiguration->extraAspect(); - if (aspect) - sp.environment = aspect->environment(); - sp.workingDirectory = rc1->workingDirectory(); - sp.debuggee = rc1->executable(); - sp.debuggeeArgs = rc1->commandLineArguments(); - const IDevice::ConstPtr device = - DeviceKitInformation::device(runConfiguration->target()->kit()); - QTC_ASSERT(device, return sp); - QTC_ASSERT(device->type() == Constants::DESKTOP_DEVICE_TYPE, return sp); - QTcpServer server; - if (!server.listen(QHostAddress::LocalHost) && !server.listen(QHostAddress::LocalHostIPv6)) { - qWarning() << "Cannot open port on host for profiling."; - return sp; - } - sp.connParams.host = server.serverAddress().toString(); - sp.connParams.port = server.serverPort(); - sp.startMode = Analyzer::StartLocal; - } else if (RemoteLinuxRunConfiguration *rc2 = - qobject_cast(runConfiguration)) { - sp.startMode = Analyzer::StartRemote; - sp.debuggee = rc2->remoteExecutableFilePath(); - sp.connParams = DeviceKitInformation::device(rc2->target()->kit())->sshParameters(); - sp.analyzerCmdPrefix = rc2->commandPrefix(); - sp.debuggeeArgs = rc2->arguments(); - } else { - // Might be S60DeviceRunfiguration, or something else ... - //sp.startMode = StartRemote; - sp.startMode = Analyzer::StartRemote; - } - return sp; -} - } // namespace Internal } // namespace Valgrind diff --git a/src/plugins/valgrind/valgrindtool.h b/src/plugins/valgrind/valgrindtool.h index 3338155b79b6847e254d8cbb9ae17d42917f469f..fc1d280757c10c0c7894b6c9a0f016a8f50942a8 100644 --- a/src/plugins/valgrind/valgrindtool.h +++ b/src/plugins/valgrind/valgrindtool.h @@ -43,10 +43,6 @@ public: bool canRun(ProjectExplorer::RunConfiguration *runConfiguration, ProjectExplorer::RunMode mode) const; - - Analyzer::AnalyzerStartParameters createStartParameters( - ProjectExplorer::RunConfiguration *runConfiguration, - ProjectExplorer::RunMode mode) const; }; } // namespace Internal