diff options
author | Rainer Keller <rainer.keller@qt.io> | 2022-10-19 11:15:16 +0200 |
---|---|---|
committer | Rainer Keller <Rainer.Keller@qt.io> | 2022-10-24 10:59:43 +0000 |
commit | 6fae98477bdcd72afdec7e31a8fee2c57fbc623a (patch) | |
tree | d775b5f5928db37748e49f10e064ee87f1567838 /src/plugins/mcusupport/mcupackage.cpp | |
parent | 2c6235998d8f12faa919809dd1dd3309391a61d6 (diff) | |
download | qt-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.cpp | 26 |
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; } |