Review Request 117813: Make the system tray faster

David Edmundson david at davidedmundson.co.uk
Fri May 2 16:10:15 UTC 2014


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/117813/
-----------------------------------------------------------

(Updated May 2, 2014, 4:10 p.m.)


Review request for Plasma.


Repository: plasma-workspace


Description
-------

Port QQmlListProperty to QAbstractListModel.
QQmlListProperty only has a signal that the list has changed.This means when used in a ListView every delegate has to be redone whenever a single item is inserted or removed rather than just moved.

Given TaskDelegate is not the simplest of things this has a performance gain, most noticeably on startup. Also rather than sorting all items after an insert items are inserted in the right place using qLowerBound. Now we have the correct signals we can remove the compression, they won't add anything. 


Other commits:

Avoid constructing a QString for comparing, use QLatin1String for == operators.

Remove useless include

Do not construct a map inside a lessThan function

lessThan functions have to be fast.
Also Map -> Hash as we're not using order here.


Diffs (updated)
-----

  applets/systemtray/package/contents/ui/CompactRepresentation.qml 01308e7 
  applets/systemtray/package/contents/ui/ExpandedRepresentation.qml 646b908 
  applets/systemtray/package/contents/ui/PlasmoidItem.qml 0eb1687 
  applets/systemtray/package/contents/ui/StatusNotifierItem.qml fc889a8 
  applets/systemtray/package/contents/ui/TaskDelegate.qml 913d8f1 
  applets/systemtray/package/contents/ui/TaskListDelegate.qml 5501e02 
  applets/systemtray/package/contents/ui/main.qml d1a6851 
  applets/systemtray/plugin/CMakeLists.txt f6e23b4 
  applets/systemtray/plugin/host.h 02c5bbe 
  applets/systemtray/plugin/host.cpp eafd0b6 
  applets/systemtray/plugin/task.h 68dcd12 
  applets/systemtray/plugin/task.cpp 1f8e3ca 
  applets/systemtray/plugin/tasklistmodel.h PRE-CREATION 
  applets/systemtray/plugin/tasklistmodel.cpp PRE-CREATION 

Diff: https://git.reviewboard.kde.org/r/117813/diff/


Testing
-------

Seems to work :)

see branch davidedmundson/faster_systray to test


Thanks,

David Edmundson

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


More information about the Plasma-devel mailing list