From e4da77965377d7ec9e4e22d72e5401565b310b98 Mon Sep 17 00:00:00 2001 From: Christiaan Janssen Date: Mon, 21 Feb 2022 13:41:57 +0100 Subject: [PATCH] McuSupport: move auto-kit-creation option to McuSupportOptions It was part of McuPackage, and only used by the SDK instance. Task-number: QTCREATORBUG-27093 Change-Id: I9d9eaac621e9997129c227fae3ac88b502ba4340 Reviewed-by: Reviewed-by: Alessandro Portale --- src/plugins/mcusupport/mcuabstractpackage.h | 4 --- src/plugins/mcusupport/mcukitmanager.cpp | 2 +- src/plugins/mcusupport/mcupackage.cpp | 28 ------------------ src/plugins/mcusupport/mcupackage.h | 6 ---- src/plugins/mcusupport/mcusupportoptions.cpp | 29 +++++++++++++++++++ src/plugins/mcusupport/mcusupportoptions.h | 6 ++++ .../mcusupport/mcusupportoptionspage.cpp | 7 ++--- src/plugins/mcusupport/test/packagemock.h | 6 ---- 8 files changed, 39 insertions(+), 49 deletions(-) diff --git a/src/plugins/mcusupport/mcuabstractpackage.h b/src/plugins/mcusupport/mcuabstractpackage.h index 27b8b75c97d..9406b474fb9 100644 --- a/src/plugins/mcusupport/mcuabstractpackage.h +++ b/src/plugins/mcusupport/mcuabstractpackage.h @@ -58,14 +58,10 @@ public: virtual const QString &environmentVariableName() const = 0; virtual void setAddToPath(bool) = 0; virtual bool addToPath() const = 0; - virtual void writeGeneralSettings() const = 0; virtual bool writeToSettings() const = 0; virtual void setRelativePathModifier(const QString &) = 0; virtual void setVersions(const QStringList &) = 0; - virtual bool automaticKitCreationEnabled() const = 0; - virtual void setAutomaticKitCreationEnabled(const bool enabled) = 0; - virtual QWidget *widget() = 0; signals: diff --git a/src/plugins/mcusupport/mcukitmanager.cpp b/src/plugins/mcusupport/mcukitmanager.cpp index e142072242d..5fffe2b8da3 100644 --- a/src/plugins/mcusupport/mcukitmanager.cpp +++ b/src/plugins/mcusupport/mcukitmanager.cpp @@ -387,7 +387,7 @@ void createAutomaticKits() auto qtForMCUsPackage = Sdk::createQtForMCUsPackage(); const auto createKits = [qtForMCUsPackage]() { - if (qtForMCUsPackage->automaticKitCreationEnabled()) { + if (McuSupportOptions::automaticKitCreationFromSettings()) { qtForMCUsPackage->updateStatus(); if (!qtForMCUsPackage->validStatus()) { switch (qtForMCUsPackage->status()) { diff --git a/src/plugins/mcusupport/mcupackage.cpp b/src/plugins/mcusupport/mcupackage.cpp index ed963652edb..f108ca67f83 100644 --- a/src/plugins/mcusupport/mcupackage.cpp +++ b/src/plugins/mcusupport/mcupackage.cpp @@ -41,15 +41,6 @@ using namespace Utils; namespace McuSupport::Internal { -static bool automaticKitCreationFromSettings(QSettings::Scope scope = QSettings::UserScope) -{ - QSettings *settings = Core::ICore::settings(scope); - const QString key = QLatin1String(Constants::SETTINGS_GROUP) + '/' - + QLatin1String(Constants::SETTINGS_KEY_AUTOMATIC_KIT_CREATION); - bool automaticKitCreation = settings->value(key, true).toBool(); - return automaticKitCreation; -} - McuPackage::McuPackage(const QString &label, const FilePath &defaultPath, const QString &detectionPath, @@ -66,7 +57,6 @@ McuPackage::McuPackage(const QString &label, , m_downloadUrl(downloadUrl) { m_path = Sdk::packagePathFromSettings(settingsKey, QSettings::UserScope, m_defaultPath); - m_automaticKitCreation = automaticKitCreationFromSettings(QSettings::UserScope); } FilePath McuPackage::basePath() const @@ -162,14 +152,6 @@ bool McuPackage::addToPath() const return m_addToPath; } -void McuPackage::writeGeneralSettings() const -{ - const QString key = QLatin1String(Constants::SETTINGS_GROUP) + '/' - + QLatin1String(Constants::SETTINGS_KEY_AUTOMATIC_KIT_CREATION); - QSettings *settings = Core::ICore::settings(); - settings->setValue(key, m_automaticKitCreation); -} - bool McuPackage::writeToSettings() const { const FilePath savedPath = Sdk::packagePathFromSettings(m_settingsKey, @@ -192,16 +174,6 @@ void McuPackage::setVersions(const QStringList &versions) m_versions = versions; } -bool McuPackage::automaticKitCreationEnabled() const -{ - return m_automaticKitCreation; -} - -void McuPackage::setAutomaticKitCreationEnabled(const bool enabled) -{ - m_automaticKitCreation = enabled; -} - void McuPackage::updatePath() { m_path = m_fileChooser->rawFilePath(); diff --git a/src/plugins/mcusupport/mcupackage.h b/src/plugins/mcusupport/mcupackage.h index f2d6aa5276d..dcc9917c1ce 100644 --- a/src/plugins/mcusupport/mcupackage.h +++ b/src/plugins/mcusupport/mcupackage.h @@ -74,15 +74,10 @@ public: bool validStatus() const override; void setAddToPath(bool addToPath) override; bool addToPath() const override; - void writeGeneralSettings() const override; bool writeToSettings() const override; void setRelativePathModifier(const QString &path) override; void setVersions(const QStringList &versions) override; - //TODO(piotr.mucko): Why every package knows about automatic kit creation. This should be outside of this class. - bool automaticKitCreationEnabled() const override; - void setAutomaticKitCreationEnabled(const bool enabled) override; - QWidget *widget() override; const QString &environmentVariableName() const override; @@ -108,7 +103,6 @@ private: const QString m_environmentVariableName; const QString m_downloadUrl; bool m_addToPath = false; - bool m_automaticKitCreation = true; Status m_status = Status::InvalidPath; }; diff --git a/src/plugins/mcusupport/mcusupportoptions.cpp b/src/plugins/mcusupport/mcusupportoptions.cpp index 8d8721323b9..a5915c7affc 100644 --- a/src/plugins/mcusupport/mcusupportoptions.cpp +++ b/src/plugins/mcusupport/mcusupportoptions.cpp @@ -70,6 +70,7 @@ McuSupportOptions::McuSupportOptions(QObject *parent) &McuAbstractPackage::changed, this, &McuSupportOptions::populatePackagesAndTargets); + m_automaticKitCreation = automaticKitCreationFromSettings(); } McuSupportOptions::~McuSupportOptions() @@ -434,5 +435,33 @@ bool McuSupportOptions::kitsNeedQtVersion() return !HostOsInfo::isWindowsHost(); } + +bool McuSupportOptions::automaticKitCreationEnabled() const +{ + return m_automaticKitCreation; +} + +void McuSupportOptions::setAutomaticKitCreationEnabled(const bool enabled) +{ + m_automaticKitCreation = enabled; +} + +void McuSupportOptions::writeGeneralSettings() const +{ + const QString key = QLatin1String(Constants::SETTINGS_GROUP) + '/' + + QLatin1String(Constants::SETTINGS_KEY_AUTOMATIC_KIT_CREATION); + QSettings *settings = Core::ICore::settings(QSettings::UserScope); + settings->setValue(key, m_automaticKitCreation); +} + +bool McuSupportOptions::automaticKitCreationFromSettings() +{ + QSettings *settings = Core::ICore::settings(QSettings::UserScope); + const QString key = QLatin1String(Constants::SETTINGS_GROUP) + '/' + + QLatin1String(Constants::SETTINGS_KEY_AUTOMATIC_KIT_CREATION); + const bool automaticKitCreation = settings->value(key, true).toBool(); + return automaticKitCreation; +} + } // namespace Internal } // namespace McuSupport diff --git a/src/plugins/mcusupport/mcusupportoptions.h b/src/plugins/mcusupport/mcusupportoptions.h index 02e672486c2..04dbb24b6ae 100644 --- a/src/plugins/mcusupport/mcusupportoptions.h +++ b/src/plugins/mcusupport/mcusupportoptions.h @@ -91,9 +91,15 @@ public: void populatePackagesAndTargets(); static bool kitsNeedQtVersion(); + + bool automaticKitCreationEnabled() const; + void setAutomaticKitCreationEnabled(const bool enabled); + void writeGeneralSettings() const; + static bool automaticKitCreationFromSettings(); private: void deletePackagesAndTargets(); + bool m_automaticKitCreation = true; signals: void packagesChanged(); }; diff --git a/src/plugins/mcusupport/mcusupportoptionspage.cpp b/src/plugins/mcusupport/mcusupportoptionspage.cpp index 7eb8c160b0b..36a8d318a0a 100644 --- a/src/plugins/mcusupport/mcusupportoptionspage.cpp +++ b/src/plugins/mcusupport/mcusupportoptionspage.cpp @@ -146,7 +146,7 @@ McuSupportOptionsWidget::McuSupportOptionsWidget() m_kitAutomaticCreationCheckBox = new QCheckBox( tr("Automatically create kits for all available targets on start")); connect(m_kitAutomaticCreationCheckBox, &QCheckBox::stateChanged, this, [this](int state) { - m_options.qtForMCUsSdkPackage->setAutomaticKitCreationEnabled( + m_options.setAutomaticKitCreationEnabled( state == Qt::CheckState::Checked); }); mainLayout->addWidget(m_kitAutomaticCreationCheckBox); @@ -245,8 +245,7 @@ void McuSupportOptionsWidget::updateStatus() } // Automatic Kit creation - m_kitAutomaticCreationCheckBox->setChecked( - m_options.qtForMCUsSdkPackage->automaticKitCreationEnabled()); + m_kitAutomaticCreationCheckBox->setChecked(m_options.automaticKitCreationEnabled()); // Status label in the bottom { @@ -300,7 +299,7 @@ void McuSupportOptionsWidget::apply() { bool pathsChanged = false; - m_options.qtForMCUsSdkPackage->writeGeneralSettings(); + m_options.writeGeneralSettings(); pathsChanged |= m_options.qtForMCUsSdkPackage->writeToSettings(); for (auto package : qAsConst(m_options.sdkRepository.packages)) pathsChanged |= package->writeToSettings(); diff --git a/src/plugins/mcusupport/test/packagemock.h b/src/plugins/mcusupport/test/packagemock.h index b7e2f54351c..7f8e98d40f5 100644 --- a/src/plugins/mcusupport/test/packagemock.h +++ b/src/plugins/mcusupport/test/packagemock.h @@ -45,19 +45,13 @@ public: MOCK_METHOD(Status, status, (), (const)); MOCK_METHOD(bool, validStatus, (), (const)); - MOCK_METHOD(void, setDownloadUrl, (const QString &) ); - MOCK_METHOD(void, setEnvironmentVariableName, (const QString &) ); MOCK_METHOD(const QString &, environmentVariableName, (), (const)); MOCK_METHOD(void, setAddToPath, (bool) ); MOCK_METHOD(bool, addToPath, (), (const)); - MOCK_METHOD(void, writeGeneralSettings, (), (const)); MOCK_METHOD(bool, writeToSettings, (), (const)); MOCK_METHOD(void, setRelativePathModifier, (const QString &) ); MOCK_METHOD(void, setVersions, (const QStringList &) ); - MOCK_METHOD(bool, automaticKitCreationEnabled, (), (const)); - MOCK_METHOD(void, setAutomaticKitCreationEnabled, (const bool enabled)); - MOCK_METHOD(QWidget *, widget, ()); }; // class PackageMock } // namespace McuSupport::Internal