<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
<tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="http://git.reviewboard.kde.org/r/101240/">http://git.reviewboard.kde.org/r/101240/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On April 26th, 2011, 3:25 p.m., <b>Marco Martin</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Do you have an use case wheree this would be necessary where a SortFilterModel would not be enough?</pre>
</blockquote>
<p>On April 26th, 2011, 4:03 p.m., <b>Anton Kreuzkamp</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">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?</pre>
</blockquote>
<p>On April 26th, 2011, 5:54 p.m., <b>Marco Martin</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">you would just set the filter role as iscompleted and "true" as the filter and that should be it </pre>
</blockquote>
</blockquote>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">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.</pre>
<br />
<p>- Anton</p>
<br />
<p>On April 26th, 2011, 3:07 p.m., Anton Kreuzkamp wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/media/rb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
<tr>
<td>
<div>Review request for Plasma.</div>
<div>By Anton Kreuzkamp.</div>
<p style="color: grey;"><i>Updated April 26, 2011, 3:07 p.m.</i></p>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">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.</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">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.</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>plasma/declarativeimports/core/datamodel.h <span style="color: grey">(e74ffd5)</span></li>
<li>plasma/declarativeimports/core/datamodel.cpp <span style="color: grey">(14d7f1f)</span></li>
</ul>
<p><a href="http://git.reviewboard.kde.org/r/101240/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>