Utils: Add findAnyChild() to TypedTreeItem

Removes some static casts on the user side.

Change-Id: I0a9ae512f294c0e78e0a5890e557c483af86abfe
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Christian Stenger
2020-10-22 13:35:12 +02:00
parent 8e78b9a379
commit b4cc084a98
6 changed files with 11 additions and 10 deletions

View File

@@ -99,10 +99,9 @@ const ITestTreeItem *BoostTestResult::findTestTreeItem() const
if (!rootNode)
return nullptr;
const auto foundItem = rootNode->findAnyChild([this](const Utils::TreeItem *item) {
return rootNode->findAnyChild([this](const Utils::TreeItem *item) {
return matches(static_cast<const BoostTestTreeItem *>(item));
});
return static_cast<const ITestTreeItem *>(foundItem);
}
bool BoostTestResult::matches(const BoostTestTreeItem *item) const

View File

@@ -74,7 +74,7 @@ const ITestTreeItem *CatchResult::findTestTreeItem() const
const QString tcName = name();
const QString tcFilePath = fileName();
const auto item = rootNode->findAnyChild([&tcName, &tcFilePath](const Utils::TreeItem *item) {
return rootNode->findAnyChild([&tcName, &tcFilePath](const Utils::TreeItem *item) {
const auto treeItem = static_cast<const CatchTreeItem *>(item);
if (!treeItem || treeItem->filePath() != tcFilePath)
return false;
@@ -82,7 +82,6 @@ const ITestTreeItem *CatchResult::findTestTreeItem() const
return parameterized ? tcName.startsWith(treeItem->name() + " - ")
: tcName == treeItem->name();
});
return static_cast<const ITestTreeItem *>(item);
}
} // namespace Internal

View File

@@ -103,11 +103,10 @@ const ITestTreeItem *GTestResult::findTestTreeItem() const
if (!rootNode)
return nullptr;
const auto item = rootNode->findAnyChild([this](const Utils::TreeItem *item) {
return rootNode->findAnyChild([this](const Utils::TreeItem *item) {
const auto treeItem = static_cast<const TestTreeItem *>(item);
return treeItem && matches(treeItem);
});
return static_cast<const ITestTreeItem *>(item);
}
bool GTestResult::matches(const TestTreeItem *treeItem) const

View File

@@ -141,11 +141,10 @@ const ITestTreeItem *QtTestResult::findTestTreeItem() const
const TestTreeItem *rootNode = framework->rootNode();
QTC_ASSERT(rootNode, return nullptr);
const auto item = rootNode->findAnyChild([this](const Utils::TreeItem *item) {
return rootNode->findAnyChild([this](const Utils::TreeItem *item) {
const TestTreeItem *treeItem = static_cast<const TestTreeItem *>(item);
return treeItem && matches(treeItem);
});
return static_cast<const ITestTreeItem *>(item);
}
bool QtTestResult::matches(const TestTreeItem *item) const