diff --git a/src/libs/utils/listmodel.h b/src/libs/utils/listmodel.h index f859b8e9758..7c1b5dfd760 100644 --- a/src/libs/utils/listmodel.h +++ b/src/libs/utils/listmodel.h @@ -120,6 +120,28 @@ public: return item ? &item->itemData : nullptr; } + QModelIndex findIndex(const std::function &pred) const + { + ChildType *item = findItemByData(pred); + return item ? BaseTreeModel::indexForItem(item) : QModelIndex(); + } + + QList allData() const + { + QList res; + BaseModel::rootItem()->forFirstLevelChildren([&res](ChildType *child) { + res.append(child->itemData); + }); + return res; + } + + void setAllData(const QList &items) + { + BaseModel::rootItem()->removeChildren(); + for (const ItemData &data : items) + appendItem(data); + } + void forItems(const std::function &func) const { BaseModel::rootItem()->forFirstLevelChildren([func](ChildType *child) {