McuSupport: Extract settings handling to a class

Change-Id: I671098f14d7bc13255dc130a4de1ab97d5bdab94
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Piotr Mućko
2022-04-22 11:41:33 +02:00
parent e675bb7860
commit 7cef593ec0
24 changed files with 529 additions and 260 deletions

View File

@@ -32,6 +32,7 @@
#include "mcusupportplugin.h"
#include "mcusupportsdk.h"
#include "mcutarget.h"
#include "settingshandler.h"
#include <cmakeprojectmanager/cmakekitinformation.h>
#include <cmakeprojectmanager/cmaketoolmanager.h>
@@ -56,9 +57,10 @@ const QString automaticKitCreationSettingsKey = QLatin1String(Constants::SETTING
Constants::SETTINGS_KEY_AUTOMATIC_KIT_CREATION);
}
McuSupportOptions::McuSupportOptions(QObject *parent)
McuSupportOptions::McuSupportOptions(const SettingsHandler::Ptr &settingsHandler, QObject *parent)
: QObject(parent)
, qtForMCUsSdkPackage(Sdk::createQtForMCUsPackage())
, qtForMCUsSdkPackage(Sdk::createQtForMCUsPackage(settingsHandler))
, settingsHandler(settingsHandler)
{
connect(qtForMCUsSdkPackage.get(),
&McuAbstractPackage::changed,
@@ -72,9 +74,9 @@ void McuSupportOptions::populatePackagesAndTargets()
setQulDir(qtForMCUsSdkPackage->path());
}
static FilePath qulDocsDir()
FilePath McuSupportOptions::qulDocsDir() const
{
const FilePath qulDir = McuSupportOptions::qulDirFromSettings();
const FilePath qulDir = qulDirFromSettings();
if (qulDir.isEmpty() || !qulDir.exists())
return {};
const FilePath docsDir = qulDir / "docs";
@@ -102,7 +104,7 @@ void McuSupportOptions::registerExamples()
auto examples = {std::make_pair(QStringLiteral("demos"), tr("Qt for MCUs Demos")),
std::make_pair(QStringLiteral("examples"), tr("Qt for MCUs Examples"))};
for (const auto &dir : examples) {
const FilePath examplesDir = McuSupportOptions::qulDirFromSettings().pathAppended(dir.first);
const FilePath examplesDir = qulDirFromSettings() / dir.first;
if (!examplesDir.exists())
continue;
@@ -126,7 +128,7 @@ void McuSupportOptions::setQulDir(const FilePath &dir)
{
qtForMCUsSdkPackage->updateStatus();
if (qtForMCUsSdkPackage->isValidStatus())
sdkRepository = Sdk::targetsAndPackages(dir);
sdkRepository = Sdk::targetsAndPackages(dir, settingsHandler);
else
sdkRepository = McuSdkRepository{};
for (const auto &package : qAsConst(sdkRepository.packages))
@@ -138,11 +140,11 @@ void McuSupportOptions::setQulDir(const FilePath &dir)
emit packagesChanged();
}
FilePath McuSupportOptions::qulDirFromSettings()
FilePath McuSupportOptions::qulDirFromSettings() const
{
return Sdk::packagePathFromSettings(Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK,
QSettings::UserScope,
{});
return settingsHandler->getPath(Constants::SETTINGS_KEY_PACKAGE_QT_FOR_MCUS_SDK,
QSettings::UserScope,
{});
}
McuKitManager::UpgradeOption McuSupportOptions::askForKitUpgrades()
@@ -175,7 +177,7 @@ void McuSupportOptions::checkUpgradeableKits()
return !McuKitManager::upgradeableKits(target.get(), this->qtForMCUsSdkPackage).empty()
&& McuKitManager::matchingKits(target.get(), this->qtForMCUsSdkPackage).empty();
}))
McuKitManager::upgradeKitsByCreatingNewPackage(askForKitUpgrades());
McuKitManager::upgradeKitsByCreatingNewPackage(settingsHandler, askForKitUpgrades());
}
bool McuSupportOptions::kitsNeedQtVersion()