Debugger: Add some expandable macros to Debugger options page

New %{Debugger:Name} for global use, %{Debugger:{Type,Version,...}}
for expansion within the name. Also re-initialize from file if the
saved version is empty (e.g. if the debugger was registered before
the version field was present)

Change-Id: I45568d78147597b30074a2ce4ddcf569bce15192
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
This commit is contained in:
hjk
2015-03-03 16:49:59 +01:00
parent 3ddbba1415
commit 04532fe604
7 changed files with 54 additions and 29 deletions

View File

@@ -191,7 +191,7 @@ void DebuggerItemManager::autoDetectCdbDebuggers()
item.setAbis(Abi::abisOfBinary(cdb));
item.setCommand(cdb);
item.setEngineType(CdbEngineType);
item.setDisplayName(uniqueDisplayName(tr("Auto-detected CDB at %1").arg(cdb.toUserOutput())));
item.setUnexpandedDisplayName(uniqueDisplayName(tr("Auto-detected CDB at %1").arg(cdb.toUserOutput())));
addDebugger(item);
}
}
@@ -260,7 +260,7 @@ void DebuggerItemManager::autoDetectGdbOrLldbDebuggers()
item.setCommand(command);
item.reinitializeFromFile();
//: %1: Debugger engine type (GDB, LLDB, CDB...), %2: Path
item.setDisplayName(tr("System %1 at %2")
item.setUnexpandedDisplayName(tr("System %1 at %2")
.arg(item.engineTypeName()).arg(command.toUserOutput()));
item.setAutoDetected(true);
addDebugger(item);
@@ -299,7 +299,7 @@ void DebuggerItemManager::readLegacyDebuggers(const FileName &file)
item.setCommand(command);
item.setAutoDetected(true);
item.reinitializeFromFile();
item.setDisplayName(tr("Extracted from Kit %1").arg(kitName));
item.setUnexpandedDisplayName(tr("Extracted from Kit %1").arg(kitName));
addDebugger(item);
}
}
@@ -379,7 +379,7 @@ QVariant DebuggerItemManager::registerDebugger(const DebuggerItem &item)
if (d.command() == item.command()
&& d.isAutoDetected() == item.isAutoDetected()
&& d.engineType() == item.engineType()
&& d.displayName() == item.displayName()
&& d.unexpandedDisplayName() == item.unexpandedDisplayName()
&& d.abis() == item.abis()) {
return d.id();
}
@@ -407,7 +407,7 @@ void DebuggerItemManager::deregisterDebugger(const QVariant &id)
QString DebuggerItemManager::uniqueDisplayName(const QString &base)
{
foreach (const DebuggerItem &item, m_debuggers)
if (item.displayName() == base)
if (item.unexpandedDisplayName() == base)
return uniqueDisplayName(base + QLatin1String(" (1)"));
return base;