[SailfishDevel] One ListModel with multiple SilicaGridViews
Tomek
discuss at tdress.de
Sat Mar 15 15:26:34 UTC 2014
I am wondering on how I could display a single ListModel in multiple (filtered) SilicaGridViews?
Simply making an item invisible does not work , because it still consumes (cellWidth x cellHeight) the space.
Or would you know a project which did something similar?
I know I could also implement my own model in c++. Probably something like this was done my someone already?
I am experementing with this QML file (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});
}
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.sailfishos.org/pipermail/devel/attachments/20140315/5cb6f6e2/attachment.html>
More information about the Devel
mailing list