QtSupport: Simplify settingsDirForQtDir

FilePath::isEmpty is good enough error condition in this local context.

Change-Id: I9000fc20d375fa55710adcf563dd96c02b584700
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2025-06-11 15:32:14 +02:00
parent 28927bb12b
commit ef4218b51d

View File

@@ -989,26 +989,22 @@ static FilePaths qtversionFilesToCheck()
return Utils::transform(kSubdirsToCheck, [](const QString &dir) { return qtVersionsFile(dir); }); return Utils::transform(kSubdirsToCheck, [](const QString &dir) { return qtVersionsFile(dir); });
} }
static std::optional<FilePath> settingsDirForQtDir(const FilePath &baseDirectory, static FilePath settingsDirForQtDir(const FilePath &baseDirectory, const FilePath &qtDir)
const FilePath &qtDir)
{ {
const FilePaths dirsToCheck = Utils::transform(kSubdirsToCheck, [qtDir](const QString &dir) { const FilePaths dirsToCheck = Utils::transform(kSubdirsToCheck, [qtDir](const QString &dir) {
return qtDir / dir; return qtDir / dir;
}); });
const FilePath validDir = Utils::findOrDefault(dirsToCheck, [baseDirectory](const FilePath &dir) { return Utils::findOrDefault(dirsToCheck, [baseDirectory](const FilePath &dir) {
return settingsFile(baseDirectory.resolvePath(dir).path()).exists() return settingsFile(baseDirectory.resolvePath(dir).path()).exists()
|| qtVersionsFile(baseDirectory.resolvePath(dir).path()).exists(); || qtVersionsFile(baseDirectory.resolvePath(dir).path()).exists();
}); });
if (!validDir.isEmpty())
return validDir;
return {};
} }
static FancyLineEdit::AsyncValidationResult validateQtInstallDir(const QString &input, static FancyLineEdit::AsyncValidationResult validateQtInstallDir(const QString &input,
const FilePath &baseDirectory) const FilePath &baseDirectory)
{ {
const FilePath qtDir = FilePath::fromUserInput(input); const FilePath qtDir = FilePath::fromUserInput(input);
if (!settingsDirForQtDir(baseDirectory, qtDir)) { if (!settingsDirForQtDir(baseDirectory, qtDir).isEmpty()) {
const FilePaths filesToCheck = settingsFilesToCheck() + qtversionFilesToCheck(); const FilePaths filesToCheck = settingsFilesToCheck() + qtversionFilesToCheck();
return make_unexpected( return make_unexpected(
"<html><body>" "<html><body>"
@@ -1097,12 +1093,12 @@ void QtSettingsPageWidget::linkWithQt()
dialog.setMinimumWidth(520); dialog.setMinimumWidth(520);
dialog.exec(); dialog.exec();
if (dialog.result() == QDialog::Accepted) { if (dialog.result() == QDialog::Accepted) {
const std::optional<FilePath> settingsDir = settingsDirForQtDir(pathInput->baseDirectory(), const FilePath settingsDir = settingsDirForQtDir(pathInput->baseDirectory(),
pathInput->unexpandedFilePath()); pathInput->unexpandedFilePath());
if (QTC_GUARD(settingsDir)) { if (QTC_GUARD(!settingsDir.isEmpty())) {
const FilePath settingsFilePath = settingsFile(ICore::resourcePath().path()); const FilePath settingsFilePath = settingsFile(ICore::resourcePath().path());
QSettings settings(settingsFilePath.toFSPathString(), QSettings::IniFormat); QSettings settings(settingsFilePath.toFSPathString(), QSettings::IniFormat);
settings.setValue(kInstallSettingsKey, settingsDir->toVariant()); settings.setValue(kInstallSettingsKey, settingsDir.toVariant());
settings.sync(); settings.sync();
if (settings.status() == QSettings::AccessError) { if (settings.status() == QSettings::AccessError) {
QMessageBox::critical(ICore::dialogParent(), QMessageBox::critical(ICore::dialogParent(),