Review Request: Add a setGenericFilter-function to qml-DataModel
Anton Kreuzkamp
akreuzkamp at web.de
Tue Apr 26 20:09:20 CEST 2011
> On April 26, 2011, 3:25 p.m., Marco Martin wrote:
> > Do you have an use case wheree this would be necessary where a SortFilterModel would not be enough?
>
> Anton Kreuzkamp wrote:
> In the declarative RTM plasmoid I want to show only the non-completed tasks. Therefore I have
> function isCompleted(sourceName) {
> return !tasks.data[sourceName]["isCompleted"]
> }
> PlasmaCore.DataModel {
> dataSource: tasks
> Component.onCompleted: setGenericFilter(Filter.isCompleted)
> }
>
> As I need to know what tasks.data[sourceName]["isCompleted"] is and not only need to know that "isCompleted" exists I can't SortFilterModel, can I?
>
> Marco Martin wrote:
> you would just set the filter role as iscompleted and "true" as the filter and that should be it
so I would do
PlasmaCore.SortFilterModel {
sourceModel: sourceModel
filterRole:"isCompleted"
filterRegExp:"false"
}
PlasmaCore.DataModel {
dataSource: tasks
id: sourceModel
}
right?
So, anyhow I see this is not needed, so I'll discard the reviewrequest.
- Anton
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/101240/#review2899
-----------------------------------------------------------
On April 26, 2011, 3:07 p.m., Anton Kreuzkamp wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/101240/
> -----------------------------------------------------------
>
> (Updated April 26, 2011, 3:07 p.m.)
>
>
> Review request for Plasma.
>
>
> Summary
> -------
>
> Adds a setGenericFilter-function to qml-DataModel. It works similar to ECMA-Script5's Array.filter-function. You overgive a javascript-function that gets called for every possible entry in the dataModel, and only the entries where the given function returns true get added to the model (see the example below).
> There might be a more qtish/qmlish/plasmaish way to do this, and I'm fine with it if you say this is not the kind of API we want. Just a suggestion.
>
> example:
> function foo(name) {
> return bar.data[name].id == "hello world"
> }
> PlasmaCore.DataModel {
> dataSource: bar
> Component.onCompleted: setGenericFilter(foo)
> }
>
> Realizing this as a property is not possible, as qml doesn't accept functions as property-values.
>
>
> Diffs
> -----
>
> plasma/declarativeimports/core/datamodel.h e74ffd5
> plasma/declarativeimports/core/datamodel.cpp 14d7f1f
>
> Diff: http://git.reviewboard.kde.org/r/101240/diff
>
>
> Testing
> -------
>
> As far as I have tested it, it works.
> I didn't test it with a keyRoleFilter set, as don't quite get how it works.
>
>
> Thanks,
>
> Anton
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/plasma-devel/attachments/20110426/d89995e6/attachment-0001.htm
More information about the Plasma-devel
mailing list