ProjectExplorer: Prevent cascading "Replacement for" kit names

Fixes: QTCREATORBUG-26330
Change-Id: Id7abd00afb70fe2d2e3c1a43e2ea1298c0ff20cc
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Christian Kandeler
2021-10-20 14:42:25 +02:00
parent c292a4d591
commit 15639d00ed

View File

@@ -805,8 +805,9 @@ void Project::createTargetFromMap(const QVariantMap &map, int index)
deviceTypeId = Constants::DESKTOP_DEVICE_TYPE; deviceTypeId = Constants::DESKTOP_DEVICE_TYPE;
const QString formerKitName = targetMap.value(Target::displayNameKey()).toString(); const QString formerKitName = targetMap.value(Target::displayNameKey()).toString();
k = KitManager::registerKit([deviceTypeId, &formerKitName](Kit *kit) { k = KitManager::registerKit([deviceTypeId, &formerKitName](Kit *kit) {
const QString tempKitName = makeUniquelyNumbered( const QString kitNameSuggestion = formerKitName.contains(tr("Replacement for"))
tr("Replacement for \"%1\"").arg(formerKitName), ? formerKitName : tr("Replacement for \"%1\"").arg(formerKitName);
const QString tempKitName = makeUniquelyNumbered(kitNameSuggestion,
transform(KitManager::kits(), &Kit::unexpandedDisplayName)); transform(KitManager::kits(), &Kit::unexpandedDisplayName));
kit->setUnexpandedDisplayName(tempKitName); kit->setUnexpandedDisplayName(tempKitName);
DeviceTypeKitAspect::setDeviceTypeId(kit, deviceTypeId); DeviceTypeKitAspect::setDeviceTypeId(kit, deviceTypeId);