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

(Updated May 2, 2014, 3:44 p.m.)


Status
------

This change has been marked as submitted.


Review request for Plasma.


Repository: plasma-workspace


Description
-------

Before, the notifications would create new Dialog for each incoming 
notification. Now it reuses only 3 Dialogs to save resources.

The notification popup is a QML component; I decided to handle all this in the 
cpp plugin as JS Array is quite crap compared to QList and I had quite some 
crashes in QV4 on slightly heavier Array processing. But as the QML component 
needs to talk to the dataengine (like when you close the notification or 
exectue an action) and uses some methods from the rest of the plasmoid, I can't 
just instantiate it from the cpp side. So I create the component in QML, pass 
it to CPP, set the ownership to CPP so it's not deleted ever and then handle it 
all there.


Diffs
-----

  applets/notifications/package/contents/ui/NotificationPopup.qml 9265352 
  applets/notifications/package/contents/ui/Notifications.qml 64d80a7 
  applets/notifications/plugin/notificationshelper.h 1e1f6c2 
  applets/notifications/plugin/notificationshelper.cpp 1edfbad 

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


Testing
-------

Plasma no more leaks memory with every notification (the root memleak, coming 
from Dialog, is quite possibly still present, but the notifications don't 
expose it anymore). Notifications work as before, even better.

For testing purposes, you can try running 

for i in {1..10}; do notify-send asasd$i -i kde; done


Thanks,

Martin Klapetek

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

Reply via email to