> On April 28, 2014, 11:06 a.m., Mark Gaiser wrote:
> > applets/systemtray/plugin/tasklistmodel.cpp, line 103
> > <https://git.reviewboard.kde.org/r/117813/diff/1/?file=268854#file268854line103>
> >
> >     Remove, the model will notify QML. No need to do this yourself.

I have it as a property, so I need to tell Qt the property has changed.

I could do connect(this, SIGNAL("rowsInserted(...), this, 
SIGNAL(rowCountChanged());
I could do connect(this, SIGNAL("rowsRemoved(...), this, 
SIGNAL(rowCountChanged());
+ rowsMoved + layoutChanged + modelReset.. 
so I deemed this easier.


> On April 28, 2014, 11:06 a.m., Mark Gaiser wrote:
> > applets/systemtray/plugin/tasklistmodel.cpp, line 99
> > <https://git.reviewboard.kde.org/r/117813/diff/1/?file=268854#file268854line99>
> >
> >     Are you sure this is ok?
> >     For example, if you add one row (and have none) this should translate 
> > to:
> >     beginInsertRows(QModelIndex(), 0, 1);
> >     
> >     I think you need something like:
> >     int startCount = (rowCount() - 1 >= 0) ? rowCount() : 0;
> >     beginInsertRows(QModelIndex(), startCount, startCount + 1);

beginInsertRows(QModelIndex(), 0, 1)

is saying you are inserting 2 rows, starting at 0 ending at 1. It's an annoying 
QAbstractItemModel API.


- David


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


On April 27, 2014, 10:51 p.m., David Edmundson wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/117813/
> -----------------------------------------------------------
> 
> (Updated April 27, 2014, 10:51 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
> -----
> 
>   applets/systemtray/package/contents/ui/ExpandedRepresentation.qml 2ef180b 
>   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/plugin/CMakeLists.txt f6e23b4 
>   applets/systemtray/plugin/host.h 02c5bbe 
>   applets/systemtray/plugin/host.cpp eafd0b6 
>   applets/systemtray/plugin/protocols/plasmoid/plasmoidtask.cpp 2b846f2 
>   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
> 
>

_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel

Reply via email to