From 010d038f90fd87d24a3d69216effb0f37fbb6425 Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Tue, 5 Jul 2011 12:14:41 +0200 Subject: [PATCH] analyzer: remove shadowed start parameters Also, use only one Tool for all Qml profiling. Change-Id: Ic79d0c3b8781f4dffd8e0cd77af014bf008f4c2e Reviewed-on: http://codereview.qt.nokia.com/1157 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: hjk <qthjk@ovi.com> --- src/plugins/analyzerbase/analyzerconstants.h | 2 +- src/plugins/analyzerbase/ianalyzerengine.cpp | 7 ++ src/plugins/analyzerbase/ianalyzerengine.h | 2 + src/plugins/qmlprofiler/qmlprofilerengine.cpp | 66 +++++++++++-------- src/plugins/qmlprofiler/qmlprofilerengine.h | 2 +- src/plugins/qmlprofiler/qmlprofilertool.cpp | 3 +- .../qmlprojectanalyzerruncontrolfactory.cpp | 24 +++++-- 7 files changed, 71 insertions(+), 35 deletions(-) diff --git a/src/plugins/analyzerbase/analyzerconstants.h b/src/plugins/analyzerbase/analyzerconstants.h index 636d0e74772..c27f98ad2f2 100644 --- a/src/plugins/analyzerbase/analyzerconstants.h +++ b/src/plugins/analyzerbase/analyzerconstants.h @@ -51,7 +51,7 @@ private: // Special values for currently used modes. // Their meaning is interpreted by the individual tools. -enum { StartLocal = -1, StartRemote = -2 }; +enum { StartLocal = -1, StartRemote = -2, StartQml = -3 }; namespace Constants { diff --git a/src/plugins/analyzerbase/ianalyzerengine.cpp b/src/plugins/analyzerbase/ianalyzerengine.cpp index 1d9ac39eab4..91da9d098f1 100644 --- a/src/plugins/analyzerbase/ianalyzerengine.cpp +++ b/src/plugins/analyzerbase/ianalyzerengine.cpp @@ -44,4 +44,11 @@ IAnalyzerEngine::IAnalyzerEngine(IAnalyzerTool *tool, const AnalyzerStartParamet m_tool = tool; } +IAnalyzerEngine::IAnalyzerEngine(IAnalyzerTool *tool, + ProjectExplorer::RunConfiguration *runConfiguration) +{ + m_runConfig = runConfiguration; + m_tool = tool; +} + } // namespace Analyzer diff --git a/src/plugins/analyzerbase/ianalyzerengine.h b/src/plugins/analyzerbase/ianalyzerengine.h index 8596fbf53c5..29c2d0f0b8c 100644 --- a/src/plugins/analyzerbase/ianalyzerengine.h +++ b/src/plugins/analyzerbase/ianalyzerengine.h @@ -65,6 +65,8 @@ class ANALYZER_EXPORT IAnalyzerEngine : public QObject public: IAnalyzerEngine(IAnalyzerTool *tool, const AnalyzerStartParameters &sp, ProjectExplorer::RunConfiguration *runConfiguration = 0); + IAnalyzerEngine(IAnalyzerTool *tool, + ProjectExplorer::RunConfiguration *runConfiguration); /// Start analyzation process. virtual void start() = 0; diff --git a/src/plugins/qmlprofiler/qmlprofilerengine.cpp b/src/plugins/qmlprofiler/qmlprofilerengine.cpp index 1de1e399bc1..18788eff4ae 100644 --- a/src/plugins/qmlprofiler/qmlprofilerengine.cpp +++ b/src/plugins/qmlprofiler/qmlprofilerengine.cpp @@ -46,11 +46,17 @@ #include <coreplugin/icore.h> #include <utils/qtcassert.h> #include <coreplugin/helpmanager.h> +#include <qmlprojectmanager/qmlprojectrunconfiguration.h> +#include <projectexplorer/localapplicationruncontrol.h> +#include <projectexplorer/applicationrunconfiguration.h> +#include <qt4projectmanager/qt-s60/s60devicedebugruncontrol.h> +#include <qt4projectmanager/qt-s60/s60devicerunconfiguration.h> #include <QtGui/QMainWindow> #include <QtGui/QMessageBox> using namespace Analyzer; +using namespace ProjectExplorer; namespace QmlProfiler { namespace Internal { @@ -67,12 +73,11 @@ public: bool attach(const QString &address, uint port); static AbstractQmlProfilerRunner *createRunner(ProjectExplorer::RunConfiguration *runConfiguration, - const AnalyzerStartParameters &m_params, QObject *parent); QmlProfilerEngine *q; - AnalyzerStartParameters m_params; + //AnalyzerStartParameters m_params; AbstractQmlProfilerRunner *m_runner; bool m_running; bool m_fetchingData; @@ -80,28 +85,38 @@ public: }; AbstractQmlProfilerRunner * -QmlProfilerEngine::QmlProfilerEnginePrivate::createRunner(ProjectExplorer::RunConfiguration *configuration, - const AnalyzerStartParameters &m_params, +QmlProfilerEngine::QmlProfilerEnginePrivate::createRunner(ProjectExplorer::RunConfiguration *runConfiguration, QObject *parent) { AbstractQmlProfilerRunner *runner = 0; - if (m_params.startMode == StartLocal) { - LocalQmlProfilerRunner::Configuration configuration; - configuration.executable = m_params.debuggee; - configuration.executableArguments = m_params.debuggeeArgs; - configuration.workingDirectory = m_params.workingDirectory; - configuration.environment = m_params.environment; - configuration.port = m_params.connParams.port; - - runner = new LocalQmlProfilerRunner(configuration, parent); - } else if (m_params.startMode == StartRemote) { - if (Qt4ProjectManager::S60DeviceRunConfiguration *s60Config - = qobject_cast<Qt4ProjectManager::S60DeviceRunConfiguration*>(configuration)) { - runner = new CodaQmlProfilerRunner(s60Config, parent); - } else if (RemoteLinux::RemoteLinuxRunConfiguration *rmConfig - = qobject_cast<RemoteLinux::RemoteLinuxRunConfiguration*>(configuration)){ - runner = new RemoteLinuxQmlProfilerRunner(rmConfig, parent); - } + if (QmlProjectManager::QmlProjectRunConfiguration *rc1 = + qobject_cast<QmlProjectManager::QmlProjectRunConfiguration *>(runConfiguration)) { + // This is a "plain" .qmlproject. + LocalQmlProfilerRunner::Configuration conf; + conf.executable = rc1->observerPath(); + conf.executableArguments = rc1->viewerArguments(); + conf.workingDirectory = rc1->workingDirectory(); + conf.environment = rc1->environment(); + conf.port = rc1->qmlDebugServerPort(); + runner = new LocalQmlProfilerRunner(conf, parent); + } else if (LocalApplicationRunConfiguration *rc2 = + qobject_cast<LocalApplicationRunConfiguration *>(runConfiguration)) { + // FIXME: Check. + LocalQmlProfilerRunner::Configuration conf; + conf.executable = rc2->executable(); + conf.executableArguments = rc2->commandLineArguments(); + conf.workingDirectory = rc2->workingDirectory(); + conf.environment = rc2->environment(); + conf.port = rc2->qmlDebugServerPort(); + runner = new LocalQmlProfilerRunner(conf, parent); + } else if (Qt4ProjectManager::S60DeviceRunConfiguration *s60Config = + qobject_cast<Qt4ProjectManager::S60DeviceRunConfiguration*>(runConfiguration)) { + runner = new CodaQmlProfilerRunner(s60Config, parent); + } else if (RemoteLinux::RemoteLinuxRunConfiguration *rmConfig = + qobject_cast<RemoteLinux::RemoteLinuxRunConfiguration *>(runConfiguration)) { + runner = new RemoteLinuxQmlProfilerRunner(rmConfig, parent); + } else { + QTC_ASSERT(false, /**/); } return runner; } @@ -110,12 +125,11 @@ QmlProfilerEngine::QmlProfilerEnginePrivate::createRunner(ProjectExplorer::RunCo // QmlProfilerEngine // -QmlProfilerEngine::QmlProfilerEngine(IAnalyzerTool *tool, const AnalyzerStartParameters &sp, +QmlProfilerEngine::QmlProfilerEngine(IAnalyzerTool *tool, ProjectExplorer::RunConfiguration *runConfiguration) - : IAnalyzerEngine(tool, sp, runConfiguration) + : IAnalyzerEngine(tool, runConfiguration) , d(new QmlProfilerEnginePrivate(this)) { - d->m_params = sp; d->m_running = false; d->m_fetchingData = false; d->m_delayedDelete = false; @@ -131,8 +145,8 @@ QmlProfilerEngine::~QmlProfilerEngine() void QmlProfilerEngine::start() { QTC_ASSERT(!d->m_runner, return); - d->m_runner = QmlProfilerEnginePrivate::createRunner(runConfiguration(), d->m_params, this); - QTC_ASSERT(d->m_runner, return); + d->m_runner = QmlProfilerEnginePrivate::createRunner(runConfiguration(), this); + connect(d->m_runner, SIGNAL(stopped()), this, SLOT(stopped())); connect(d->m_runner, SIGNAL(appendMessage(QString,Utils::OutputFormat)), diff --git a/src/plugins/qmlprofiler/qmlprofilerengine.h b/src/plugins/qmlprofiler/qmlprofilerengine.h index 8a975aee11c..7e9ef48b6f4 100644 --- a/src/plugins/qmlprofiler/qmlprofilerengine.h +++ b/src/plugins/qmlprofiler/qmlprofilerengine.h @@ -45,7 +45,7 @@ class QmlProfilerEngine : public Analyzer::IAnalyzerEngine Q_OBJECT public: - QmlProfilerEngine(Analyzer::IAnalyzerTool *tool, const Analyzer::AnalyzerStartParameters &sp, + QmlProfilerEngine(Analyzer::IAnalyzerTool *tool, ProjectExplorer::RunConfiguration *runConfiguration); ~QmlProfilerEngine(); diff --git a/src/plugins/qmlprofiler/qmlprofilertool.cpp b/src/plugins/qmlprofiler/qmlprofilertool.cpp index decebb6d177..032ecb40c62 100644 --- a/src/plugins/qmlprofiler/qmlprofilertool.cpp +++ b/src/plugins/qmlprofiler/qmlprofilertool.cpp @@ -171,7 +171,7 @@ IAnalyzerTool::ToolMode QmlProfilerTool::toolMode() const IAnalyzerEngine *QmlProfilerTool::createEngine(const AnalyzerStartParameters &sp, ProjectExplorer::RunConfiguration *runConfiguration) { - QmlProfilerEngine *engine = new QmlProfilerEngine(this, sp, runConfiguration); + QmlProfilerEngine *engine = new QmlProfilerEngine(this, runConfiguration); // Check minimum Qt Version. We cannot really be sure what the Qt version // at runtime is, but guess that the active build configuraiton has been used. @@ -201,6 +201,7 @@ IAnalyzerEngine *QmlProfilerTool::createEngine(const AnalyzerStartParameters &sp } } + // FIXME: Check that there's something sensible in sp.connParams if (d->m_connectMode == QmlProfilerToolPrivate::TcpConnection) { d->m_tcpHost = sp.connParams.host; d->m_tcpPort = sp.connParams.port; diff --git a/src/plugins/qmlprofiler/qmlprojectanalyzerruncontrolfactory.cpp b/src/plugins/qmlprofiler/qmlprojectanalyzerruncontrolfactory.cpp index 2f18a03a767..adcdb150415 100644 --- a/src/plugins/qmlprofiler/qmlprojectanalyzerruncontrolfactory.cpp +++ b/src/plugins/qmlprofiler/qmlprojectanalyzerruncontrolfactory.cpp @@ -44,6 +44,8 @@ #include <remotelinux/linuxdeviceconfiguration.h> #include <remotelinux/remotelinuxrunconfiguration.h> +#include <qt4projectmanager/qt-s60/s60devicedebugruncontrol.h> +#include <qt4projectmanager/qt-s60/s60devicerunconfiguration.h> #include <utils/qtcassert.h> @@ -62,26 +64,30 @@ QmlProjectAnalyzerRunControlFactory::QmlProjectAnalyzerRunControlFactory(QObject bool QmlProjectAnalyzerRunControlFactory::canRun(RunConfiguration *runConfiguration, const QString &mode) const { + // FIXME: Should this just accept all mode == QLatin1String("QmlProfiler"); ? if (qobject_cast<QmlProjectRunConfiguration *>(runConfiguration)) return mode == QLatin1String("QmlProfiler"); if (qobject_cast<RemoteLinux::RemoteLinuxRunConfiguration *>(runConfiguration)) return mode == QLatin1String("QmlProfiler"); if (qobject_cast<LocalApplicationRunConfiguration *>(runConfiguration)) return mode == QLatin1String("QmlProfiler"); + if (qobject_cast<Qt4ProjectManager::S60DeviceRunConfiguration *>(runConfiguration)) + return mode == QLatin1String("QmlProfiler"); return false; } RunControl *QmlProjectAnalyzerRunControlFactory::create(RunConfiguration *runConfiguration, const QString &mode) { QTC_ASSERT(canRun(runConfiguration, mode), return 0); - AnalyzerStartParameters sp; sp.toolId = "QmlProfiler"; + sp.startMode = StartQml; // FIXME: The parameter struct is not needed/not used. + + // FIXME: This is only used to communicate the connParams settings. if (QmlProjectRunConfiguration *rc1 = qobject_cast<QmlProjectRunConfiguration *>(runConfiguration)) { // This is a "plain" .qmlproject. - sp.startMode = StartLocal; sp.environment = rc1->environment(); sp.workingDirectory = rc1->workingDirectory(); sp.debuggee = rc1->observerPath(); @@ -91,7 +97,6 @@ RunControl *QmlProjectAnalyzerRunControlFactory::create(RunConfiguration *runCon sp.connParams.port = rc1->qmlDebugServerPort(); } else if (LocalApplicationRunConfiguration *rc2 = qobject_cast<LocalApplicationRunConfiguration *>(runConfiguration)) { - sp.startMode = StartLocal; sp.environment = rc2->environment(); sp.workingDirectory = rc2->workingDirectory(); sp.debuggee = rc2->executable(); @@ -101,15 +106,22 @@ RunControl *QmlProjectAnalyzerRunControlFactory::create(RunConfiguration *runCon sp.connParams.port = rc2->qmlDebugServerPort(); } else if (RemoteLinux::RemoteLinuxRunConfiguration *rc3 = qobject_cast<RemoteLinux::RemoteLinuxRunConfiguration *>(runConfiguration)) { - sp.startMode = StartRemote; sp.debuggee = rc3->remoteExecutableFilePath(); sp.debuggeeArgs = rc3->arguments(); sp.connParams = rc3->deviceConfig()->sshParameters(); sp.analyzerCmdPrefix = rc3->commandPrefix(); sp.displayName = rc3->displayName(); + } else if (Qt4ProjectManager::S60DeviceRunConfiguration *rc4 = + qobject_cast<Qt4ProjectManager::S60DeviceRunConfiguration *>(runConfiguration)) { + //sp.environment = rc4->environment(); + //sp.workingDirectory = rc4->workingDirectory(); + //sp.debuggee = rc4->executable(); + sp.debuggeeArgs = rc4->commandLineArguments(); + sp.displayName = rc4->displayName(); + sp.connParams.host = QLatin1String("localhost"); + sp.connParams.port = rc4->qmlDebugServerPort(); } else { - // Might be S60DeviceRunfiguration, or something else ... ? - //sp.startMode = StartRemote; + // What could that be? QTC_ASSERT(false, return 0); } -- GitLab