forked from qt-creator/qt-creator
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:
@@ -149,6 +149,11 @@ public:
|
|||||||
TreeItem::insertOrderedChild(item, cmp0);
|
TreeItem::insertOrderedChild(item, cmp0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ChildType *findAnyChild(const std::function<bool(TreeItem *)> &pred) const
|
||||||
|
{
|
||||||
|
return static_cast<ChildType *>(TreeItem::findAnyChild(pred));
|
||||||
|
}
|
||||||
|
|
||||||
ChildType *reverseFindAnyChild(const std::function<bool(TreeItem *)> &pred) const
|
ChildType *reverseFindAnyChild(const std::function<bool(TreeItem *)> &pred) const
|
||||||
{
|
{
|
||||||
return static_cast<ChildType *>(TreeItem::reverseFindAnyChild(pred));
|
return static_cast<ChildType *>(TreeItem::reverseFindAnyChild(pred));
|
||||||
|
|||||||
@@ -99,10 +99,9 @@ const ITestTreeItem *BoostTestResult::findTestTreeItem() const
|
|||||||
if (!rootNode)
|
if (!rootNode)
|
||||||
return nullptr;
|
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 matches(static_cast<const BoostTestTreeItem *>(item));
|
||||||
});
|
});
|
||||||
return static_cast<const ITestTreeItem *>(foundItem);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool BoostTestResult::matches(const BoostTestTreeItem *item) const
|
bool BoostTestResult::matches(const BoostTestTreeItem *item) const
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ const ITestTreeItem *CatchResult::findTestTreeItem() const
|
|||||||
|
|
||||||
const QString tcName = name();
|
const QString tcName = name();
|
||||||
const QString tcFilePath = fileName();
|
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);
|
const auto treeItem = static_cast<const CatchTreeItem *>(item);
|
||||||
if (!treeItem || treeItem->filePath() != tcFilePath)
|
if (!treeItem || treeItem->filePath() != tcFilePath)
|
||||||
return false;
|
return false;
|
||||||
@@ -82,7 +82,6 @@ const ITestTreeItem *CatchResult::findTestTreeItem() const
|
|||||||
return parameterized ? tcName.startsWith(treeItem->name() + " - ")
|
return parameterized ? tcName.startsWith(treeItem->name() + " - ")
|
||||||
: tcName == treeItem->name();
|
: tcName == treeItem->name();
|
||||||
});
|
});
|
||||||
return static_cast<const ITestTreeItem *>(item);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
@@ -103,11 +103,10 @@ const ITestTreeItem *GTestResult::findTestTreeItem() const
|
|||||||
if (!rootNode)
|
if (!rootNode)
|
||||||
return nullptr;
|
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);
|
const auto treeItem = static_cast<const TestTreeItem *>(item);
|
||||||
return treeItem && matches(treeItem);
|
return treeItem && matches(treeItem);
|
||||||
});
|
});
|
||||||
return static_cast<const ITestTreeItem *>(item);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GTestResult::matches(const TestTreeItem *treeItem) const
|
bool GTestResult::matches(const TestTreeItem *treeItem) const
|
||||||
|
|||||||
@@ -141,11 +141,10 @@ const ITestTreeItem *QtTestResult::findTestTreeItem() const
|
|||||||
const TestTreeItem *rootNode = framework->rootNode();
|
const TestTreeItem *rootNode = framework->rootNode();
|
||||||
QTC_ASSERT(rootNode, return nullptr);
|
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);
|
const TestTreeItem *treeItem = static_cast<const TestTreeItem *>(item);
|
||||||
return treeItem && matches(treeItem);
|
return treeItem && matches(treeItem);
|
||||||
});
|
});
|
||||||
return static_cast<const ITestTreeItem *>(item);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool QtTestResult::matches(const TestTreeItem *item) const
|
bool QtTestResult::matches(const TestTreeItem *item) const
|
||||||
|
|||||||
@@ -1936,9 +1936,9 @@ void tst_Dumpers::dumper()
|
|||||||
}
|
}
|
||||||
|
|
||||||
const QString iname = check.iname;
|
const QString iname = check.iname;
|
||||||
WatchItem *item = static_cast<WatchItem *>(local.findAnyChild([iname](Utils::TreeItem *item) {
|
WatchItem *item = local.findAnyChild([iname](Utils::TreeItem *item) {
|
||||||
return static_cast<WatchItem *>(item)->internalName() == iname;
|
return static_cast<WatchItem *>(item)->internalName() == iname;
|
||||||
}));
|
});
|
||||||
if (!item) {
|
if (!item) {
|
||||||
if (check.optionallyPresent)
|
if (check.optionallyPresent)
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user