[Kde-graphics-devel] Review Request 120920: Fill SendTo menu async to fix "Bug 312495 - Very slow 'Send to' menu"

Gregor Mi codestruct at posteo.org
Fri Nov 21 20:44:38 UTC 2014


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

(Updated Nov. 21, 2014, 8:44 p.m.)


Review request for KDE Graphics, KSnapshot, Aaron J. Seigo, and Dominik Haumann.


Changes
-------

fix crash when ksnapshot is closed before the action loading is complete


Bugs: 312495
    http://bugs.kde.org/show_bug.cgi?id=312495


Repository: ksnapshot


Description
-------

Hi, I also feel slightly impaired by Bug 312495 - Very slow "Send to" menu. So here is a fix.

It consists of the following commits:
    1. move long-running retrieval of SendTo items to separate method
    2. fillSendToActionsCache at startup but not yet async
    3. move code related to SendTo actions to own class and file
         (this includes the kipi code but KIPI_FOUND was not set in my dev env so thats not tested)
    4. SendTo menu is built on a separate thread to speed up populating
    5. delete actions in dtor

The SendTo actions are now created in QThread which is started on startup of ksnapshot.
If the user opens the SendTo menu too soon there is a message (as single menu item) that says
that the menu is still being constructed and that he/she should try a moment later.


Diffs (updated)
-----

  main.cpp e7a1efb2fd8398492b96e6f21f90363d99358e12 
  ksnapshotsendtoactions.h PRE-CREATION 
  ksnapshotsendtoactions.cpp PRE-CREATION 
  ksnapshot.h 4e062de8afe5cfd9a98b769f105b1a174b58dc9f 
  ksnapshot.cpp 6bd38e1508f4887c17a43e2c5cedaf19e1a1dab2 
  CMakeLists.txt 627e3b4467578205125125323fb682126dd291e6 
  .reviewboardrc PRE-CREATION 

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


Testing
-------

1. Start ksnapshot (notice that is as fast as before)
2. Immediately open SendTo menu => there is a message that the menu is not ready yet.
3. Try again after 1 second: menu is populated.
4. Close ksnapshot.


1. Start ksnapshot. Wait two seconds and then click SendTo menu
   => menu is populated right away
2. Close it.


1. Start ksnapshot. Hit the SendTo menu with insanely high button click speed.
   => No crash observed.

Could NOT test the moved kipi code because KIPI_FOUND is not set on my environment.


Thanks,

Gregor Mi

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-graphics-devel/attachments/20141121/f16d0914/attachment-0001.html>


More information about the Kde-graphics-devel mailing list