[Kde-graphics-devel] Review Request 120920: ksnapshot: Fill SendTo menu async to fix Bug 312495
Gregor Mi
codestruct at posteo.org
Sat Dec 6 22:16:24 UTC 2014
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/120920/
-----------------------------------------------------------
(Updated Dec. 6, 2014, 10:16 p.m.)
Review request for KDE Graphics, KSnapshot, Aaron J. Seigo, Gilles Caulier, and Dominik Haumann.
Changes
-------
Remove threading but keep refactoring and caching. So the menu is slow only on first click.
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 changes:
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
6. Create main window on stack instead of heap
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)
-----
.reviewboardrc PRE-CREATION
CMakeLists.txt b8e665610284ae9db644e6925acae3d60e207245
ksnapshot.h 07100a85bbb146501ee77a9cbb9d2655edda4595
ksnapshot.cpp 192a0910553acf9180155ba0f409d7b15d125753
ksnapshotsendtoactions.h PRE-CREATION
ksnapshotsendtoactions.cpp PRE-CREATION
main.cpp e7a1efb2fd8398492b96e6f21f90363d99358e12
Diff: https://git.reviewboard.kde.org/r/120920/diff/
Testing
-------
1)
- Start ksnapshot (notice that is as fast as before)
- Immediately open SendTo menu => there is a message that the menu is not ready yet.
- Try again after 1 second: menu is populated.
- Close ksnapshot.
2)
- Start ksnapshot. Wait two seconds and then click SendTo menu
=> menu is populated right away
- Close it.
3)
Start ksnapshot. Hit the SendTo menu with insanely high button click speed.
=> No crash observed.
4)
Start ksnapshot and close it immediately.
=> No crash observed.
5) [pending]
Could no test the kipi code because KIPI_FOUND is not set yet on my environment.
Thanks,
Gregor Mi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-graphics-devel/attachments/20141206/1b4c52c8/attachment.html>
More information about the Kde-graphics-devel
mailing list