Skip to main content Skip to navigation

Second alpha release of my project


I’ve already announced this on Krita Artists, but I haven’t had time to write more fully about it, so…

I’m glad to announce the second alpha of my GSoC 2020 project. For anyone not in the loop, I’m working on integrating Disney’s SeExpr expression language as a new type of Fill Layer.

In this release, I fixed the following bugs:

  • Keypad presses ignored when coming from non-QWERTY keyboards. They were previously considered by the SeExpr editor widget as Ctrl-keys for the autocompletion 🤦‍♀️ (thanks David Revoy)
  • Pasting rich text on the editor breaks formatting
  • No autoupdate on editing the script (thanks Emmet O’Neill)

Thanks to David Revoy’s advice, I’ve changed the widgets to use their native (original) sizes, and the Fill Layer dialog’s size to match others in Krita.

Please see the changes for yourself:

Before and after.

Additionally, I cleaned and sorted a lot of the SeExpr code, hiding unnecessary and legacy features behind feature flags. I also reworked the CMake scripts to make use of imported targets. These two changes mean that SeExpr is now fully compatible with the Krita build process; it no longer needs target_include_directories, target_link_directories, or the legacy OpenGL component from Qt4.

As of the writing of this post, the following issues are still outstanding:

  • Configuration save/restore when changing between Fill layer types (it’s more of a Krita architectural problem, bug 422885)
  • Completion help tooltip constantly loses focus in macOS
    • I have not released alphas for this platform because I cannot sign them
  • Translate and test error messages
  • Make SeExpr parsing locale-proof
  • Fully clean up header installation (currently it’s a massive glob, ignoring selected components)

Thanks Wolthera van Hövell for reporting these:

  • UI widget component labels need extra spacing
  • Error reporting seems to be not bundled or broken

And, of course, I would like to bundle SeExpr scripts like other Krita resources. I have the basic infrastructure working locally, but there’s going to be a lot of work adding the necessary widgets. Remember, I’m still looking for example scripts we can ship later!

I apologise in advance for this post coming out so late, I’ve been (and still am) dealing with a lot of homework, since my last term finishes on June 3.

Looking forward to your comments!