diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/projectexplorer/buildstep.cpp | 36 | ||||
-rw-r--r-- | src/plugins/remotelinux/genericdirectuploadstep.cpp | 118 | ||||
-rw-r--r-- | src/plugins/remotelinux/genericdirectuploadstep.h | 8 |
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; }; |