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