D9754: [Notifications] Use custom DragHelper instead of Qt's Drag attached property
Kai Uwe Broulik
noreply at phabricator.kde.org
Tue Jan 9 10:21:55 UTC 2018
broulik created this revision.
broulik added reviewers: Plasma, hein.
Restricted Application added a project: Plasma.
Restricted Application added a subscriber: plasma-devel.
broulik requested review of this revision.
REVISION SUMMARY
Qt's Drag attached property doesn't like it at all when it gets deleted during drag.
Even though we try very hard to keep the popup open, when you have multiple notification applets, their dialogs don't know each other but access a shared data engine. This means that, since there can only we one hovered dialog at a time, another notification applet might still dismiss the notification and have our dialog close.
By using a singleton NotificationHelper we 1.) decouple the Drag from the item and 2.) share the "is dragging" state between applets.
BUG: 388684
FIXED-IN: 5.12.0
TEST PLAN
DragHelper taken from Kicker and adjusted
- Added two notification applets, took a screenshot, dragged the screenshot of a notification, waited a bit, notification stayed open. Previously it would still close and then crash
- left click to open thumbnail still works
- Right click for context menu still works
- We get a nice drag pixmap now, the original code with using the QPixmapItem as drag source never worked apparently
REPOSITORY
R120 Plasma Workspace
REVISION DETAIL
https://phabricator.kde.org/D9754
AFFECTED FILES
applets/notifications/package/contents/ui/ThumbnailStrip.qml
applets/notifications/plugin/CMakeLists.txt
applets/notifications/plugin/draghelper.cpp
applets/notifications/plugin/draghelper.h
applets/notifications/plugin/notificationshelperplugin.cpp
To: broulik, #plasma, hein
Cc: plasma-devel, ZrenBot, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20180109/fad3f17a/attachment.html>
More information about the Plasma-devel
mailing list