aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cmakeprojectmanager
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2020-09-08 14:53:15 +0200
committerhjk <hjk@qt.io>2020-09-09 06:50:17 +0000
commit4964d0bf81029a5d1b9f48c2a24b3fb23ae4b4aa (patch)
tree0c997a05899bf241a8d3726d3f0eccef8d81400f /src/plugins/cmakeprojectmanager
parent61bfd3243809b6a5e6cc77f49d96565dfb2d383e (diff)
CMake: Use StringAspect for cmake arguments
Change-Id: I18e9af5f630a2b0a11a427848368c9f980819717 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins/cmakeprojectmanager')
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildstep.cpp85
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildstep.h15
2 files changed, 32 insertions, 68 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp
index f394f8ff16a..0613772d4f0 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp
@@ -44,8 +44,6 @@
#include <utils/algorithm.h>
#include <QBoxLayout>
-#include <QFormLayout>
-#include <QLineEdit>
#include <QListWidget>
#include <QRegularExpression>
@@ -117,15 +115,11 @@ public:
private:
void itemsChanged();
- void cmakeArgumentsEdited();
- void toolArgumentsEdited();
void updateDetails();
void buildTargetsChanged();
void updateBuildTargets();
CMakeBuildStep *m_buildStep;
- QLineEdit *m_cmakeArguments;
- QLineEdit *m_toolArguments;
QListWidget *m_buildTargetsList;
};
@@ -140,6 +134,16 @@ CMakeBuildStep::CMakeBuildStep(BuildStepList *bsl, Utils::Id id) :
//: Default display name for the cmake make step.
setDefaultDisplayName(tr("CMake Build"));
+ m_cmakeArguments = addAspect<StringAspect>();
+ m_cmakeArguments->setSettingsKey(CMAKE_ARGUMENTS_KEY);
+ m_cmakeArguments->setLabelText(tr("CMake arguments:"));
+ m_cmakeArguments->setDisplayStyle(StringAspect::LineEditDisplay);
+
+ m_toolArguments = addAspect<StringAspect>();
+ m_toolArguments->setSettingsKey(TOOL_ARGUMENTS_KEY);
+ m_toolArguments->setLabelText(tr("Tool arguments:"));
+ m_toolArguments->setDisplayStyle(StringAspect::LineEditDisplay);
+
// Set a good default build target:
if (m_buildTargets.isEmpty())
setBuildTargets({defaultBuildTarget()});
@@ -182,16 +186,12 @@ QVariantMap CMakeBuildStep::toMap() const
QVariantMap map(AbstractProcessStep::toMap());
// Use QStringList for compatibility with old files
map.insert(BUILD_TARGETS_KEY, QStringList(m_buildTargets));
- map.insert(CMAKE_ARGUMENTS_KEY, m_cmakeArguments);
- map.insert(TOOL_ARGUMENTS_KEY, m_toolArguments);
return map;
}
bool CMakeBuildStep::fromMap(const QVariantMap &map)
{
m_buildTargets = map.value(BUILD_TARGETS_KEY).toStringList();
- m_cmakeArguments = map.value(CMAKE_ARGUMENTS_KEY).toString();
- m_toolArguments = map.value(TOOL_ARGUMENTS_KEY).toString();
if (map.value(ADD_RUNCONFIGURATION_ARGUMENT_KEY, false).toBool())
m_buildTargets = QStringList(ADD_RUNCONFIGURATION_TEXT);
@@ -348,26 +348,6 @@ void CMakeBuildStep::setBuildTargets(const QStringList &buildTargets)
emit targetsToBuildChanged();
}
-QString CMakeBuildStep::cmakeArguments() const
-{
- return m_cmakeArguments;
-}
-
-void CMakeBuildStep::setCMakeArguments(const QString &list)
-{
- m_cmakeArguments = list;
-}
-
-QString CMakeBuildStep::toolArguments() const
-{
- return m_toolArguments;
-}
-
-void CMakeBuildStep::setToolArguments(const QString &list)
-{
- m_toolArguments = list;
-}
-
Utils::CommandLine CMakeBuildStep::cmakeCommand(RunConfiguration *rc) const
{
CMakeTool *tool = CMakeKitAspect::cmakeTool(kit());
@@ -392,12 +372,12 @@ Utils::CommandLine CMakeBuildStep::cmakeCommand(RunConfiguration *rc) const
return target;
}));
- if (!m_cmakeArguments.isEmpty())
- cmd.addArgs(m_cmakeArguments, Utils::CommandLine::Raw);
+ if (!m_cmakeArguments->value().isEmpty())
+ cmd.addArgs(m_cmakeArguments->value(), CommandLine::Raw);
- if (!m_toolArguments.isEmpty()) {
+ if (!m_toolArguments->value().isEmpty()) {
cmd.addArg("--");
- cmd.addArgs(m_toolArguments, Utils::CommandLine::Raw);
+ cmd.addArgs(m_toolArguments->value(), CommandLine::Raw);
}
return cmd;
@@ -441,21 +421,13 @@ QStringList CMakeBuildStep::specialTargets()
CMakeBuildStepConfigWidget::CMakeBuildStepConfigWidget(CMakeBuildStep *buildStep)
: BuildStepConfigWidget(buildStep)
, m_buildStep(buildStep)
- , m_cmakeArguments(new QLineEdit)
- , m_toolArguments(new QLineEdit)
, m_buildTargetsList(new QListWidget)
{
setDisplayName(tr("Build", "CMakeProjectManager::CMakeBuildStepConfigWidget display name."));
- auto fl = new QFormLayout(this);
- fl->setContentsMargins(0, 0, 0, 0);
- fl->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);
- setLayout(fl);
-
- fl->addRow(tr("CMake arguments:"), m_cmakeArguments);
- m_cmakeArguments->setText(m_buildStep->cmakeArguments());
- fl->addRow(tr("Tool arguments:"), m_toolArguments);
- m_toolArguments->setText(m_buildStep->toolArguments());
+ LayoutBuilder builder(this);
+ builder.addRow(buildStep->m_cmakeArguments);
+ builder.addRow(buildStep->m_toolArguments);
m_buildTargetsList->setFrameStyle(QFrame::NoFrame);
m_buildTargetsList->setMinimumHeight(200);
@@ -467,14 +439,18 @@ CMakeBuildStepConfigWidget::CMakeBuildStepConfigWidget(CMakeBuildStep *buildStep
frameLayout->addWidget(Core::ItemViewFind::createSearchableWrapper(m_buildTargetsList,
Core::ItemViewFind::LightColored));
- fl->addRow(tr("Targets:"), frame);
+ builder.startNewRow().addItems(tr("Targets:"), frame);
buildTargetsChanged();
updateDetails();
- connect(m_cmakeArguments, &QLineEdit::textEdited, this, &CMakeBuildStepConfigWidget::cmakeArgumentsEdited);
- connect(m_toolArguments, &QLineEdit::textEdited, this, &CMakeBuildStepConfigWidget::toolArgumentsEdited);
- connect(m_buildTargetsList, &QListWidget::itemChanged, this, &CMakeBuildStepConfigWidget::itemsChanged);
+ connect(buildStep->m_cmakeArguments, &StringAspect::changed,
+ this, &CMakeBuildStepConfigWidget::updateDetails);
+ connect(buildStep->m_toolArguments, &StringAspect::changed,
+ this, &CMakeBuildStepConfigWidget::updateDetails);
+
+ connect(m_buildTargetsList, &QListWidget::itemChanged,
+ this, &CMakeBuildStepConfigWidget::itemsChanged);
connect(ProjectExplorerPlugin::instance(), &ProjectExplorerPlugin::settingsChanged,
this, &CMakeBuildStepConfigWidget::updateDetails);
@@ -494,17 +470,6 @@ CMakeBuildStepConfigWidget::CMakeBuildStepConfigWidget(CMakeBuildStep *buildStep
&CMakeBuildStepConfigWidget::updateDetails);
}
-void CMakeBuildStepConfigWidget::cmakeArgumentsEdited() {
- m_buildStep->setCMakeArguments(m_cmakeArguments->text());
- updateDetails();
-}
-
-void CMakeBuildStepConfigWidget::toolArgumentsEdited()
-{
- m_buildStep->setToolArguments(m_toolArguments->text());
- updateDetails();
-}
-
void CMakeBuildStepConfigWidget::itemsChanged()
{
const QList<QListWidgetItem *> items = [this]() {
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildstep.h b/src/plugins/cmakeprojectmanager/cmakebuildstep.h
index 960fc7b7264..7f220deb8f2 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildstep.h
+++ b/src/plugins/cmakeprojectmanager/cmakebuildstep.h
@@ -31,7 +31,10 @@
namespace Utils { class CommandLine; }
-namespace ProjectExplorer { class RunConfiguration; }
+namespace ProjectExplorer {
+class RunConfiguration;
+class StringAspect;
+} // ProjectExplorer
namespace CMakeProjectManager {
namespace Internal {
@@ -53,11 +56,6 @@ public:
bool buildsBuildTarget(const QString &target) const;
void setBuildTargets(const QStringList &target);
- QString cmakeArguments() const;
- void setCMakeArguments(const QString &list);
- QString toolArguments() const;
- void setToolArguments(const QString &list);
-
Utils::CommandLine cmakeCommand(ProjectExplorer::RunConfiguration *rc) const;
QStringList knownBuildTargets();
@@ -96,9 +94,10 @@ private:
QMetaObject::Connection m_runTrigger;
+ friend class CMakeBuildStepConfigWidget;
QStringList m_buildTargets;
- QString m_cmakeArguments;
- QString m_toolArguments;
+ ProjectExplorer::StringAspect *m_cmakeArguments = nullptr;
+ ProjectExplorer::StringAspect *m_toolArguments = nullptr;
bool m_waiting = false;
};