Review Request: Do not reset Plasma::RunnerModel when new matches are added

Aurélien Gâteau agateau at kde.org
Fri May 11 15:13:36 UTC 2012



> On May 11, 2012, 2:36 p.m., Marco Martin wrote:
> > I think is in the good direction, what would be cool is to insert rows in order of descendednt relevancy, even if a more relevant row arrives after the already existing ones

I see the advantage of sorting by relevancy, but I am a bit afraid of going that way because:
- It changes the way rows are sorted in the model
- It is more complicated to get right
- From a user point of view, it means new items will get inserted between existing items. Thus existing items will move, making them much more difficult to target with the mouse
- A proxy model can be set up to sort the current model by relevancy. If other uses of the model require a different sorting, it feels suboptimal to sort by relevancy only to have another proxy model sort the items using another criteria


- Aurélien


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/104917/#review13719
-----------------------------------------------------------


On May 11, 2012, 2:13 p.m., Aurélien Gâteau wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/104917/
> -----------------------------------------------------------
> 
> (Updated May 11, 2012, 2:13 p.m.)
> 
> 
> Review request for Plasma and Aaron J. Seigo.
> 
> 
> Description
> -------
> 
> When RunnerModel receives the matchesChanged() from RunnerManager, it resets itself and replace its copy of matches with the new one. This cause some flicker when the model is used with a QML ListView because the view clears itself each time the model is reset.
> 
> Ideally, RunnerManager should provide more fine-grained updates to RunnerModel, but for now I found the below patch to give good results. It basically checks if the new match list is equal to the old one plus some new items. If this is the case, it uses beginInsertRows() and endInsertRows() instead of resetting the model.
> 
> Note: the code needs a recent version of kdelibs KDE/4.8 branch because it requires the != operator for Plasma::QueryMatch, which I added earlier today.
> 
> 
> Diffs
> -----
> 
>   plasma/declarativeimports/krunnermodel/runnermodel.cpp 7c5485b 
> 
> Diff: http://git.reviewboard.kde.org/r/104917/diff/
> 
> 
> Testing
> -------
> 
> Tested with SAL-QML (currently in kde-workspace, in plasma/sreich/sal-qml). Gets lots of flickering because items created by the SAL-QML view fades in when added. Flickering goes away after the patch.
> 
> 
> Thanks,
> 
> Aurélien Gâteau
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20120511/9527419e/attachment-0001.html>


More information about the Plasma-devel mailing list