diff options
author | Nicolas Arnaud-Cormos <nicolas@kdab.com> | 2012-02-04 17:15:04 +0100 |
---|---|---|
committer | Nicolas Arnaud-Cormos <nicolas@kdab.com> | 2012-02-04 17:15:04 +0100 |
commit | d2139f1a4b0f43d27a3a40d43a1f9e9da1d33fb8 (patch) | |
tree | 51fb16fed1f37fd8dc659e1dc7df6503998780b7 /gammarayruncontrolfactory.cpp |
Initialize the GammaRay plugin
Change-Id: If53d20d304eada50c9415e08f2ab0ee800e23ada
Diffstat (limited to 'gammarayruncontrolfactory.cpp')
-rw-r--r-- | gammarayruncontrolfactory.cpp | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/gammarayruncontrolfactory.cpp b/gammarayruncontrolfactory.cpp new file mode 100644 index 0000000..25622a9 --- /dev/null +++ b/gammarayruncontrolfactory.cpp @@ -0,0 +1,109 @@ +/************************************************************************** +** +** This file is part of Qt Creator Instrumentation Tools +** +** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies). +** +** Author: Milian Wolff, KDAB (milian.wolff@kdab.com) +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ + +#include "gammarayruncontrolfactory.h" + +#include "gammarayconstants.h" + +#include <utils/qtcassert.h> + +#include <analyzerbase/analyzerstartparameters.h> +#include <analyzerbase/analyzerruncontrol.h> +#include <analyzerbase/analyzermanager.h> +#include <analyzerbase/analyzersettings.h> +#include <analyzerbase/analyzerrunconfigwidget.h> + +#include <projectexplorer/applicationrunconfiguration.h> + +using namespace Gammaray; +using namespace ProjectExplorer; +using namespace Analyzer; + +GammarayRunControlFactory::GammarayRunControlFactory(QObject *parent) + : IRunControlFactory(parent) +{ + setObjectName(QLatin1String("GammarayRuncontrolFactory")); +} + +QString GammarayRunControlFactory::displayName() const +{ + return tr("Gammaray"); +} + +bool GammarayRunControlFactory::canRun(RunConfiguration *runConfiguration, + const QString &mode) const +{ + return + mode == Constants::RUNMODE && + dynamic_cast<LocalApplicationRunConfiguration*>(runConfiguration); +} + +RunControl *GammarayRunControlFactory::create(RunConfiguration *runConfiguration, + const QString &mode) +{ + QTC_ASSERT(canRun(runConfiguration, mode), return 0); + + AnalyzerStartParameters sp; + sp.toolId = Constants::TOOLID; + sp.startMode = StartLocal; + + LocalApplicationRunConfiguration *rc = + dynamic_cast<LocalApplicationRunConfiguration*>(runConfiguration); + sp.environment = rc->environment(); + sp.workingDirectory = rc->workingDirectory(); + sp.debuggee = rc->executable(); + sp.debuggeeArgs = rc->commandLineArguments(); + sp.displayName = rc->displayName(); + + IAnalyzerTool *tool = AnalyzerManager::toolFromId(Constants::TOOLID); + AnalyzerRunControl *ret = new AnalyzerRunControl(tool, sp, runConfiguration); + /// TODO + // QObject::connect(AnalyzerManager::stopAction(), SIGNAL(triggered()), rc, SLOT(stopIt())); + return ret; +} + +RunConfigWidget * +GammarayRunControlFactory::createConfigurationWidget(RunConfiguration *runConfiguration) +{ + AnalyzerProjectSettings *settings = runConfiguration->extraAspect<AnalyzerProjectSettings>(); + if (!settings) { + return 0; + } + + AnalyzerRunConfigWidget *ret = new Analyzer::AnalyzerRunConfigWidget; + ret->setRunConfiguration(runConfiguration); + return ret; +} + +IRunConfigurationAspect *GammarayRunControlFactory::createRunConfigurationAspect() +{ + return new AnalyzerProjectSettings; +} |