diff options
author | hjk <hjk@qt.io> | 2020-05-20 07:52:54 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2020-05-20 07:29:22 +0000 |
commit | d475daecf012d8c0d494b8a5737c24277bbe91db (patch) | |
tree | e2e5b6ffae8e5ad00e627388f37f6086a0d723b6 /src/libs/utils/listmodel.h | |
parent | 317d0a77a11f3892d2b2cf758eb1c70d8d909721 (diff) |
Utils: Add some convenience functions to ListModel
allData(), setAllData(), and findIndex(<predicate>)
Change-Id: I1f43e3b5c3810f219057e7e09338e06a66e1858a
Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/libs/utils/listmodel.h')
-rw-r--r-- | src/libs/utils/listmodel.h | 22 |
1 files changed, 22 insertions, 0 deletions
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<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 { BaseModel::rootItem()->forFirstLevelChildren([func](ChildType *child) { |