KitManager: Get rid of KitMatcher class

Use std::function instead. Clean up API while at it.

Change-Id: I6e401ab57f5375e36710c30508c596af3f4b3385
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Tobias Hunger
2017-01-11 17:25:58 +01:00
parent 1d4bf8c157
commit 25fbcca96b
28 changed files with 126 additions and 157 deletions

View File

@@ -578,7 +578,7 @@ static QWidget *addSearch(BaseTreeView *treeView, const QString &title,
return widget;
}
static std::function<bool(const Kit *)> cdbMatcher(char wordWidth = 0)
static Kit::Predicate cdbPredicate(char wordWidth = 0)
{
return [wordWidth](const Kit *k) -> bool {
if (DebuggerKitInformation::engineType(k) != CdbEngineType
@@ -596,10 +596,10 @@ static std::function<bool(const Kit *)> cdbMatcher(char wordWidth = 0)
static Kit *findUniversalCdbKit()
{
if (Utils::is64BitWindowsSystem()) {
if (Kit *cdb64Kit = KitManager::find(KitMatcher(cdbMatcher(64))))
if (Kit *cdb64Kit = KitManager::kit(cdbPredicate(64)))
return cdb64Kit;
}
return KitManager::find(KitMatcher(cdbMatcher()));
return KitManager::kit(cdbPredicate());
}
///////////////////////////////////////////////////////////////////////
@@ -1122,17 +1122,17 @@ static Kit *guessKitFromParameters(const DebuggerRunParameters &rp)
if (!abis.isEmpty()) {
// Try exact abis.
kit = KitManager::find(KitMatcher([abis](const Kit *k) -> bool {
kit = KitManager::kit([abis](const Kit *k) {
const Abi tcAbi = ToolChainKitInformation::targetAbi(k);
return abis.contains(tcAbi) && !DebuggerKitInformation::configurationErrors(k);
}));
});
if (!kit) {
// Or something compatible.
kit = KitManager::find(KitMatcher([abis](const Kit *k) -> bool {
kit = KitManager::kit([abis](const Kit *k) {
const Abi tcAbi = ToolChainKitInformation::targetAbi(k);
return !DebuggerKitInformation::configurationErrors(k)
&& Utils::contains(abis, [tcAbi](const Abi &a) { return a.isCompatibleWith(tcAbi); });
}));
});
}
}
@@ -1193,7 +1193,7 @@ bool DebuggerPluginPrivate::parseArgument(QStringList::const_iterator &it,
} else if (key == QLatin1String("terminal")) {
rp.useTerminal = bool(val.toInt());
} else if (key == QLatin1String("kit")) {
kit = KitManager::find(Id::fromString(val));
kit = KitManager::kit(Id::fromString(val));
}
}
}