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

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


-----------------------------------------------------------
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 (updated)
-------

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/31e438ec/attachment.html>


More information about the Plasma-devel mailing list