forked from qt-creator/qt-creator
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>
This commit is contained in:
committed by
Rainer Keller
parent
2c6235998d
commit
6fae98477b
@@ -22,6 +22,7 @@ public:
|
||||
InvalidPath,
|
||||
ValidPathInvalidPackage,
|
||||
ValidPackageMismatchedVersion,
|
||||
ValidPackageVersionNotDetected,
|
||||
ValidPackage
|
||||
};
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user