Design proposal for the tool actions scheduler for Krita

Dmitry Kazakov dimula73 at gmail.com
Tue Jun 14 23:56:11 BST 2011


Hi, all!

I've finished designing the scheduler part of tool actions project.

If you can't remember what this project was intended for, you can read
motivation from the old article:
http://community.kde.org/Krita/Centralized_Queue_For_Tool_Jobs

Just a short summary of it:
All our tools execute actions inside the main event loop. This causes
several major bugs:
1) The UI blocks while doing anything serious
2) (more important) Qt may initiate recursive events processing from the
inside of the other event handler. In particular this can happen due to
calls to processEvents inside KoProgressUpdater framework. If the user is
quite fast, then two tools can easily start their strokes concurrently (even
on single-threaded machine). This usually leads to a crash.
3) Currently, this is workarounded by explicit locking in the tools. Due to
that all the user actions happened during the node was locked are completely
lost.

And here is the new design itself:

http://community.kde.org/Krita/Strokes_Framework


As usual, all the ideas are welcome! =)

-- 
Dmitry Kazakov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/calligra-devel/attachments/20110615/fbe48468/attachment.htm>


More information about the calligra-devel mailing list