> 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
[email protected]
https://mail.kde.org/mailman/listinfo/plasma-devel