From d475daecf012d8c0d494b8a5737c24277bbe91db Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 20 May 2020 07:52:54 +0200 Subject: [PATCH] Utils: Add some convenience functions to ListModel allData(), setAllData(), and findIndex() Change-Id: I1f43e3b5c3810f219057e7e09338e06a66e1858a Reviewed-by: David Schulz --- src/libs/utils/listmodel.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) 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) {