forked from qt-creator/qt-creator
Utils: Add some convenience functions to ListModel
allData(), setAllData(), and findIndex(<predicate>) Change-Id: I1f43e3b5c3810f219057e7e09338e06a66e1858a Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -120,6 +120,28 @@ public:
|
|||||||
return item ? &item->itemData : nullptr;
|
return item ? &item->itemData : nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QModelIndex findIndex(const std::function<bool(const ItemData &)> &pred) const
|
||||||
|
{
|
||||||
|
ChildType *item = findItemByData(pred);
|
||||||
|
return item ? BaseTreeModel::indexForItem(item) : QModelIndex();
|
||||||
|
}
|
||||||
|
|
||||||
|
QList<ItemData> allData() const
|
||||||
|
{
|
||||||
|
QList<ItemData> res;
|
||||||
|
BaseModel::rootItem()->forFirstLevelChildren([&res](ChildType *child) {
|
||||||
|
res.append(child->itemData);
|
||||||
|
});
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
void setAllData(const QList<ItemData> &items)
|
||||||
|
{
|
||||||
|
BaseModel::rootItem()->removeChildren();
|
||||||
|
for (const ItemData &data : items)
|
||||||
|
appendItem(data);
|
||||||
|
}
|
||||||
|
|
||||||
void forItems(const std::function<void(ItemData &)> &func) const
|
void forItems(const std::function<void(ItemData &)> &func) const
|
||||||
{
|
{
|
||||||
BaseModel::rootItem()->forFirstLevelChildren([func](ChildType *child) {
|
BaseModel::rootItem()->forFirstLevelChildren([func](ChildType *child) {
|
||||||
|
Reference in New Issue
Block a user