> On April 28, 2014, 11:06 a.m., Mark Gaiser wrote:
> > applets/systemtray/plugin/protocols/plasmoid/plasmoidtask.cpp, lines 61-63
> > <https://git.reviewboard.kde.org/r/117813/diff/1/?file=268852#file268852line61>
> >
> >     Ahh, this is tricky to follow. You are invoking the init function here 
> > _and_ earlier on using a singleShot timer if this translates to the 
> > Host::init method. If that's the case then i think you might be safe in 
> > removing this line and the singleshot and just call init() from the 
> > constructor.
> 
> Marco Martin wrote:
>     no, it isn't init of Host.
>     this is the init() of m_taskGraphicsObject, ie the init() of the 
> AppletInterface of the loaded plasmoid (is something that shouldn't even be 
> neded in theory, but preloading the applets seems to avoid some crash 
> scenarios)

Right, now it makes sense. Thank you for the clarification.


> On April 28, 2014, 11:06 a.m., Mark Gaiser wrote:
> > applets/systemtray/plugin/host.cpp, line 120
> > <https://git.reviewboard.kde.org/r/117813/diff/1/?file=268851#file268851line120>
> >
> >     just init(); ?
> >     I don't see a reason why you need a single shot timer here.
> 
> Marco Martin wrote:
>     this causes the tasks to be loaded after the applet is done, in turn, 
> making the whole workspace ui to load faster (and task icons appearing after 
> when the rest is done) is a little hack that does huge difference in 
> perceived startup speed

Sounds like a good (undocumented) reason :)


> 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);
> 
> David Edmundson wrote:
>     beginInsertRows(QModelIndex(), 0, 1)
>     
>     is saying you are inserting 2 rows, starting at 0 ending at 1. It's an 
> annoying QAbstractItemModel API.

Ok, makes sense now. I'm always confused by the start and end numbers.


> 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.
> 
> David Edmundson wrote:
>     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.

As explained in person. The view will know this so the line can be removed.


> On April 28, 2014, 11:06 a.m., Mark Gaiser wrote:
> > applets/systemtray/plugin/tasklistmodel.cpp, line 115
> > <https://git.reviewboard.kde.org/r/117813/diff/1/?file=268854#file268854line115>
> >
> >     Remove, the model will notify QML. No need to do this yourself.
> 
> Marco Martin wrote:
>     the model does, but the exported count property needs to be notified by 
> hand

If you keep the property, yes. But there is no need for the property to exist 
at all because the view knows the model count.


- Mark


-----------------------------------------------------------
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