Design proposal for the tool actions scheduler for Krita

Dmitry Kazakov dimula73 at
Wed Jun 15 00:56:11 CEST 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:

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

And here is the new design itself:

As usual, all the ideas are welcome! =)

Dmitry Kazakov
-------------- next part --------------
An HTML attachment was scrubbed...

More information about the calligra-devel mailing list