summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhjk <hjk121@nokiamail.com>2013-08-12 17:04:10 +0200
committerhjk <hjk121@nokiamail.com>2013-08-16 16:20:45 +0200
commit20d7d5e5b72cdb6d379729706087712eb3574e11 (patch)
treeabe72698e3fc1bfe2669da079c8ba91cfd00ca69
parent02105ddf62b40abae18c9155c376fdd6bf13991d (diff)
downloadqt-creator-20d7d5e5b72cdb6d379729706087712eb3574e11.tar.gz
ProjectExplorer/Analyzer: Merge RunConfigurationAspects
The Analyzer implementation is now simple and still generic enough to serve as general base. Change-Id: I050a21919bf128929b77a64da1f46d157691d849 Reviewed-by: Daniel Teske <daniel.teske@digia.com>
-rw-r--r--src/plugins/analyzerbase/analyzerbase.pro2
-rw-r--r--src/plugins/analyzerbase/analyzerbase.qbs2
-rw-r--r--src/plugins/analyzerbase/analyzermanager.cpp1
-rw-r--r--src/plugins/analyzerbase/analyzerrunconfigwidget.cpp6
-rw-r--r--src/plugins/analyzerbase/analyzerrunconfigwidget.h20
-rw-r--r--src/plugins/analyzerbase/analyzersettings.cpp117
-rw-r--r--src/plugins/analyzerbase/analyzersettings.h107
-rw-r--r--src/plugins/debugger/debuggermainwindow.cpp4
-rw-r--r--src/plugins/debugger/debuggerrunconfigurationaspect.cpp47
-rw-r--r--src/plugins/debugger/debuggerrunconfigurationaspect.h11
-rw-r--r--src/plugins/projectexplorer/environmentaspect.cpp12
-rw-r--r--src/plugins/projectexplorer/environmentaspect.h6
-rw-r--r--src/plugins/projectexplorer/localenvironmentaspect.cpp16
-rw-r--r--src/plugins/projectexplorer/localenvironmentaspect.h7
-rw-r--r--src/plugins/projectexplorer/runconfiguration.cpp92
-rw-r--r--src/plugins/projectexplorer/runconfiguration.h81
-rw-r--r--src/plugins/qmlprofiler/qmlprofilerruncontrolfactory.cpp1
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp9
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.h4
-rw-r--r--src/plugins/remotelinux/remotelinuxenvironmentaspect.cpp9
-rw-r--r--src/plugins/remotelinux/remotelinuxenvironmentaspect.h4
-rw-r--r--src/plugins/valgrind/callgrindtool.cpp4
-rw-r--r--src/plugins/valgrind/memcheckengine.cpp2
-rw-r--r--src/plugins/valgrind/memchecktool.cpp4
-rw-r--r--src/plugins/valgrind/valgrindengine.cpp4
-rw-r--r--src/plugins/valgrind/valgrindplugin.cpp4
-rw-r--r--src/plugins/valgrind/valgrindruncontrolfactory.cpp34
-rw-r--r--src/plugins/valgrind/valgrindsettings.h4
28 files changed, 235 insertions, 379 deletions
diff --git a/src/plugins/analyzerbase/analyzerbase.pro b/src/plugins/analyzerbase/analyzerbase.pro
index d47654ea8c..e734ffcb1c 100644
--- a/src/plugins/analyzerbase/analyzerbase.pro
+++ b/src/plugins/analyzerbase/analyzerbase.pro
@@ -11,7 +11,6 @@ SOURCES += \
analyzerplugin.cpp \
analyzerruncontrol.cpp \
analyzermanager.cpp \
- analyzersettings.cpp \
analyzerrunconfigwidget.cpp \
analyzerutils.cpp \
startremotedialog.cpp
@@ -23,7 +22,6 @@ HEADERS += \
analyzerplugin.h \
analyzerruncontrol.h \
analyzermanager.h \
- analyzersettings.h \
analyzerstartparameters.h \
analyzerrunconfigwidget.h \
analyzerutils.h \
diff --git a/src/plugins/analyzerbase/analyzerbase.qbs b/src/plugins/analyzerbase/analyzerbase.qbs
index d7db75e19a..47216b5aa4 100644
--- a/src/plugins/analyzerbase/analyzerbase.qbs
+++ b/src/plugins/analyzerbase/analyzerbase.qbs
@@ -24,8 +24,6 @@ QtcPlugin {
"analyzerrunconfigwidget.h",
"analyzerruncontrol.cpp",
"analyzerruncontrol.h",
- "analyzersettings.cpp",
- "analyzersettings.h",
"analyzerstartparameters.h",
"analyzerutils.cpp",
"analyzerutils.h",
diff --git a/src/plugins/analyzerbase/analyzermanager.cpp b/src/plugins/analyzerbase/analyzermanager.cpp
index c38ef6f9de..186d0f3a23 100644
--- a/src/plugins/analyzerbase/analyzermanager.cpp
+++ b/src/plugins/analyzerbase/analyzermanager.cpp
@@ -32,7 +32,6 @@
#include "analyzerplugin.h"
#include "ianalyzertool.h"
-#include "analyzersettings.h"
#include <coreplugin/coreconstants.h>
#include <coreplugin/findplaceholder.h>
diff --git a/src/plugins/analyzerbase/analyzerrunconfigwidget.cpp b/src/plugins/analyzerbase/analyzerrunconfigwidget.cpp
index 88a8103cae..65a24e6041 100644
--- a/src/plugins/analyzerbase/analyzerrunconfigwidget.cpp
+++ b/src/plugins/analyzerbase/analyzerrunconfigwidget.cpp
@@ -41,9 +41,8 @@
#include <QPushButton>
namespace Analyzer {
-namespace Internal {
-AnalyzerRunConfigWidget::AnalyzerRunConfigWidget(AnalyzerRunConfigurationAspect *aspect)
+AnalyzerRunConfigWidget::AnalyzerRunConfigWidget(ProjectExplorer::IRunConfigurationAspect *aspect)
{
m_aspect = aspect;
m_config = aspect->projectSettings();
@@ -106,8 +105,7 @@ void AnalyzerRunConfigWidget::chooseSettings(int setting)
void AnalyzerRunConfigWidget::restoreGlobal()
{
QTC_ASSERT(m_aspect, return);
- m_aspect->resetCustomToGlobalSettings();
+ m_aspect->resetProjectToGlobalSettings();
}
-} // namespace Internal
} // namespace Analyzer
diff --git a/src/plugins/analyzerbase/analyzerrunconfigwidget.h b/src/plugins/analyzerbase/analyzerrunconfigwidget.h
index 101647cc15..8db6670172 100644
--- a/src/plugins/analyzerbase/analyzerrunconfigwidget.h
+++ b/src/plugins/analyzerbase/analyzerrunconfigwidget.h
@@ -28,10 +28,12 @@
**
****************************************************************************/
-#ifndef ANALYZER_INTERNAL_ANALYZERRUNCONFIGWIDGET_H
-#define ANALYZER_INTERNAL_ANALYZERRUNCONFIGWIDGET_H
+#ifndef ANALYZERRUNCONFIGWIDGET_H
+#define ANALYZERRUNCONFIGWIDGET_H
-#include "analyzersettings.h"
+#include "analyzerbase_global.h"
+
+#include <projectexplorer/runconfiguration.h>
QT_BEGIN_NAMESPACE
class QComboBox;
@@ -41,14 +43,13 @@ QT_END_NAMESPACE
namespace Utils { class DetailsWidget; }
namespace Analyzer {
-namespace Internal {
-class AnalyzerRunConfigWidget : public ProjectExplorer::RunConfigWidget
+class ANALYZER_EXPORT AnalyzerRunConfigWidget : public ProjectExplorer::RunConfigWidget
{
Q_OBJECT
public:
- AnalyzerRunConfigWidget(AnalyzerRunConfigurationAspect *aspect);
+ AnalyzerRunConfigWidget(ProjectExplorer::IRunConfigurationAspect *aspect);
QString displayName() const;
@@ -58,14 +59,13 @@ private slots:
private:
QWidget *m_configWidget;
- AnalyzerRunConfigurationAspect *m_aspect;
- ISettingsAspect *m_config;
+ ProjectExplorer::IRunConfigurationAspect *m_aspect;
+ ProjectExplorer::ISettingsAspect *m_config;
QComboBox *m_settingsCombo;
QPushButton *m_restoreButton;
Utils::DetailsWidget *m_details;
};
-} // namespace Internal
} // namespace Analyzer
-#endif // ANALYZER_INTERNAL_ANALYZERRUNCONFIGWIDGET_H
+#endif // ANALYZERRUNCONFIGWIDGET_H
diff --git a/src/plugins/analyzerbase/analyzersettings.cpp b/src/plugins/analyzerbase/analyzersettings.cpp
deleted file mode 100644
index 41cb7752c3..0000000000
--- a/src/plugins/analyzerbase/analyzersettings.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-** Author: Milian Wolff, KDAB (milian.wolff@kdab.com)
-**
-** This file is part of Qt Creator.
-**
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** 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.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-****************************************************************************/
-
-#include "analyzersettings.h"
-
-#include "analyzermanager.h"
-#include "analyzerrunconfigwidget.h"
-#include "ianalyzertool.h"
-#include "analyzerplugin.h"
-
-#include <coreplugin/icore.h>
-#include <utils/qtcassert.h>
-
-#include <QSettings>
-
-using namespace Analyzer::Internal;
-
-static const char useGlobalC[] = "Analyzer.Project.UseGlobal";
-
-namespace Analyzer {
-
-ISettingsAspect *ISettingsAspect::clone() const
-{
- ISettingsAspect *other = create();
- QVariantMap data;
- toMap(data);
- other->fromMap(data);
- return other;
-}
-
-AnalyzerRunConfigurationAspect::AnalyzerRunConfigurationAspect(ISettingsAspect *projectSettings,
- ISettingsAspect *globalSettings)
-{
- m_useGlobalSettings = true;
- m_projectSettings = projectSettings;
- m_globalSettings = globalSettings;
-}
-
-ISettingsAspect *AnalyzerRunConfigurationAspect::currentSettings() const
-{
- return m_useGlobalSettings ? m_globalSettings : m_projectSettings;
-}
-
-AnalyzerRunConfigurationAspect::~AnalyzerRunConfigurationAspect()
-{
- delete m_projectSettings;
-}
-
-void AnalyzerRunConfigurationAspect::fromMap(const QVariantMap &map)
-{
- m_projectSettings->fromMap(map);
- m_useGlobalSettings = map.value(QLatin1String(useGlobalC), true).toBool();
-}
-
-void AnalyzerRunConfigurationAspect::toMap(QVariantMap &map) const
-{
- m_projectSettings->toMap(map);
- map.insert(QLatin1String(useGlobalC), m_useGlobalSettings);
-}
-
-AnalyzerRunConfigurationAspect *AnalyzerRunConfigurationAspect::clone(
- ProjectExplorer::RunConfiguration *parent) const
-{
- Q_UNUSED(parent)
- AnalyzerRunConfigurationAspect *other
- = new AnalyzerRunConfigurationAspect(m_projectSettings->clone(), m_globalSettings);
- other->m_useGlobalSettings = m_useGlobalSettings;
- return other;
-}
-
-void AnalyzerRunConfigurationAspect::setUsingGlobalSettings(bool value)
-{
- m_useGlobalSettings = value;
-}
-
-void AnalyzerRunConfigurationAspect::resetCustomToGlobalSettings()
-{
- ISettingsAspect *global = globalSettings();
- QTC_ASSERT(global, return);
- QVariantMap map;
- global->toMap(map);
- m_projectSettings->fromMap(map);
-}
-
-ProjectExplorer::RunConfigWidget *AnalyzerRunConfigurationAspect::createConfigurationWidget()
-{
- return new AnalyzerRunConfigWidget(this);
-}
-
-} // namespace Analyzer
diff --git a/src/plugins/analyzerbase/analyzersettings.h b/src/plugins/analyzerbase/analyzersettings.h
deleted file mode 100644
index 948701b186..0000000000
--- a/src/plugins/analyzerbase/analyzersettings.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-** Author: Milian Wolff, KDAB (milian.wolff@kdab.com)
-**
-** This file is part of Qt Creator.
-**
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** 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.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-****************************************************************************/
-
-#ifndef ANALYZER_INTERNAL_ANALYZERSETTINGS_H
-#define ANALYZER_INTERNAL_ANALYZERSETTINGS_H
-
-#include <QObject>
-
-#include "analyzerbase_global.h"
-
-#include <projectexplorer/runconfiguration.h>
-
-namespace Analyzer {
-
-/**
- * Subclass this to add configuration to your analyzer tool.
- *
- * If global and project-specific settings differ for your tool,
- * create one subclass for each.
- */
-class ANALYZER_EXPORT ISettingsAspect : public QObject
-{
- Q_OBJECT
-
-public:
- ISettingsAspect() {}
-
- /// Converts current object into map for storage.
- virtual void toMap(QVariantMap &map) const = 0;
- /// Read object state from @p map.
- virtual void fromMap(const QVariantMap &map) = 0;
-
- /// Create a configuration widget for this settings aspect.
- virtual QWidget *createConfigWidget(QWidget *parent) = 0;
- /// "Virtual default constructor"
- virtual ISettingsAspect *create() const = 0;
- /// "Virtual copy constructor"
- ISettingsAspect *clone() const;
-};
-
-
-/**
- * Settings associated with a single project/run configuration
- *
- */
-class ANALYZER_EXPORT AnalyzerRunConfigurationAspect
- : public ProjectExplorer::IRunConfigurationAspect
-{
- Q_OBJECT
-
-public:
- AnalyzerRunConfigurationAspect(ISettingsAspect *projectSettings,
- ISettingsAspect *globalSettings);
-
- ~AnalyzerRunConfigurationAspect();
-
- AnalyzerRunConfigurationAspect *clone(ProjectExplorer::RunConfiguration *parent) const;
-
- bool isUsingGlobalSettings() const { return m_useGlobalSettings; }
- void setUsingGlobalSettings(bool value);
- void resetCustomToGlobalSettings();
-
- ISettingsAspect *projectSettings() const { return m_projectSettings; }
- ISettingsAspect *globalSettings() const { return m_globalSettings; }
- ISettingsAspect *currentSettings() const;
- ProjectExplorer::RunConfigWidget *createConfigurationWidget();
-
-protected:
- void fromMap(const QVariantMap &map);
- void toMap(QVariantMap &map) const;
-
-private:
- bool m_useGlobalSettings;
- ISettingsAspect *m_projectSettings;
- ISettingsAspect *m_globalSettings;
-};
-
-} // namespace Analyzer
-
-#endif // ANALYZER_INTERNAL_ANALYZERSETTINGS_H
diff --git a/src/plugins/debugger/debuggermainwindow.cpp b/src/plugins/debugger/debuggermainwindow.cpp
index 68e2732857..7181d08baa 100644
--- a/src/plugins/debugger/debuggermainwindow.cpp
+++ b/src/plugins/debugger/debuggermainwindow.cpp
@@ -204,14 +204,14 @@ void DebuggerMainWindowPrivate::updateUiForRunConfiguration(RunConfiguration *rc
{
if (m_previousRunConfiguration)
disconnect(m_previousRunConfiguration->extraAspect<Debugger::DebuggerRunConfigurationAspect>(),
- SIGNAL(debuggersChanged()),
+ SIGNAL(requestRunActionsUpdate()),
this, SLOT(updateUiForCurrentRunConfiguration()));
m_previousRunConfiguration = rc;
updateUiForCurrentRunConfiguration();
if (!rc)
return;
connect(m_previousRunConfiguration->extraAspect<Debugger::DebuggerRunConfigurationAspect>(),
- SIGNAL(debuggersChanged()),
+ SIGNAL(requestRunActionsUpdate()),
SLOT(updateUiForCurrentRunConfiguration()));
}
diff --git a/src/plugins/debugger/debuggerrunconfigurationaspect.cpp b/src/plugins/debugger/debuggerrunconfigurationaspect.cpp
index 78d0f34555..90c4c1b248 100644
--- a/src/plugins/debugger/debuggerrunconfigurationaspect.cpp
+++ b/src/plugins/debugger/debuggerrunconfigurationaspect.cpp
@@ -194,48 +194,32 @@ void DebuggerRunConfigWidget::useMultiProcessToggled(bool on)
DebuggerRunConfigurationAspect::DebuggerRunConfigurationAspect(
ProjectExplorer::RunConfiguration *rc) :
- m_runConfiguration(rc),
+ IRunConfigurationAspect(rc),
m_useCppDebugger(AutoEnabledLanguage),
m_useQmlDebugger(AutoEnabledLanguage),
m_qmlDebugServerPort(Constants::QML_DEFAULT_DEBUG_SERVER_PORT),
m_useMultiProcess(false)
{
- ctor();
-}
-
-DebuggerRunConfigurationAspect::DebuggerRunConfigurationAspect(
- ProjectExplorer::RunConfiguration *runConfiguration,
- const DebuggerRunConfigurationAspect *other)
- : m_runConfiguration(runConfiguration),
- m_useCppDebugger(other->m_useCppDebugger),
- m_useQmlDebugger(other->m_useQmlDebugger),
- m_qmlDebugServerPort(other->m_qmlDebugServerPort),
- m_useMultiProcess(other->m_useMultiProcess)
-{
- ctor();
-}
-
-ProjectExplorer::RunConfiguration *DebuggerRunConfigurationAspect::runConfiguration()
-{
- return m_runConfiguration;
+ setId("DebuggerAspect");
+ setDisplayName(tr("Debugger settings"));
}
void DebuggerRunConfigurationAspect::setUseQmlDebugger(bool value)
{
m_useQmlDebugger = value ? EnabledLanguage : DisabledLanguage;
- emit debuggersChanged();
+ emit requestRunActionsUpdate();
}
void DebuggerRunConfigurationAspect::setUseCppDebugger(bool value)
{
m_useCppDebugger = value ? EnabledLanguage : DisabledLanguage;
- emit debuggersChanged();
+ emit requestRunActionsUpdate();
}
bool DebuggerRunConfigurationAspect::useCppDebugger() const
{
if (m_useCppDebugger == DebuggerRunConfigurationAspect::AutoEnabledLanguage)
- return m_runConfiguration->target()->project()->projectLanguages().contains(
+ return runConfiguration()->target()->project()->projectLanguages().contains(
ProjectExplorer::Constants::LANG_CXX);
return m_useCppDebugger == DebuggerRunConfigurationAspect::EnabledLanguage;
}
@@ -243,7 +227,7 @@ bool DebuggerRunConfigurationAspect::useCppDebugger() const
bool DebuggerRunConfigurationAspect::useQmlDebugger() const
{
if (m_useQmlDebugger == DebuggerRunConfigurationAspect::AutoEnabledLanguage)
- return m_runConfiguration->target()->project()->projectLanguages().contains(
+ return runConfiguration()->target()->project()->projectLanguages().contains(
ProjectExplorer::Constants::LANG_QMLJS);
return m_useQmlDebugger == DebuggerRunConfigurationAspect::EnabledLanguage;
}
@@ -270,7 +254,7 @@ void DebuggerRunConfigurationAspect::setUseMultiProcess(bool value)
bool DebuggerRunConfigurationAspect::isQmlDebuggingSpinboxSuppressed() const
{
- ProjectExplorer::Kit *k = m_runConfiguration->target()->kit();
+ ProjectExplorer::Kit *k = runConfiguration()->target()->kit();
ProjectExplorer::IDevice::ConstPtr dev = ProjectExplorer::DeviceKitInformation::device(k);
if (dev.isNull())
return false;
@@ -304,10 +288,10 @@ void DebuggerRunConfigurationAspect::fromMap(const QVariantMap &map)
m_useMultiProcess = map.value(QLatin1String(USE_MULTIPROCESS_KEY), false).toBool();
}
-DebuggerRunConfigurationAspect *DebuggerRunConfigurationAspect::clone(
- ProjectExplorer::RunConfiguration *parent) const
+DebuggerRunConfigurationAspect *DebuggerRunConfigurationAspect::create
+ (ProjectExplorer::RunConfiguration *runConfiguration) const
{
- return new DebuggerRunConfigurationAspect(parent, this);
+ return new DebuggerRunConfigurationAspect(runConfiguration);
}
ProjectExplorer::RunConfigWidget *DebuggerRunConfigurationAspect::createConfigurationWidget()
@@ -315,15 +299,6 @@ ProjectExplorer::RunConfigWidget *DebuggerRunConfigurationAspect::createConfigur
return new Internal::DebuggerRunConfigWidget(this);
}
-void DebuggerRunConfigurationAspect::ctor()
-{
- setId("DebuggerAspect");
- setDisplayName(tr("Debugger settings"));
-
- connect(this, SIGNAL(debuggersChanged()),
- m_runConfiguration, SIGNAL(requestRunActionsUpdate()));
-}
-
} // namespace Debugger
diff --git a/src/plugins/debugger/debuggerrunconfigurationaspect.h b/src/plugins/debugger/debuggerrunconfigurationaspect.h
index ed178da89f..ab1c53838c 100644
--- a/src/plugins/debugger/debuggerrunconfigurationaspect.h
+++ b/src/plugins/debugger/debuggerrunconfigurationaspect.h
@@ -45,8 +45,7 @@ class DEBUGGER_EXPORT DebuggerRunConfigurationAspect
public:
DebuggerRunConfigurationAspect(ProjectExplorer::RunConfiguration *runConfiguration);
- DebuggerRunConfigurationAspect(ProjectExplorer::RunConfiguration *runConfiguration,
- const DebuggerRunConfigurationAspect *other);
+ DebuggerRunConfigurationAspect *create(ProjectExplorer::RunConfiguration *runConfiguration) const;
enum DebuggerLanguageStatus {
DisabledLanguage = 0,
@@ -57,7 +56,6 @@ public:
void fromMap(const QVariantMap &map);
void toMap(QVariantMap &map) const;
- DebuggerRunConfigurationAspect *clone(ProjectExplorer::RunConfiguration *parent) const;
ProjectExplorer::RunConfigWidget *createConfigurationWidget();
bool useCppDebugger() const;
@@ -69,15 +67,8 @@ public:
bool useMultiProcess() const;
void setUseMultiProcess(bool on);
bool isQmlDebuggingSpinboxSuppressed() const;
- ProjectExplorer::RunConfiguration *runConfiguration();
-
-signals:
- void debuggersChanged();
private:
- void ctor();
-
- ProjectExplorer::RunConfiguration *m_runConfiguration;
DebuggerLanguageStatus m_useCppDebugger;
DebuggerLanguageStatus m_useQmlDebugger;
uint m_qmlDebugServerPort;
diff --git a/src/plugins/projectexplorer/environmentaspect.cpp b/src/plugins/projectexplorer/environmentaspect.cpp
index cb3e5b4409..058967acdb 100644
--- a/src/plugins/projectexplorer/environmentaspect.cpp
+++ b/src/plugins/projectexplorer/environmentaspect.cpp
@@ -43,21 +43,13 @@ namespace ProjectExplorer {
// EnvironmentAspect:
// --------------------------------------------------------------------
-EnvironmentAspect::EnvironmentAspect(RunConfiguration *rc) :
- m_base(-1),
- m_runConfiguration(rc)
+EnvironmentAspect::EnvironmentAspect(RunConfiguration *runConfig)
+ : IRunConfigurationAspect(runConfig), m_base(-1)
{
- QTC_CHECK(m_runConfiguration);
setDisplayName(tr("Run Environment"));
setId("EnvironmentAspect");
}
-EnvironmentAspect::EnvironmentAspect(const EnvironmentAspect *other, RunConfiguration *parent) :
- m_base(other->m_base),
- m_changes(other->m_changes),
- m_runConfiguration(parent)
-{ }
-
RunConfigWidget *EnvironmentAspect::createConfigurationWidget()
{
return new EnvironmentAspectWidget(this);
diff --git a/src/plugins/projectexplorer/environmentaspect.h b/src/plugins/projectexplorer/environmentaspect.h
index 3145490e6d..3200907ef9 100644
--- a/src/plugins/projectexplorer/environmentaspect.h
+++ b/src/plugins/projectexplorer/environmentaspect.h
@@ -49,8 +49,6 @@ public:
// IRunConfigurationAspect:
RunConfigWidget *createConfigurationWidget();
- virtual RunConfiguration *runConfiguration() const { return m_runConfiguration; }
-
virtual QList<int> possibleBaseEnvironments() const = 0;
virtual QString baseEnvironmentDisplayName(int base) const = 0;
@@ -69,15 +67,13 @@ signals:
void environmentChanged();
protected:
- EnvironmentAspect(const EnvironmentAspect *other, RunConfiguration *parent);
- EnvironmentAspect(RunConfiguration *rc);
+ explicit EnvironmentAspect(RunConfiguration *rc);
void fromMap(const QVariantMap &map);
void toMap(QVariantMap &map) const;
private:
mutable int m_base;
QList<Utils::EnvironmentItem> m_changes;
- RunConfiguration *m_runConfiguration;
};
} // namespace ProjectExplorer
diff --git a/src/plugins/projectexplorer/localenvironmentaspect.cpp b/src/plugins/projectexplorer/localenvironmentaspect.cpp
index 1ec0d7f489..faef642a17 100644
--- a/src/plugins/projectexplorer/localenvironmentaspect.cpp
+++ b/src/plugins/projectexplorer/localenvironmentaspect.cpp
@@ -88,22 +88,16 @@ void LocalEnvironmentAspect::buildEnvironmentHasChanged()
emit environmentChanged();
}
-LocalEnvironmentAspect::LocalEnvironmentAspect(RunConfiguration *rc) :
- EnvironmentAspect(rc)
+LocalEnvironmentAspect::LocalEnvironmentAspect(RunConfiguration *parent) :
+ EnvironmentAspect(parent)
{
- connect(rc->target(), SIGNAL(environmentChanged()),
+ connect(parent->target(), SIGNAL(environmentChanged()),
this, SLOT(buildEnvironmentHasChanged()));
}
-LocalEnvironmentAspect::LocalEnvironmentAspect(const LocalEnvironmentAspect *other,
- ProjectExplorer::RunConfiguration *parent) :
- EnvironmentAspect(other, parent)
-{ }
-
-LocalEnvironmentAspect *LocalEnvironmentAspect::clone(RunConfiguration *parent) const
+LocalEnvironmentAspect *LocalEnvironmentAspect::create(RunConfiguration *parent) const
{
- Q_UNUSED(parent);
- return new LocalEnvironmentAspect(this, parent);
+ return new LocalEnvironmentAspect(parent);
}
} // namespace ProjectExplorer
diff --git a/src/plugins/projectexplorer/localenvironmentaspect.h b/src/plugins/projectexplorer/localenvironmentaspect.h
index 5379b1db03..3aa3623ec4 100644
--- a/src/plugins/projectexplorer/localenvironmentaspect.h
+++ b/src/plugins/projectexplorer/localenvironmentaspect.h
@@ -39,9 +39,8 @@ class PROJECTEXPLORER_EXPORT LocalEnvironmentAspect : public EnvironmentAspect
Q_OBJECT
public:
- LocalEnvironmentAspect(RunConfiguration *rc);
-
- LocalEnvironmentAspect *clone(RunConfiguration *parent) const;
+ LocalEnvironmentAspect(RunConfiguration *parent);
+ LocalEnvironmentAspect *create(RunConfiguration *parent) const;
QList<int> possibleBaseEnvironments() const;
QString baseEnvironmentDisplayName(int base) const;
@@ -56,8 +55,6 @@ private:
SystemEnvironmentBase,
BuildEnvironmentBase
};
-
- LocalEnvironmentAspect(const LocalEnvironmentAspect *other, RunConfiguration *parent);
};
} // namespace ProjectExplorer
diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp
index a466d708d6..0a055eab3f 100644
--- a/src/plugins/projectexplorer/runconfiguration.cpp
+++ b/src/plugins/projectexplorer/runconfiguration.cpp
@@ -103,15 +103,99 @@ bool ProcessHandle::equals(const ProcessHandle &rhs) const
return m_pid == rhs.m_pid;
}
+///////////////////////////////////////////////////////////////////////
+//
+// ISettingsAspect
+//
+///////////////////////////////////////////////////////////////////////
+
+ISettingsAspect *ISettingsAspect::clone() const
+{
+ ISettingsAspect *other = create();
+ QVariantMap data;
+ toMap(data);
+ other->fromMap(data);
+ return other;
+}
+
+///////////////////////////////////////////////////////////////////////
+//
+// IRunConfigurationAspect
+//
+///////////////////////////////////////////////////////////////////////
+
+IRunConfigurationAspect::IRunConfigurationAspect(RunConfiguration *parent)
+{
+ m_runConfiguration = parent;
+ m_projectSettings = 0;
+ m_globalSettings = 0;
+ m_useGlobalSettings = false;
+ connect(this, SIGNAL(requestRunActionsUpdate()), parent, SIGNAL(requestRunActionsUpdate()));
+}
+
+IRunConfigurationAspect::~IRunConfigurationAspect()
+{
+ delete m_projectSettings;
+}
/*!
\brief Returns the widget used to configure this run configuration. Ownership is transferred to the caller
*/
+
RunConfigWidget *IRunConfigurationAspect::createConfigurationWidget()
{
return 0;
}
+void IRunConfigurationAspect::setProjectSettings(ISettingsAspect *settings)
+{
+ m_projectSettings = settings;
+}
+
+void IRunConfigurationAspect::setGlobalSettings(ISettingsAspect *settings)
+{
+ m_globalSettings = settings;
+}
+
+void IRunConfigurationAspect::setUsingGlobalSettings(bool value)
+{
+ m_useGlobalSettings = value;
+}
+
+ISettingsAspect *IRunConfigurationAspect::currentSettings() const
+{
+ return m_useGlobalSettings ? m_globalSettings : m_projectSettings;
+}
+
+void IRunConfigurationAspect::fromMap(const QVariantMap &map)
+{
+ m_projectSettings->fromMap(map);
+ m_useGlobalSettings = map.value(m_id.toString() + QLatin1String(".UseGlobalSettings"), true).toBool();
+}
+
+void IRunConfigurationAspect::toMap(QVariantMap &map) const
+{
+ m_projectSettings->toMap(map);
+ map.insert(m_id.toString() + QLatin1String(".UseGlobalSettings"), m_useGlobalSettings);
+}
+
+IRunConfigurationAspect *IRunConfigurationAspect::clone(RunConfiguration *parent) const
+{
+ IRunConfigurationAspect *other = create(parent);
+ other->m_projectSettings = m_projectSettings->clone();
+ other->m_globalSettings = m_globalSettings;
+ other->m_useGlobalSettings = m_useGlobalSettings;
+ return other;
+}
+
+void IRunConfigurationAspect::resetProjectToGlobalSettings()
+{
+ QTC_ASSERT(m_globalSettings, return);
+ QVariantMap map;
+ m_globalSettings->toMap(map);
+ m_projectSettings->fromMap(map);
+}
+
/*!
\class ProjectExplorer::RunConfiguration
@@ -272,6 +356,14 @@ QList<IRunConfigurationAspect *> RunConfiguration::extraAspects() const
QTC_ASSERT(m_aspectsInitialized, return QList<IRunConfigurationAspect *>());
return m_aspects;
}
+IRunConfigurationAspect *RunConfiguration::extraAspect(Core::Id id) const
+{
+ QTC_ASSERT(m_aspectsInitialized, return 0);
+ foreach (IRunConfigurationAspect *aspect, m_aspects)
+ if (aspect->id() == id)
+ return aspect;
+ return 0;
+}
Utils::OutputFormatter *RunConfiguration::createOutputFormatter() const
{
diff --git a/src/plugins/projectexplorer/runconfiguration.h b/src/plugins/projectexplorer/runconfiguration.h
index 6e91335394..583ed05988 100644
--- a/src/plugins/projectexplorer/runconfiguration.h
+++ b/src/plugins/projectexplorer/runconfiguration.h
@@ -47,6 +47,7 @@ namespace Utils { class OutputFormatter; }
namespace ProjectExplorer {
class Abi;
class BuildConfiguration;
+class IRunConfigurationAspect;
class RunConfiguration;
class RunConfigWidget;
class RunControl;
@@ -72,29 +73,85 @@ private:
inline bool operator==(const ProcessHandle &p1, const ProcessHandle &p2) { return p1.equals(p2); }
inline bool operator!=(const ProcessHandle &p1, const ProcessHandle &p2) { return !p1.equals(p2); }
+/**
+ * An interface for a hunk of global or per-project
+ * configuration data.
+ *
+ */
+
+class PROJECTEXPLORER_EXPORT ISettingsAspect : public QObject
+{
+ Q_OBJECT
+
+public:
+ ISettingsAspect() {}
+
+ /// Create a configuration widget for this settings aspect.
+ virtual QWidget *createConfigWidget(QWidget *parent) = 0;
+ /// "Virtual default constructor"
+ virtual ISettingsAspect *create() const = 0;
+ /// "Virtual copy constructor"
+ ISettingsAspect *clone() const;
+
+protected:
+ ///
+ friend class IRunConfigurationAspect;
+ /// Converts current object into map for storage.
+ virtual void toMap(QVariantMap &map) const = 0;
+ /// Read object state from @p map.
+ virtual void fromMap(const QVariantMap &map) = 0;
+};
+
+
+/**
+ * An interface to facilitate switching between hunks of
+ * global and per-project configuration data.
+ *
+ */
+
class PROJECTEXPLORER_EXPORT IRunConfigurationAspect : public QObject
{
Q_OBJECT
public:
- virtual ~IRunConfigurationAspect() {}
- virtual IRunConfigurationAspect *clone(RunConfiguration *parent) const = 0;
+ explicit IRunConfigurationAspect(RunConfiguration *parent);
+ ~IRunConfigurationAspect();
+
+ virtual IRunConfigurationAspect *create(RunConfiguration *parent) const = 0;
+ virtual IRunConfigurationAspect *clone(RunConfiguration *parent) const;
virtual RunConfigWidget *createConfigurationWidget();
- QString displayName() const { return m_displayName; }
+ void setId(Core::Id id) { m_id = id; }
void setDisplayName(const QString &displayName) { m_displayName = displayName; }
+ void setProjectSettings(ISettingsAspect *settings);
+ void setGlobalSettings(ISettingsAspect *settings);
- void setId(Core::Id id) { m_id = id; }
+ QString displayName() const { return m_displayName; }
Core::Id id() const { return m_id; }
+ bool isUsingGlobalSettings() const { return m_useGlobalSettings; }
+ void setUsingGlobalSettings(bool value);
+ void resetProjectToGlobalSettings();
+
+ ISettingsAspect *projectSettings() const { return m_projectSettings; }
+ ISettingsAspect *globalSettings() const { return m_globalSettings; }
+ ISettingsAspect *currentSettings() const;
+ RunConfiguration *runConfiguration() const { return m_runConfiguration; }
+
+signals:
+ void requestRunActionsUpdate();
protected:
friend class RunConfiguration;
- virtual void fromMap(const QVariantMap &map) = 0;
- virtual void toMap(QVariantMap &data) const = 0;
+ virtual void fromMap(const QVariantMap &map);
+ virtual void toMap(QVariantMap &data) const;
private:
- QString m_displayName;
Core::Id m_id;
+ QString m_displayName;
+ bool m_useGlobalSettings;
+ RunConfiguration *m_runConfiguration;
+ ISettingsAspect *m_projectSettings; // Owned if present.
+ ISettingsAspect *m_globalSettings; // Not owned.
};
// Documentation inside.
@@ -120,6 +177,7 @@ public:
QVariantMap toMap() const;
QList<IRunConfigurationAspect *> extraAspects() const;
+ IRunConfigurationAspect *extraAspect(Core::Id id) const;
template <typename T> T *extraAspect() const
{
@@ -130,15 +188,6 @@ public:
return 0;
}
- template <typename T> T *extraAspect(Core::Id id) const
- {
- QTC_ASSERT(m_aspectsInitialized, return 0);
- foreach (IRunConfigurationAspect *aspect, m_aspects)
- if (aspect->id() == id)
- return qobject_cast<T *>(aspect);
- return 0;
- }
-
virtual ProjectExplorer::Abi abi() const;
void addExtraAspects();
diff --git a/src/plugins/qmlprofiler/qmlprofilerruncontrolfactory.cpp b/src/plugins/qmlprofiler/qmlprofilerruncontrolfactory.cpp
index 86f0583e81..499bb75141 100644
--- a/src/plugins/qmlprofiler/qmlprofilerruncontrolfactory.cpp
+++ b/src/plugins/qmlprofiler/qmlprofilerruncontrolfactory.cpp
@@ -35,7 +35,6 @@
#include <analyzerbase/analyzermanager.h>
#include <analyzerbase/analyzerstartparameters.h>
#include <analyzerbase/analyzerruncontrol.h>
-#include <analyzerbase/analyzersettings.h>
#include <debugger/debuggerrunconfigurationaspect.h>
diff --git a/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp b/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp
index 406e906e76..cef5dfeee4 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp
@@ -58,14 +58,9 @@ QmlProjectEnvironmentAspect::QmlProjectEnvironmentAspect(ProjectExplorer::RunCon
ProjectExplorer::EnvironmentAspect(rc)
{ }
-QmlProjectEnvironmentAspect *QmlProjectEnvironmentAspect::clone(ProjectExplorer::RunConfiguration *parent) const
+QmlProjectEnvironmentAspect *QmlProjectEnvironmentAspect::create(ProjectExplorer::RunConfiguration *parent) const
{
- return new QmlProjectEnvironmentAspect(this, parent);
+ return new QmlProjectEnvironmentAspect(parent);
}
-QmlProjectEnvironmentAspect::QmlProjectEnvironmentAspect(const QmlProjectManager::QmlProjectEnvironmentAspect *other,
- ProjectExplorer::RunConfiguration *parent) :
- ProjectExplorer::EnvironmentAspect(other, parent)
-{ }
-
} // namespace QmlProjectManager
diff --git a/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.h b/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.h
index a0f806ee03..6b6e464f67 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.h
+++ b/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.h
@@ -42,7 +42,7 @@ class QmlProjectEnvironmentAspect : public ProjectExplorer::EnvironmentAspect
public:
QmlProjectEnvironmentAspect(ProjectExplorer::RunConfiguration *rc);
- QmlProjectEnvironmentAspect *clone(ProjectExplorer::RunConfiguration *parent) const;
+ QmlProjectEnvironmentAspect *create(ProjectExplorer::RunConfiguration *parent) const;
QList<int> possibleBaseEnvironments() const;
QString baseEnvironmentDisplayName(int base) const;
@@ -52,8 +52,6 @@ private:
enum BaseEnvironmentBase {
SystemEnvironmentBase = 0
};
-
- QmlProjectEnvironmentAspect(const QmlProjectEnvironmentAspect *other, ProjectExplorer::RunConfiguration *parent);
};
} // namespace QmlProjectManager
diff --git a/src/plugins/remotelinux/remotelinuxenvironmentaspect.cpp b/src/plugins/remotelinux/remotelinuxenvironmentaspect.cpp
index 70b3da4884..11679b42aa 100644
--- a/src/plugins/remotelinux/remotelinuxenvironmentaspect.cpp
+++ b/src/plugins/remotelinux/remotelinuxenvironmentaspect.cpp
@@ -41,9 +41,9 @@ RemoteLinuxEnvironmentAspect::RemoteLinuxEnvironmentAspect(ProjectExplorer::RunC
ProjectExplorer::EnvironmentAspect(rc)
{ }
-RemoteLinuxEnvironmentAspect *RemoteLinuxEnvironmentAspect::clone(ProjectExplorer::RunConfiguration *parent) const
+RemoteLinuxEnvironmentAspect *RemoteLinuxEnvironmentAspect::create(ProjectExplorer::RunConfiguration *parent) const
{
- return new RemoteLinuxEnvironmentAspect(this, parent);
+ return new RemoteLinuxEnvironmentAspect(parent);
}
ProjectExplorer::RunConfigWidget *RemoteLinuxEnvironmentAspect::createConfigurationWidget()
@@ -101,10 +101,5 @@ QString RemoteLinuxEnvironmentAspect::userEnvironmentChangesAsString() const
return env.mid(0, env.size() - 1);
}
-RemoteLinuxEnvironmentAspect::RemoteLinuxEnvironmentAspect(const RemoteLinuxEnvironmentAspect *other,
- ProjectExplorer::RunConfiguration *parent) :
- ProjectExplorer::EnvironmentAspect(other, parent)
-{ }
-
} // namespace RemoteLinux
diff --git a/src/plugins/remotelinux/remotelinuxenvironmentaspect.h b/src/plugins/remotelinux/remotelinuxenvironmentaspect.h
index c177034360..ae1ac201c7 100644
--- a/src/plugins/remotelinux/remotelinuxenvironmentaspect.h
+++ b/src/plugins/remotelinux/remotelinuxenvironmentaspect.h
@@ -46,7 +46,7 @@ class REMOTELINUX_EXPORT RemoteLinuxEnvironmentAspect : public ProjectExplorer::
public:
RemoteLinuxEnvironmentAspect(ProjectExplorer::RunConfiguration *rc);
- RemoteLinuxEnvironmentAspect *clone(ProjectExplorer::RunConfiguration *parent) const;
+ RemoteLinuxEnvironmentAspect *create(ProjectExplorer::RunConfiguration *parent) const;
ProjectExplorer::RunConfigWidget *createConfigurationWidget();
QList<int> possibleBaseEnvironments() const;
@@ -66,8 +66,6 @@ private:
RemoteBaseEnvironment = 1
};
- RemoteLinuxEnvironmentAspect(const RemoteLinuxEnvironmentAspect *other, ProjectExplorer::RunConfiguration *parent);
-
Utils::Environment m_remoteEnvironment;
};
diff --git a/src/plugins/valgrind/callgrindtool.cpp b/src/plugins/valgrind/callgrindtool.cpp
index 4f3ede6c26..b72f3c5690 100644
--- a/src/plugins/valgrind/callgrindtool.cpp
+++ b/src/plugins/valgrind/callgrindtool.cpp
@@ -47,7 +47,6 @@
#include <valgrind/valgrindsettings.h>
#include <analyzerbase/analyzermanager.h>
-#include <analyzerbase/analyzersettings.h>
#include <analyzerbase/analyzerutils.h>
#include <analyzerbase/analyzerconstants.h>
@@ -546,8 +545,7 @@ AnalyzerRunControl *CallgrindToolPrivate::createRunControl(const AnalyzerStartPa
// apply project settings
if (runConfiguration) {
- if (AnalyzerRunConfigurationAspect *analyzerAspect
- = runConfiguration->extraAspect<AnalyzerRunConfigurationAspect>(ANALYZER_VALGRIND_SETTINGS)) {
+ if (IRunConfigurationAspect *analyzerAspect = runConfiguration->extraAspect(ANALYZER_VALGRIND_SETTINGS)) {
if (const ValgrindBaseSettings *settings = qobject_cast<ValgrindBaseSettings *>(analyzerAspect->currentSettings())) {
m_visualisation->setMinimumInclusiveCostRatio(settings->visualisationMinimumInclusiveCostRatio() / 100.0);
m_proxyModel->setMinimumInclusiveCostRatio(settings->minimumInclusiveCostRatio() / 100.0);
diff --git a/src/plugins/valgrind/memcheckengine.cpp b/src/plugins/valgrind/memcheckengine.cpp
index a5d2209be5..fe78deed69 100644
--- a/src/plugins/valgrind/memcheckengine.cpp
+++ b/src/plugins/valgrind/memcheckengine.cpp
@@ -32,8 +32,6 @@
#include "valgrindsettings.h"
-#include <analyzerbase/analyzersettings.h>
-
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/taskhub.h>
diff --git a/src/plugins/valgrind/memchecktool.cpp b/src/plugins/valgrind/memchecktool.cpp
index 84fbea3cbb..2eb6f8f2a3 100644
--- a/src/plugins/valgrind/memchecktool.cpp
+++ b/src/plugins/valgrind/memchecktool.cpp
@@ -231,8 +231,8 @@ void MemcheckTool::maybeActiveRunConfigurationChanged()
if (Project *project = pe->startupProject())
if (Target *target = project->activeTarget())
if (RunConfiguration *rc = target->activeRunConfiguration())
- if (AnalyzerRunConfigurationAspect *aspect = rc->extraAspect<AnalyzerRunConfigurationAspect>(ANALYZER_VALGRIND_SETTINGS))
- settings = qobject_cast<ValgrindBaseSettings *>(aspect->projectSettings());
+ if (IRunConfigurationAspect *aspect = rc->extraAspect(ANALYZER_VALGRIND_SETTINGS))
+ settings = qobject_cast<ValgrindBaseSettings *>(aspect->currentSettings());
if (!settings) // fallback to global settings
settings = ValgrindPlugin::globalSettings();
diff --git a/src/plugins/valgrind/valgrindengine.cpp b/src/plugins/valgrind/valgrindengine.cpp
index 4118182154..a3aa132e95 100644
--- a/src/plugins/valgrind/valgrindengine.cpp
+++ b/src/plugins/valgrind/valgrindengine.cpp
@@ -64,8 +64,8 @@ ValgrindRunControl::ValgrindRunControl(const AnalyzerStartParameters &sp,
m_isStopping(false)
{
if (runConfiguration)
- if (AnalyzerRunConfigurationAspect *aspect = runConfiguration->extraAspect<AnalyzerRunConfigurationAspect>(ANALYZER_VALGRIND_SETTINGS))
- m_settings = qobject_cast<ValgrindBaseSettings *>(aspect->projectSettings());
+ if (IRunConfigurationAspect *aspect = runConfiguration->extraAspect(ANALYZER_VALGRIND_SETTINGS))
+ m_settings = qobject_cast<ValgrindBaseSettings *>(aspect->currentSettings());
if (!m_settings)
m_settings = ValgrindPlugin::globalSettings();
diff --git a/src/plugins/valgrind/valgrindplugin.cpp b/src/plugins/valgrind/valgrindplugin.cpp
index c2711b46f3..312a43382b 100644
--- a/src/plugins/valgrind/valgrindplugin.cpp
+++ b/src/plugins/valgrind/valgrindplugin.cpp
@@ -34,9 +34,9 @@
#include "memchecktool.h"
#include "valgrindruncontrolfactory.h"
#include "valgrindsettings.h"
+#include "valgrindconfigwidget.h"
#include <analyzerbase/analyzermanager.h>
-#include <analyzerbase/analyzersettings.h>
#include <coreplugin/dialogs/ioptionspage.h>
#include <coreplugin/actionmanager/actioncontainer.h>
@@ -73,7 +73,7 @@ public:
}
QWidget *createPage(QWidget *parent) {
- return theGlobalSettings->createConfigWidget(parent);
+ return new ValgrindConfigWidget(theGlobalSettings, parent, true);
}
void apply() {
diff --git a/src/plugins/valgrind/valgrindruncontrolfactory.cpp b/src/plugins/valgrind/valgrindruncontrolfactory.cpp
index e0eb4fb802..0e087c5204 100644
--- a/src/plugins/valgrind/valgrindruncontrolfactory.cpp
+++ b/src/plugins/valgrind/valgrindruncontrolfactory.cpp
@@ -35,7 +35,7 @@
#include <analyzerbase/analyzermanager.h>
#include <analyzerbase/analyzerstartparameters.h>
#include <analyzerbase/analyzerruncontrol.h>
-#include <analyzerbase/analyzersettings.h>
+#include <analyzerbase/analyzerrunconfigwidget.h>
#include <remotelinux/remotelinuxrunconfiguration.h>
@@ -108,14 +108,34 @@ RunControl *ValgrindRunControlFactory::create(RunConfiguration *runConfiguration
return AnalyzerManager::createRunControl(sp, runConfiguration);
}
+
+class ValgrindRunConfigurationAspect : public IRunConfigurationAspect
+{
+public:
+ ValgrindRunConfigurationAspect(RunConfiguration *parent)
+ : IRunConfigurationAspect(parent)
+ {
+ setProjectSettings(new ValgrindProjectSettings());
+ setGlobalSettings(ValgrindPlugin::globalSettings());
+ setId(ANALYZER_VALGRIND_SETTINGS);
+ setDisplayName(tr("Valgrind Settings"));
+ }
+
+ IRunConfigurationAspect *create(RunConfiguration *parent) const
+ {
+ return new ValgrindRunConfigurationAspect(parent);
+ }
+
+ RunConfigWidget *createConfigurationWidget()
+ {
+ return new Analyzer::AnalyzerRunConfigWidget(this);
+
+ }
+};
+
IRunConfigurationAspect *ValgrindRunControlFactory::createRunConfigurationAspect(RunConfiguration *rc)
{
- Q_UNUSED(rc);
- IRunConfigurationAspect *aspect
- = new AnalyzerRunConfigurationAspect(new ValgrindProjectSettings(), ValgrindPlugin::globalSettings());
- aspect->setId(ANALYZER_VALGRIND_SETTINGS);
- aspect->setDisplayName(tr("Valgrind Settings"));
- return aspect;
+ return new ValgrindRunConfigurationAspect(rc);
}
} // namespace Internal
diff --git a/src/plugins/valgrind/valgrindsettings.h b/src/plugins/valgrind/valgrindsettings.h
index cd2494cced..e090e6e621 100644
--- a/src/plugins/valgrind/valgrindsettings.h
+++ b/src/plugins/valgrind/valgrindsettings.h
@@ -31,8 +31,8 @@
#ifndef ANALYZER_INTERNAL_VALGRINDSETTINGS_H
#define ANALYZER_INTERNAL_VALGRINDSETTINGS_H
-#include <analyzerbase/analyzersettings.h>
#include "callgrindcostdelegate.h"
+#include <projectexplorer/runconfiguration.h>
#include <QObject>
#include <QString>
@@ -46,7 +46,7 @@ const char ANALYZER_VALGRIND_SETTINGS[] = "Analyzer.Valgrind.Settings";
/**
* Valgrind settings shared for global and per-project.
*/
-class ValgrindBaseSettings : public Analyzer::ISettingsAspect
+class ValgrindBaseSettings : public ProjectExplorer::ISettingsAspect
{
Q_OBJECT