Encapsulates a filtered set of visual data items. More...
Import Statement: | import QtQml.Models 2.11 |
The DelegateModelGroup type provides a means to address the model data of a DelegateModel's delegate items, as well as sort and filter these delegate items.
The initial set of instantiable delegate items in a DelegateModel is represented by its items group, which normally directly reflects the contents of the model assigned to DelegateModel::model. This set can be changed to the contents of any other member of DelegateModel::groups by assigning the name of that DelegateModelGroup to the DelegateModel::filterOnGroup property.
The data of an item in a DelegateModelGroup can be accessed using the get() function, which returns information about group membership and indexes as well as model data. In combination with the move() function this can be used to implement view sorting, with remove() to filter items out of a view, or with setGroups() and Package delegates to categorize items into different views.
Data from models can be supplemented by inserting data directly into a DelegateModelGroup with the insert() function. This can be used to introduce mock items into a view, or placeholder items that are later resolved to real model data when it becomes available.
Delegate items can also be instantiated directly from a DelegateModelGroup using the create() function, making it possible to use DelegateModel without an accompanying view type or to cherry-pick specific items that should be instantiated irregardless of whether they're currently within a view's visible area.
Note: This type is also available as VisualDataGroup in the Qt QML module due to compatibility reasons.
See also QML Dynamic View Ordering Tutorial.
count : int |
This property holds the number of items in the group.
includeByDefault : bool |
This property holds whether new items are assigned to this group by default.
name : string |
This property holds the name of the group.
Each group in a model must have a unique name starting with a lower case letter.
This signal is emitted when items have been removed from or inserted into the group.
Each object in the removed and inserted arrays has two values; the index of the first item inserted or removed and a count of the number of consecutive items inserted or removed.
Each index is adjusted for previous changes with all removed items preceding any inserted items.
The corresponding handler is onChanged
.
create(int index, jsdict data, array groups = undefined) |
create(int index) |
object get(int index) |
Returns a javascript object describing the item at index in the group.
The returned object contains the same information that is available to a delegate from the DelegateModel attached as well as the model for that item. It has the properties:
insert(jsdict data, var groups = undefined) |
insert(int index, jsdict data, array groups = undefined) |
Removes count items starting at index from groups.
Binds an unresolved item at from to an item in DelegateModel::model at index to.
Unresolved items are entries whose data has been inserted into a DelegateModelGroup instead of being derived from a DelegateModel::model index. Resolving an item will replace the item at the target index with the unresolved item. A resolved an item will reflect the data of the source model at its bound index and will move when that index moves like any other item.
If a new item is replaced in the DelegateModelGroup onChanged() handler its insertion and replacement will be communicated to views as an atomic operation, creating the appearance that the model contents have not changed, or if the unresolved and model item are not adjacent that the previously unresolved item has simply moved.
Sets the groups count items starting at index belong to.
Sets the groups count items starting at index belong to.