From 0c5036e307f7c7c2931fda4977594ea84a12fe4f Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 26 Mar 2021 17:50:14 +0100 Subject: [PATCH] Conan: Move closer to now-default settings construction Change-Id: I04078070de9831c1de94d400a7723f4efe0e0a8d Reviewed-by: Christian Stenger --- src/plugins/conan/conaninstallstep.cpp | 2 +- src/plugins/conan/conanplugin.cpp | 2 +- src/plugins/conan/conansettings.cpp | 31 +++++++++++--------------- src/plugins/conan/conansettings.h | 16 +++++-------- 4 files changed, 21 insertions(+), 30 deletions(-) diff --git a/src/plugins/conan/conaninstallstep.cpp b/src/plugins/conan/conaninstallstep.cpp index cb47cf8b224..43a793eddd8 100644 --- a/src/plugins/conan/conaninstallstep.cpp +++ b/src/plugins/conan/conaninstallstep.cpp @@ -91,7 +91,7 @@ ConanInstallStep::ConanInstallStep(BuildStepList *bsl, Id id) const QString buildType = bt == BuildConfiguration::Release ? QString("Release") : QString("Debug"); - CommandLine cmd(ConanPlugin::conanSettings()->conanFilePath()); + CommandLine cmd(ConanPlugin::conanSettings()->conanFilePath.filePath()); cmd.addArgs({"install", "-s", "build_type=" + buildType}); if (buildMissing->value()) cmd.addArg("--build=missing"); diff --git a/src/plugins/conan/conanplugin.cpp b/src/plugins/conan/conanplugin.cpp index 4e548774f2a..e4f5235c64c 100644 --- a/src/plugins/conan/conanplugin.cpp +++ b/src/plugins/conan/conanplugin.cpp @@ -65,7 +65,7 @@ bool ConanPlugin::initialize(const QStringList &arguments, QString *errorString) Q_UNUSED(errorString) m_runData = new ConanPluginRunData; - conanSettings()->fromSettings(ICore::settings()); + conanSettings()->readSettings(ICore::settings()); connect(SessionManager::instance(), &SessionManager::projectAdded, this, &ConanPlugin::projectAdded); diff --git a/src/plugins/conan/conansettings.cpp b/src/plugins/conan/conansettings.cpp index 7e5285dc411..2d93756694a 100644 --- a/src/plugins/conan/conansettings.cpp +++ b/src/plugins/conan/conansettings.cpp @@ -24,30 +24,25 @@ ****************************************************************************/ #include "conansettings.h" + #include +using namespace Utils; + namespace ConanPackageManager { namespace Internal { -namespace { -static const char SETTINGS_KEY[] = "ConanSettings"; -static const char CONAN_FILE_PATH[] = "ConanFilePath"; -} - -void ConanSettings::fromSettings(QSettings *settings) +ConanSettings::ConanSettings() { - const QString rootKey = QString(SETTINGS_KEY) + '/'; + setSettingsGroup("ConanSettings"); + setAutoApply(false); - const QString defaultExe = Utils::HostOsInfo::withExecutableSuffix(QString("conan")); - m_conanFilePath = Utils::FilePath::fromUserInput( - settings->value(rootKey + CONAN_FILE_PATH, defaultExe).toString()); + registerAspect(&conanFilePath); + conanFilePath.setSettingsKey("ConanFilePath"); + conanFilePath.setDisplayStyle(StringAspect::PathChooserDisplay); + conanFilePath.setExpectedKind(PathChooser::ExistingCommand); + conanFilePath.setDefaultValue(HostOsInfo::withExecutableSuffix("conan")); } -void ConanSettings::toSettings(QSettings *settings) const -{ - settings->beginGroup(QString(SETTINGS_KEY)); - settings->endGroup(); -} - -} -} +} // Internal +} // ConanPackageManager diff --git a/src/plugins/conan/conansettings.h b/src/plugins/conan/conansettings.h index c21b09a0d28..b03fd0e9011 100644 --- a/src/plugins/conan/conansettings.h +++ b/src/plugins/conan/conansettings.h @@ -25,6 +25,7 @@ #pragma once +#include #include #include @@ -32,18 +33,13 @@ namespace ConanPackageManager { namespace Internal { -class ConanSettings +class ConanSettings : public Utils::AspectContainer { public: - ConanSettings() = default; - void fromSettings(QSettings *settings); - void toSettings(QSettings *settings) const; + ConanSettings(); - Utils::FilePath conanFilePath() const { return m_conanFilePath; } - -private: - Utils::FilePath m_conanFilePath; + Utils::StringAspect conanFilePath; }; -} -} +} // Internal +} // ConanPackageManager