diff options
author | hjk <hjk@qt.io> | 2018-10-17 09:14:51 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2018-10-17 13:39:05 +0000 |
commit | dcd0faf4c4270ae5fc5706a96e48acd3e0e863a6 (patch) | |
tree | 298afbae128f75eaa5f46668221054ee12582bb4 | |
parent | f4a12d488c17c4fe865325f91084cbc1c02d5a34 (diff) |
RemoteLinux: Use aspects in TarPackageCreationStep
Less code.
Change-Id: I0cd0e6ff04c71c1a2a514388032521152f715094
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r-- | src/plugins/remotelinux/tarpackagecreationstep.cpp | 115 | ||||
-rw-r--r-- | src/plugins/remotelinux/tarpackagecreationstep.h | 5 |
2 files changed, 32 insertions, 88 deletions
diff --git a/src/plugins/remotelinux/tarpackagecreationstep.cpp b/src/plugins/remotelinux/tarpackagecreationstep.cpp index 010b127a63..d772282aba 100644 --- a/src/plugins/remotelinux/tarpackagecreationstep.cpp +++ b/src/plugins/remotelinux/tarpackagecreationstep.cpp @@ -38,9 +38,6 @@ #include <QFile> #include <QFileInfo> -#include <QCheckBox> -#include <QVBoxLayout> - #include <cstring> using namespace ProjectExplorer; @@ -50,60 +47,6 @@ namespace { const char IgnoreMissingFilesKey[] = "RemoteLinux.TarPackageCreationStep.IgnoreMissingFiles"; const char IncrementalDeploymentKey[] = "RemoteLinux.TarPackageCreationStep.IncrementalDeployment"; -class CreateTarStepWidget : public BuildStepConfigWidget -{ - Q_OBJECT -public: - CreateTarStepWidget(TarPackageCreationStep *step) : BuildStepConfigWidget(step) - { - m_ignoreMissingFilesCheckBox.setText(tr("Ignore missing files")); - m_incrementalDeploymentCheckBox.setText(tr("Package modified files only")); - - QVBoxLayout *mainLayout = new QVBoxLayout(this); - mainLayout->setMargin(0); - mainLayout->addWidget(&m_incrementalDeploymentCheckBox); - mainLayout->addWidget(&m_ignoreMissingFilesCheckBox); - - m_ignoreMissingFilesCheckBox.setChecked(step->ignoreMissingFiles()); - m_incrementalDeploymentCheckBox.setChecked(step->isIncrementalDeployment()); - - connect(&m_ignoreMissingFilesCheckBox, &QAbstractButton::toggled, - this, &CreateTarStepWidget::handleIgnoreMissingFilesChanged); - - connect(&m_incrementalDeploymentCheckBox, &QAbstractButton::toggled, - this, &CreateTarStepWidget::handleIncrementalDeploymentChanged); - - connect(step, &AbstractPackagingStep::packageFilePathChanged, - this, &BuildStepConfigWidget::updateSummary); - } - - QString summaryText() const - { - TarPackageCreationStep * const step = static_cast<TarPackageCreationStep *>(this->step()); - if (step->packageFilePath().isEmpty()) { - return QLatin1String("<font color=\"red\">") - + tr("Tarball creation not possible.") + QLatin1String("</font>"); - } - return QLatin1String("<b>") + tr("Create tarball:") + QLatin1String("</b> ") - + step->packageFilePath(); - } - -private: - void handleIgnoreMissingFilesChanged(bool ignoreMissingFiles) { - TarPackageCreationStep *step = qobject_cast<TarPackageCreationStep *>(this->step()); - step->setIgnoreMissingFiles(ignoreMissingFiles); - } - - void handleIncrementalDeploymentChanged(bool incrementalDeployment) { - TarPackageCreationStep *step = qobject_cast<TarPackageCreationStep *>(this->step()); - step->setIncrementalDeployment(incrementalDeployment); - } - - QCheckBox m_ignoreMissingFilesCheckBox; - QCheckBox m_incrementalDeploymentCheckBox; -}; - - const int TarBlockSize = 512; struct TarFileHeader { char fileName[100]; @@ -131,6 +74,14 @@ TarPackageCreationStep::TarPackageCreationStep(BuildStepList *bsl) : AbstractPackagingStep(bsl, stepId()) { setDefaultDisplayName(displayName()); + + m_ignoreMissingFilesAspect = addAspect<BaseBoolAspect>(); + m_ignoreMissingFilesAspect->setLabel(tr("Ignore missing files")); + m_ignoreMissingFilesAspect->setSettingsKey(IgnoreMissingFilesKey); + + m_incrementalDeploymentAspect = addAspect<BaseBoolAspect>(); + m_incrementalDeploymentAspect->setLabel(tr("Package modified files only")); + m_incrementalDeploymentAspect->setSettingsKey(IncrementalDeploymentKey); } bool TarPackageCreationStep::init(QList<const BuildStep *> &earlierSteps) @@ -149,7 +100,7 @@ void TarPackageCreationStep::run(QFutureInterface<bool> &fi) const QList<DeployableFile> &files = target()->deploymentData().allFiles(); - if (m_incrementalDeployment) { + if (m_incrementalDeploymentAspect->value()) { m_files.clear(); for (const DeployableFile &file : files) addNeededDeploymentFiles(file, target()->kit()); @@ -171,26 +122,6 @@ void TarPackageCreationStep::run(QFutureInterface<bool> &fi) reportRunResult(fi, success); } -void TarPackageCreationStep::setIgnoreMissingFiles(bool ignoreMissingFiles) -{ - m_ignoreMissingFiles = ignoreMissingFiles; -} - -bool TarPackageCreationStep::ignoreMissingFiles() const -{ - return m_ignoreMissingFiles; -} - -void TarPackageCreationStep::setIncrementalDeployment(bool incrementalDeployment) -{ - m_incrementalDeployment = incrementalDeployment; -} - -bool TarPackageCreationStep::isIncrementalDeployment() const -{ - return m_incrementalDeployment; -} - void TarPackageCreationStep::addNeededDeploymentFiles( const ProjectExplorer::DeployableFile &deployable, const ProjectExplorer::Kit *kit) @@ -282,7 +213,7 @@ bool TarPackageCreationStep::appendFile(QFile &tarFile, const QFileInfo &fileInf if (!file.open(QIODevice::ReadOnly)) { const QString message = tr("Error reading file \"%1\": %2.") .arg(nativePath, file.errorString()); - if (m_ignoreMissingFiles) { + if (m_ignoreMissingFilesAspect->value()) { raiseWarning(message); return true; } else { @@ -410,15 +341,31 @@ QString TarPackageCreationStep::packageFileName() const BuildStepConfigWidget *TarPackageCreationStep::createConfigWidget() { - return new CreateTarStepWidget(this); + auto widget = BuildStep::createConfigWidget(); + + auto updateSummary = [this, widget] { + QString path = packageFilePath(); + if (path.isEmpty()) { + widget->setSummaryText("<font color=\"red\">" + + tr("Tarball creation not possible.") + + "</font>"); + } else { + widget->setSummaryText("<b>" + tr("Create tarball:") + "</b> " + path); + } + }; + + connect(this, &AbstractPackagingStep::packageFilePathChanged, + this, updateSummary); + + updateSummary(); + + return widget; } bool TarPackageCreationStep::fromMap(const QVariantMap &map) { if (!AbstractPackagingStep::fromMap(map)) return false; - setIgnoreMissingFiles(map.value(QLatin1String(IgnoreMissingFilesKey), false).toBool()); - setIncrementalDeployment(map.value(QLatin1String(IncrementalDeploymentKey), false).toBool()); m_deployTimes.importDeployTimes(map); return true; } @@ -426,8 +373,6 @@ bool TarPackageCreationStep::fromMap(const QVariantMap &map) QVariantMap TarPackageCreationStep::toMap() const { QVariantMap map = AbstractPackagingStep::toMap(); - map.insert(QLatin1String(IgnoreMissingFilesKey), ignoreMissingFiles()); - map.insert(QLatin1String(IncrementalDeploymentKey), m_incrementalDeployment); map.unite(m_deployTimes.exportDeployTimes()); return map; } @@ -443,5 +388,3 @@ QString TarPackageCreationStep::displayName() } } // namespace RemoteLinux - -#include "tarpackagecreationstep.moc" diff --git a/src/plugins/remotelinux/tarpackagecreationstep.h b/src/plugins/remotelinux/tarpackagecreationstep.h index 70f21b714d..0c9568fbae 100644 --- a/src/plugins/remotelinux/tarpackagecreationstep.h +++ b/src/plugins/remotelinux/tarpackagecreationstep.h @@ -30,6 +30,7 @@ #include "remotelinux_export.h" #include <projectexplorer/deployablefile.h> +#include <projectexplorer/projectconfigurationaspects.h> QT_BEGIN_NAMESPACE class QFile; @@ -76,8 +77,8 @@ private: DeploymentTimeInfo m_deployTimes; - bool m_incrementalDeployment = false; - bool m_ignoreMissingFiles = false; + ProjectExplorer::BaseBoolAspect *m_incrementalDeploymentAspect = nullptr; + ProjectExplorer::BaseBoolAspect *m_ignoreMissingFilesAspect = nullptr; bool m_packagingNeeded = false; QList<ProjectExplorer::DeployableFile> m_files; }; |