summaryrefslogtreecommitdiff
path: root/src/plugins/mcusupport/mcupackage.cpp
diff options
context:
space:
mode:
authorRainer Keller <rainer.keller@qt.io>2022-10-19 11:15:16 +0200
committerRainer Keller <Rainer.Keller@qt.io>2022-10-24 10:59:43 +0000
commit6fae98477bdcd72afdec7e31a8fee2c57fbc623a (patch)
treed775b5f5928db37748e49f10e064ee87f1567838 /src/plugins/mcusupport/mcupackage.cpp
parent2c6235998d8f12faa919809dd1dd3309391a61d6 (diff)
downloadqt-creator-6fae98477bdcd72afdec7e31a8fee2c57fbc623a.tar.gz
McuSupport: Fix invalid regular expression is considered valid
If a match was empty it was the same case as if no regular expression was set. Adding a new case that is triggered when there is a version detector but it returns an empty version string. Change-Id: I26c2f803b2c6a95b85d6b781085bfa9cd4b51975 Reviewed-by: Christian Stenger <christian.stenger@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Diffstat (limited to 'src/plugins/mcusupport/mcupackage.cpp')
-rw-r--r--src/plugins/mcusupport/mcupackage.cpp26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/plugins/mcusupport/mcupackage.cpp b/src/plugins/mcusupport/mcupackage.cpp
index 051ce8d642..d79fe8c8a8 100644
--- a/src/plugins/mcusupport/mcupackage.cpp
+++ b/src/plugins/mcusupport/mcupackage.cpp
@@ -132,14 +132,22 @@ void McuPackage::updateStatus()
m_detectedVersion = validPath && validPackage && m_versionDetector
? m_versionDetector->parseVersion(basePath())
: QString();
- const bool validVersion = m_detectedVersion.isEmpty() || m_versions.isEmpty()
- || m_versions.contains(m_detectedVersion);
- m_status = validPath ? (validPackage ? (validVersion ? Status::ValidPackage
- : Status::ValidPackageMismatchedVersion)
- : Status::ValidPathInvalidPackage)
- : m_path.isEmpty() ? Status::EmptyPath
- : Status::InvalidPath;
+ const bool validVersion = m_versions.isEmpty() || m_versions.contains(m_detectedVersion);
+
+ if (m_path.isEmpty()) {
+ m_status = Status::EmptyPath;
+ } else if (!validPath) {
+ m_status = Status::InvalidPath;
+ } else if (!validPackage) {
+ m_status = Status::ValidPathInvalidPackage;
+ } else if (m_versionDetector && m_detectedVersion.isEmpty()) {
+ m_status = Status::ValidPackageVersionNotDetected;
+ } else if (!validVersion) {
+ m_status = Status::ValidPackageMismatchedVersion;
+ } else {
+ m_status = Status::ValidPackage;
+ }
emit statusChanged();
}
@@ -161,6 +169,7 @@ void McuPackage::updateStatusUi()
m_infoLabel->setType(InfoLabel::Ok);
break;
case Status::ValidPackageMismatchedVersion:
+ case Status::ValidPackageVersionNotDetected:
m_infoLabel->setType(InfoLabel::Warning);
break;
default:
@@ -215,6 +224,9 @@ QString McuPackage::statusText() const
? tr("Path is empty.")
: tr("Path is empty, %1 not found.").arg(displayRequiredPath);
break;
+ case Status::ValidPackageVersionNotDetected:
+ response = tr("Path %1 exists, but version could not be detected.").arg(displayPackagePath);
+ break;
}
return response;
}