diff --git a/src/plugins/squish/squishsettings.cpp b/src/plugins/squish/squishsettings.cpp index 58fad483e77..e763db9f80a 100644 --- a/src/plugins/squish/squishsettings.cpp +++ b/src/plugins/squish/squishsettings.cpp @@ -42,6 +42,17 @@ SquishSettings::SquishSettings() squishPath.setDisplayStyle(StringAspect::PathChooserDisplay); squishPath.setExpectedKind(PathChooser::ExistingDirectory); squishPath.setPlaceHolderText(Tr::tr("Path to Squish installation")); + squishPath.setValidationFunction([this](FancyLineEdit *edit, QString *error) { + QTC_ASSERT(edit, return false); + if (!squishPath.pathChooser()->defaultValidationFunction()(edit, error)); + return false; + const FilePath squishServer = FilePath::fromString(edit->text()) + .pathAppended(HostOsInfo::withExecutableSuffix("bin/squishserver")); + const bool valid = squishServer.isExecutableFile(); + if (!valid && error) + *error = Tr::tr("Path does not contain server executable at its default location."); + return valid; + }); registerAspect(&licensePath); licensePath.setSettingsKey("LicensePath");