summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/projectexplorer/buildstep.cpp36
-rw-r--r--src/plugins/remotelinux/genericdirectuploadstep.cpp118
-rw-r--r--src/plugins/remotelinux/genericdirectuploadstep.h8
3 files changed, 59 insertions, 103 deletions
diff --git a/src/plugins/projectexplorer/buildstep.cpp b/src/plugins/projectexplorer/buildstep.cpp
index 864fdbf6b3..e3c6a8421f 100644
--- a/src/plugins/projectexplorer/buildstep.cpp
+++ b/src/plugins/projectexplorer/buildstep.cpp
@@ -35,6 +35,8 @@
#include <utils/algorithm.h>
#include <utils/qtcassert.h>
+#include <QFormLayout>
+
/*!
\class ProjectExplorer::BuildStep
@@ -125,6 +127,40 @@ BuildStep::BuildStep(BuildStepList *bsl, Core::Id id) :
expander->registerSubProvider([this] { return projectConfiguration()->macroExpander(); });
}
+class ConfigWidget : public BuildStepConfigWidget
+{
+public:
+ ConfigWidget(BuildStep *step) : m_step(step)
+ {
+ connect(m_step, &ProjectConfiguration::displayNameChanged,
+ this, &BuildStepConfigWidget::updateSummary);
+ }
+
+ QString summaryText() const override { return QLatin1String("<b>") + displayName() + QLatin1String("</b>"); }
+ QString displayName() const override { return m_step->displayName(); }
+ bool showWidget() const override { return true; }
+ BuildStep *step() const { return m_step; }
+
+private:
+ BuildStep *m_step;
+};
+
+BuildStepConfigWidget *BuildStep::createConfigWidget()
+{
+ auto widget = new ConfigWidget(this);
+
+ auto formLayout = new QFormLayout(widget);
+ formLayout->setMargin(0);
+ formLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);
+
+ for (ProjectConfigurationAspect *aspect : m_aspects) {
+ if (aspect->isVisible())
+ aspect->addToConfigurationLayout(formLayout);
+ }
+
+ return widget;
+}
+
bool BuildStep::fromMap(const QVariantMap &map)
{
m_enabled = map.value(buildStepEnabledKey, true).toBool();
diff --git a/src/plugins/remotelinux/genericdirectuploadstep.cpp b/src/plugins/remotelinux/genericdirectuploadstep.cpp
index e6fd038453..ce03867d06 100644
--- a/src/plugins/remotelinux/genericdirectuploadstep.cpp
+++ b/src/plugins/remotelinux/genericdirectuploadstep.cpp
@@ -29,65 +29,19 @@
#include <projectexplorer/deploymentdata.h>
#include <projectexplorer/target.h>
-
-#include <QCheckBox>
-#include <QVBoxLayout>
+#include <projectexplorer/runconfigurationaspects.h>
using namespace ProjectExplorer;
namespace RemoteLinux {
namespace Internal {
-namespace {
-const char IncrementalKey[] = "RemoteLinux.GenericDirectUploadStep.Incremental";
-const char IgnoreMissingFilesKey[] = "RemoteLinux.GenericDirectUploadStep.IgnoreMissingFiles";
-
-class ConfigWidget : public SimpleBuildStepConfigWidget
-{
- Q_OBJECT
-public:
- ConfigWidget(GenericDirectUploadStep *step) : SimpleBuildStepConfigWidget(step)
- {
- m_incrementalCheckBox.setText(tr("Incremental deployment"));
- m_ignoreMissingFilesCheckBox.setText(tr("Ignore missing files"));
- QVBoxLayout *mainLayout = new QVBoxLayout(this);
- mainLayout->setMargin(0);
- mainLayout->addWidget(&m_incrementalCheckBox);
- mainLayout->addWidget(&m_ignoreMissingFilesCheckBox);
- m_incrementalCheckBox.setChecked(step->incrementalDeployment());
- m_ignoreMissingFilesCheckBox.setChecked(step->ignoreMissingFiles());
- connect(&m_incrementalCheckBox, &QAbstractButton::toggled,
- this, &ConfigWidget::handleIncrementalChanged);
- connect(&m_ignoreMissingFilesCheckBox, &QAbstractButton::toggled,
- this, &ConfigWidget::handleIgnoreMissingFilesChanged);
- }
-
- bool showWidget() const { return true; }
-
-private:
- void handleIncrementalChanged(bool incremental) {
- GenericDirectUploadStep *step = qobject_cast<GenericDirectUploadStep *>(this->step());
- step->setIncrementalDeployment(incremental);
- }
-
- void handleIgnoreMissingFilesChanged(bool ignoreMissingFiles) {
- GenericDirectUploadStep *step = qobject_cast<GenericDirectUploadStep *>(this->step());
- step->setIgnoreMissingFiles(ignoreMissingFiles);
- }
-
- QCheckBox m_incrementalCheckBox;
- QCheckBox m_ignoreMissingFilesCheckBox;
-};
-
-} // anonymous namespace
class GenericDirectUploadStepPrivate
{
public:
- GenericDirectUploadStepPrivate() : incremental(true), ignoreMissingFiles(false) {}
-
GenericDirectUploadService deployService;
- bool incremental;
- bool ignoreMissingFiles;
+ BaseBoolAspect *incrementalAspect;
+ BaseBoolAspect *ignoreMissingFilesAspect;
};
} // namespace Internal
@@ -96,6 +50,19 @@ GenericDirectUploadStep::GenericDirectUploadStep(BuildStepList *bsl)
: AbstractRemoteLinuxDeployStep(bsl, stepId())
{
d = new Internal::GenericDirectUploadStepPrivate;
+
+ d->incrementalAspect = addAspect<BaseBoolAspect>();
+ d->incrementalAspect->setSettingsKey("RemoteLinux.GenericDirectUploadStep.Incremental");
+ d->incrementalAspect->setLabel(tr("Incremental deployment"));
+ d->incrementalAspect->setValue(true);
+ d->incrementalAspect->setDefaultValue(true);
+
+ d->ignoreMissingFilesAspect = addAspect<BaseBoolAspect>();
+ d->ignoreMissingFilesAspect
+ ->setSettingsKey("RemoteLinux.GenericDirectUploadStep.IgnoreMissingFiles");
+ d->ignoreMissingFilesAspect->setLabel(tr("Ignore missing files"));
+ d->ignoreMissingFilesAspect->setValue(false);
+
setDefaultDisplayName(displayName());
}
@@ -104,17 +71,17 @@ GenericDirectUploadStep::~GenericDirectUploadStep()
delete d;
}
-BuildStepConfigWidget *GenericDirectUploadStep::createConfigWidget()
+bool GenericDirectUploadStep::initInternal(QString *error)
{
- return new Internal::ConfigWidget(this);
+ d->deployService.setDeployableFiles(target()->deploymentData().allFiles());
+ d->deployService.setIncrementalDeployment(d->incrementalAspect->value());
+ d->deployService.setIgnoreMissingFiles(d->ignoreMissingFilesAspect->value());
+ return d->deployService.isDeploymentPossible(error);
}
-bool GenericDirectUploadStep::initInternal(QString *error)
+BuildStepConfigWidget *GenericDirectUploadStep::createConfigWidget()
{
- deployService()->setDeployableFiles(target()->deploymentData().allFiles());
- deployService()->setIncrementalDeployment(incrementalDeployment());
- deployService()->setIgnoreMissingFiles(ignoreMissingFiles());
- return deployService()->isDeploymentPossible(error);
+ return BuildStep::createConfigWidget();
}
GenericDirectUploadService *GenericDirectUploadStep::deployService() const
@@ -122,43 +89,6 @@ GenericDirectUploadService *GenericDirectUploadStep::deployService() const
return &d->deployService;
}
-bool GenericDirectUploadStep::fromMap(const QVariantMap &map)
-{
- if (!AbstractRemoteLinuxDeployStep::fromMap(map))
- return false;
- setIncrementalDeployment(map.value(QLatin1String(Internal::IncrementalKey), true).toBool());
- setIgnoreMissingFiles(map.value(QLatin1String(Internal::IgnoreMissingFilesKey), false).toBool());
- return true;
-}
-
-QVariantMap GenericDirectUploadStep::toMap() const
-{
- QVariantMap map = AbstractRemoteLinuxDeployStep::toMap();
- map.insert(QLatin1String(Internal::IncrementalKey), incrementalDeployment());
- map.insert(QLatin1String(Internal::IgnoreMissingFilesKey), ignoreMissingFiles());
- return map;
-}
-
-void GenericDirectUploadStep::setIncrementalDeployment(bool incremental)
-{
- d->incremental = incremental;
-}
-
-bool GenericDirectUploadStep::incrementalDeployment() const
-{
- return d->incremental;
-}
-
-void GenericDirectUploadStep::setIgnoreMissingFiles(bool ignoreMissingFiles)
-{
- d->ignoreMissingFiles = ignoreMissingFiles;
-}
-
-bool GenericDirectUploadStep::ignoreMissingFiles() const
-{
- return d->ignoreMissingFiles;
-}
-
Core::Id GenericDirectUploadStep::stepId()
{
return "RemoteLinux.DirectUploadStep";
@@ -170,5 +100,3 @@ QString GenericDirectUploadStep::displayName()
}
} //namespace RemoteLinux
-
-#include "genericdirectuploadstep.moc"
diff --git a/src/plugins/remotelinux/genericdirectuploadstep.h b/src/plugins/remotelinux/genericdirectuploadstep.h
index b5d2ba1df6..a17c866a44 100644
--- a/src/plugins/remotelinux/genericdirectuploadstep.h
+++ b/src/plugins/remotelinux/genericdirectuploadstep.h
@@ -43,19 +43,11 @@ public:
ProjectExplorer::BuildStepConfigWidget *createConfigWidget() override;
bool initInternal(QString *error = nullptr) override;
- void setIncrementalDeployment(bool incremental);
- bool incrementalDeployment() const;
-
- void setIgnoreMissingFiles(bool ignoreMissingFiles);
- bool ignoreMissingFiles() const;
-
static Core::Id stepId();
static QString displayName();
private:
GenericDirectUploadService *deployService() const override;
- bool fromMap(const QVariantMap &map) override;
- QVariantMap toMap() const override;
Internal::GenericDirectUploadStepPrivate *d;
};