[SailfishDevel] One ListModel for multiple SilicaGridViews
Andrey Kozhevnikov
coderusinbox at gmail.com
Sun Mar 16 08:03:42 UTC 2014
what kind of model you implementing? files model and abstract data model
solutions can be differ
On 16.03.2014 11:37, Tomek wrote:
> I am wondering how I could display a single ListModel in multiple
> SilicaGridViews (filtered)?
> Simply making an item invisible in a specific view does not work,
> because it still consumes (cellWidth x cellHeight) the space.
> I know, I could also implement my own model in c++. Probably something
> like this was done my someone already?
>
>
> Currently, I am experimenting with multiple models which I need to
> keep in sync (implementation is far from ready ;)).
> [FilteredListModel.qml]
> import QtQuick 2.0
> import Sailfish.Silica 1.0
> Item {
> property ListModel filteredModel: _filteredModel
> property ListModel model: _model
> property string filterRoleName
> property var filterValue
> ListModel {
> id: _filteredModel
> }
> ListModel {
> id: _model
> onRowsInserted: {
> for (var i = first; i <= last; i++) {
> var entry = model.get(i);
> if (entry[filterRoleName] === filterValue)
> {
> _filteredModel.append(entry);
> }
> }
> }
> onRowsRemoved: {
> for (var i = first; i <= last; i++) {
> _filteredModel.remove(i);
> }
> }
> }
> function append(sobject)
> {
> model.append(sobject);
> }
> function setProperty(index, key, value )
> {
> model.setProperty(index, key, value);
> var entry = model.get(index);
> if (entry[filterRoleName] === filterValue)
> {
> _filteredModel.set(index, model.get(index))
> }
> else
> {
> _filteredModel.remove(index);
> }
> }
> function remove(index)
> {
> model.remove(index);
> }
> Component.onCompleted: {
> model.append({"name": "Apple","cost": 0.25,active: false});
> model.append({"name": "Orange","cost": 0.90,active: true});
> model.append({"name": "Bannana","cost": 0.30,active: true});
> model.append({"name": "Ananas","cost": 3.10,active: true});
> }
> }
>
>
>
> _______________________________________________
> SailfishOS.org Devel mailing list
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.sailfishos.org/pipermail/devel/attachments/20140316/fea34294/attachment.html>
More information about the Devel
mailing list