From 98bba063b6083832e14f63d55aba212702550ccb Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 29 Jun 2023 16:45:11 +0200 Subject: [PATCH] Utils: Use FilePathAspect::setDefaultValue ... instead of StringAspect::setDefaultFilePath. Closer to the intended uniform access. Task-number: QTCREATORBUG-29167 Change-Id: I87df385ef98873a0955010149a9a9b09a5f29daf Reviewed-by: Marcus Tillmanns --- src/libs/utils/aspects.cpp | 10 +++++----- src/libs/utils/aspects.h | 2 +- src/plugins/cmakeprojectmanager/cmakebuildstep.cpp | 2 +- src/plugins/conan/conansettings.cpp | 2 +- src/plugins/copilot/copilotsettings.cpp | 4 ++-- src/plugins/cpaster/fileshareprotocolsettingspage.cpp | 2 +- src/plugins/cppcheck/cppcheckoptions.cpp | 2 +- src/plugins/docker/dockersettings.cpp | 2 +- src/plugins/haskell/haskellsettings.cpp | 2 +- src/plugins/perforce/perforcesettings.cpp | 3 +-- src/plugins/terminal/terminalsettings.cpp | 11 +++++------ src/plugins/vcpkg/vcpkgsettings.cpp | 11 +++++++---- src/plugins/vcsbase/commonvcssettings.cpp | 2 +- src/plugins/webassembly/webassemblysettings.cpp | 2 +- 14 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/libs/utils/aspects.cpp b/src/libs/utils/aspects.cpp index 479e38ccf48..b058c9d365b 100644 --- a/src/libs/utils/aspects.cpp +++ b/src/libs/utils/aspects.cpp @@ -873,11 +873,6 @@ void StringAspect::setFilePath(const FilePath &value) setValue(value.toUserOutput()); } -void StringAspect::setDefaultFilePath(const FilePath &value) -{ - setDefaultValue(value.toUserOutput()); -} - PathChooser *StringAspect::pathChooser() const { return d->m_pathChooserDisplay.data(); @@ -1337,6 +1332,11 @@ void FilePathAspect::setValue(const FilePath &filePath) StringAspect::setValue(filePath.toUserOutput()); } +void FilePathAspect::setDefaultValue(const FilePath &filePath) +{ + StringAspect::setDefaultValue(filePath.toUserOutput()); +} + /*! \class Utils::ColorAspect \inmodule QtCreator diff --git a/src/libs/utils/aspects.h b/src/libs/utils/aspects.h index 9a32ce3a002..bbd9e36ed22 100644 --- a/src/libs/utils/aspects.h +++ b/src/libs/utils/aspects.h @@ -503,7 +503,6 @@ public: FilePath filePath() const; void setFilePath(const FilePath &value); - void setDefaultFilePath(const FilePath &value); PathChooser *pathChooser() const; // Avoid to use. @@ -524,6 +523,7 @@ public: FilePath operator()() const { return filePath(); } void setValue(const FilePath &filePath); + void setDefaultValue(const FilePath &filePath); }; class QTCREATOR_UTILS_EXPORT IntegerAspect : public TypedAspect diff --git a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp index 9e4a705fb54..60c3855a63b 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp @@ -209,7 +209,7 @@ CMakeBuildStep::CMakeBuildStep(BuildStepList *bsl, Id id) : m_stagingDir = addAspect(); m_stagingDir->setSettingsKey(STAGING_DIR_KEY); m_stagingDir->setLabelText(Tr::tr("Staging directory:")); - m_stagingDir->setDefaultValue(initialStagingDir(kit())); + m_stagingDir->setDefaultValue(FilePath::fromUserInput(initialStagingDir(kit()))); Kit *kit = buildConfiguration()->kit(); if (CMakeBuildConfiguration::isIos(kit)) { diff --git a/src/plugins/conan/conansettings.cpp b/src/plugins/conan/conansettings.cpp index 50373c764b6..f7de5b01ea8 100644 --- a/src/plugins/conan/conansettings.cpp +++ b/src/plugins/conan/conansettings.cpp @@ -24,7 +24,7 @@ ConanSettings::ConanSettings() conanFilePath.setSettingsKey("ConanFilePath"); conanFilePath.setExpectedKind(PathChooser::ExistingCommand); - conanFilePath.setDefaultValue(HostOsInfo::withExecutableSuffix("conan")); + conanFilePath.setDefaultValue(FilePath::fromString(HostOsInfo::withExecutableSuffix("conan"))); readSettings(Core::ICore::settings()); } diff --git a/src/plugins/copilot/copilotsettings.cpp b/src/plugins/copilot/copilotsettings.cpp index ec4cf1f61dc..6fadfb109cd 100644 --- a/src/plugins/copilot/copilotsettings.cpp +++ b/src/plugins/copilot/copilotsettings.cpp @@ -47,7 +47,7 @@ CopilotSettings::CopilotSettings() const FilePath distFromVim = findOrDefault(searchDirs, &FilePath::exists); nodeJsPath.setExpectedKind(PathChooser::ExistingCommand); - nodeJsPath.setDefaultFilePath(nodeFromPath); + nodeJsPath.setDefaultValue(nodeFromPath); nodeJsPath.setSettingsKey("Copilot.NodeJsPath"); nodeJsPath.setLabelText(Tr::tr("Node.js path:")); nodeJsPath.setHistoryCompleter("Copilot.NodePath.History"); @@ -58,7 +58,7 @@ CopilotSettings::CopilotSettings() "for installation instructions.")); distPath.setExpectedKind(PathChooser::File); - distPath.setDefaultFilePath(distFromVim); + distPath.setDefaultValue(distFromVim); distPath.setSettingsKey("Copilot.DistPath"); distPath.setLabelText(Tr::tr("Path to agent.js:")); distPath.setHistoryCompleter("Copilot.DistPath.History"); diff --git a/src/plugins/cpaster/fileshareprotocolsettingspage.cpp b/src/plugins/cpaster/fileshareprotocolsettingspage.cpp index 99599a3cd80..6d26f630791 100644 --- a/src/plugins/cpaster/fileshareprotocolsettingspage.cpp +++ b/src/plugins/cpaster/fileshareprotocolsettingspage.cpp @@ -22,7 +22,7 @@ FileShareProtocolSettings::FileShareProtocolSettings() path.setSettingsKey("Path"); path.setExpectedKind(PathChooser::ExistingDirectory); - path.setDefaultValue(TemporaryDirectory::masterDirectoryPath()); + path.setDefaultValue(TemporaryDirectory::masterDirectoryFilePath()); path.setLabelText(Tr::tr("&Path:")); displayCount.setSettingsKey("DisplayCount"); diff --git a/src/plugins/cppcheck/cppcheckoptions.cpp b/src/plugins/cppcheck/cppcheckoptions.cpp index 1289ba0e0e2..214d4b3c229 100644 --- a/src/plugins/cppcheck/cppcheckoptions.cpp +++ b/src/plugins/cppcheck/cppcheckoptions.cpp @@ -44,7 +44,7 @@ CppcheckOptions::CppcheckOptions() FilePath programFiles = FilePath::fromUserInput(qtcEnvironmentVariable("PROGRAMFILES")); if (programFiles.isEmpty()) programFiles = "C:/Program Files"; - binary.setDefaultValue(programFiles.pathAppended("Cppcheck/cppcheck.exe").toString()); + binary.setDefaultValue(programFiles.pathAppended("Cppcheck/cppcheck.exe")); } warning.setSettingsKey("warning"); diff --git a/src/plugins/docker/dockersettings.cpp b/src/plugins/docker/dockersettings.cpp index 0643cb3a31a..1057a066644 100644 --- a/src/plugins/docker/dockersettings.cpp +++ b/src/plugins/docker/dockersettings.cpp @@ -42,7 +42,7 @@ DockerSettings::DockerSettings() additionalPaths.append("/usr/local/bin"); dockerBinaryPath.setExpectedKind(PathChooser::ExistingCommand); - dockerBinaryPath.setDefaultFilePath( + dockerBinaryPath.setDefaultValue( FilePath::fromString("docker").searchInPath(additionalPaths)); dockerBinaryPath.setDisplayName(Tr::tr("Docker CLI")); dockerBinaryPath.setHistoryCompleter("Docker.Command.History"); diff --git a/src/plugins/haskell/haskellsettings.cpp b/src/plugins/haskell/haskellsettings.cpp index 7b2bbc7fd38..2b58a30af0a 100644 --- a/src/plugins/haskell/haskellsettings.cpp +++ b/src/plugins/haskell/haskellsettings.cpp @@ -37,7 +37,7 @@ HaskellSettings::HaskellSettings() // stack from brew or the installer script from https://docs.haskellstack.org // install to /usr/local/bin. - stackPath.setDefaultFilePath(HostOsInfo::isAnyUnixHost() + stackPath.setDefaultValue(HostOsInfo::isAnyUnixHost() ? FilePath::fromString("/usr/local/bin/stack") : FilePath::fromString("stack")); diff --git a/src/plugins/perforce/perforcesettings.cpp b/src/plugins/perforce/perforcesettings.cpp index dc5036bbbba..915c4777ddd 100644 --- a/src/plugins/perforce/perforcesettings.cpp +++ b/src/plugins/perforce/perforcesettings.cpp @@ -36,8 +36,7 @@ PerforceSettings::PerforceSettings() setAutoApply(false); p4BinaryPath.setSettingsKey("Command"); - p4BinaryPath.setDefaultValue( - Environment::systemEnvironment().searchInPath(defaultCommand()).toString()); + p4BinaryPath.setDefaultValue(Environment::systemEnvironment().searchInPath(defaultCommand())); p4BinaryPath.setHistoryCompleter("Perforce.Command.History"); p4BinaryPath.setExpectedKind(PathChooser::Command); p4BinaryPath.setDisplayName(Tr::tr("Perforce Command")); diff --git a/src/plugins/terminal/terminalsettings.cpp b/src/plugins/terminal/terminalsettings.cpp index bb90e24bec8..f0b9f201784 100644 --- a/src/plugins/terminal/terminalsettings.cpp +++ b/src/plugins/terminal/terminalsettings.cpp @@ -49,17 +49,16 @@ static int defaultFontSize() return 10; } -static QString defaultShell() +static FilePath defaultShell() { if (HostOsInfo::isWindowsHost()) - return qtcEnvironmentVariable("COMSPEC"); + return FilePath::fromUserInput(qtcEnvironmentVariable("COMSPEC")); - QString defaultShell = qtcEnvironmentVariable("SHELL"); - if (FilePath::fromUserInput(defaultShell).isExecutableFile()) + FilePath defaultShell = FilePath::fromUserInput(qtcEnvironmentVariable("SHELL")); + if (defaultShell.isExecutableFile()) return defaultShell; - Utils::FilePath shPath = Utils::Environment::systemEnvironment().searchInPath("sh"); - return shPath.nativePath(); + return Environment::systemEnvironment().searchInPath("sh"); } void setupColor(TerminalSettings *settings, diff --git a/src/plugins/vcpkg/vcpkgsettings.cpp b/src/plugins/vcpkg/vcpkgsettings.cpp index 3542ec47910..7c26af9fda3 100644 --- a/src/plugins/vcpkg/vcpkgsettings.cpp +++ b/src/plugins/vcpkg/vcpkgsettings.cpp @@ -15,6 +15,8 @@ #include #include +using namespace Utils; + namespace Vcpkg::Internal { static VcpkgSettings *theSettings = nullptr; @@ -34,13 +36,14 @@ VcpkgSettings::VcpkgSettings() setCategory(CMakeProjectManager::Constants::Settings::CATEGORY); vcpkgRoot.setSettingsKey("VcpkgRoot"); - vcpkgRoot.setExpectedKind(Utils::PathChooser::ExistingDirectory); - vcpkgRoot.setDefaultValue(Utils::qtcEnvironmentVariable(Constants::ENVVAR_VCPKG_ROOT)); + vcpkgRoot.setExpectedKind(PathChooser::ExistingDirectory); + vcpkgRoot.setDefaultValue( + FilePath::fromUserInput(qtcEnvironmentVariable(Constants::ENVVAR_VCPKG_ROOT))); setLayouter([this] { using namespace Layouting; auto websiteButton = new QToolButton; - websiteButton->setIcon(Utils::Icons::ONLINE.icon()); + websiteButton->setIcon(Icons::ONLINE.icon()); websiteButton->setToolTip(Constants::WEBSITE_URL); connect(websiteButton, &QAbstractButton::clicked, [] { @@ -53,7 +56,7 @@ VcpkgSettings::VcpkgSettings() Group { title(Tr::tr("Vcpkg installation")), Form { - Utils::PathChooser::label(), + PathChooser::label(), Span { 2, Row { vcpkgRoot, websiteButton } }, }, }, diff --git a/src/plugins/vcsbase/commonvcssettings.cpp b/src/plugins/vcsbase/commonvcssettings.cpp index e0c4ba4af62..faa119697b1 100644 --- a/src/plugins/vcsbase/commonvcssettings.cpp +++ b/src/plugins/vcsbase/commonvcssettings.cpp @@ -72,7 +72,7 @@ CommonVcsSettings::CommonVcsSettings() sshPasswordPrompt.setSettingsKey("SshPasswordPrompt"); sshPasswordPrompt.setExpectedKind(PathChooser::ExistingCommand); sshPasswordPrompt.setHistoryCompleter("Vcs.SshPrompt.History"); - sshPasswordPrompt.setDefaultValue(sshPasswordPromptDefault()); + sshPasswordPrompt.setDefaultValue(FilePath::fromUserInput(sshPasswordPromptDefault())); sshPasswordPrompt.setLabelText(Tr::tr("&SSH prompt command:")); sshPasswordPrompt.setToolTip(Tr::tr("Specifies a command that is executed to graphically prompt " "for a password,\nshould a repository require SSH-authentication " diff --git a/src/plugins/webassembly/webassemblysettings.cpp b/src/plugins/webassembly/webassemblysettings.cpp index fb9293f2c84..b49c1628654 100644 --- a/src/plugins/webassembly/webassemblysettings.cpp +++ b/src/plugins/webassembly/webassemblysettings.cpp @@ -63,7 +63,7 @@ WebAssemblySettings::WebAssemblySettings() registerAspect(&emSdk); emSdk.setSettingsKey("EmSdk"); emSdk.setExpectedKind(Utils::PathChooser::ExistingDirectory); - emSdk.setDefaultFilePath(FileUtils::homePath()); + emSdk.setDefaultValue(FileUtils::homePath()); connect(this, &Utils::AspectContainer::applied, &WebAssemblyToolChain::registerToolChains);