“Adaptable” Krita

I recently found a very interesting project based on GIMP. AdaptableGIMP basically is a fork that replaced the usual toolbox with a task-oriented UI. It allows to create a “task set” that represents all actions and documentation needed to perform a certain task. Since Krita usually doesn’t use as many complex combinations as GIMP (e.g. we have a rectangle tool, so draw the rectangle is just one step in Krita), I wasn’t that interested at first. But after a closer look, I thought might also be useful e.g. as a fast way to access actions that either have not shortcut or the shortcut isn’t easy to remember.

So yesterday I started my own taskset UI that is inspired by the one from AdaptableGIMP. First I thought about how task sets are created, I skipped the wiki aspect completely as that would take too much time to implement and maintain. Both the wiki and the dialog based taskset creation didn’t completely convince me as they require to search a big list of actions (there are currently 284 actions in Krita) and then add them to the taskset. Whoever used the toolbar editor knows that it’s no so great.

I went for a different solution as can be seen in the following screenshot:

The new task set docker has a record mode that works like recording a macro. Once the record button is pressed it will record all actions the user does. So to create a task set for a certain task you simply record everything that you are doing while performing the task as usual. Thanks to kxmlgui this was very easy to do.

Next thing that was needed was a way to store, load and share task sets. Fortunately I could use the Calligra resource framework for that so I got lots of functionality for free e.g. task sets automatically have tagging integrated (which was a GSoC project this year). For sharing task sets in the future we could use GHNS which is already integrated and just needs a new category on the server. This would also have the advantage that we can reuse the existing facilities of OpenDesktop.

In the future there might be many other applications of this. The current code doesn’t depend directly on Krita and could also be used in other Calligra application. Another thing I noticed in AdaptableGIMP is that is often says that some value needs to be enter into e.g. the filter that pops up. Krita already can save filter configurations, so it could be interesting to restore the filter configuration that was used while recording and blur the differences between macros and task sets even more.

7 Responses to ““Adaptable” Krita”

  1. Deevad Says:

    It sound a brillant feature for Krita as well as an interresting project. Thanks for building this.

  2. acidrums4 Says:

    It would be something very cool! – Semi Off-Topic: Talking about the UI of Krita, I was wondering if could be possible to do a compact and unique interface for filters? I mean, not one dialog for each filter, but a unique dialog that keeps all the options for filters, maybe like Photoshop does, for a easy navigation -and maybe a preview inside the dialog-… Just wondering.

  3. slangkamp Says:

    @acidrums4: The normal filter dialog does that already, on the left side of the dialog there is a little handle which you can pull to the right and that will show a list with thumbnails for each filter.

    Preview inside the filter dialog was dropped, instead the preview is now directly on the canvas.

  4. Martin Says:

    Nice! I am assuming that once I have “recorded” a task set there will be a UI to add/remove actions to/from it? Will I also be able to select an existing task set and hit record again to add further actions?

  5. slangkamp Says:

    Adding/removing actions isn’t possible yet. After selection a task set recording can be continued.

  6. acidrums4 Says:

    @Slangkamp: Where? I have Calligra 2.4 Alpha 4 (distributed with Gentoo). Maybe I’m too ignorant, but I can’t find that little handles in none of the dialogs.

  7. slangkamp Says:

    @acidrums4: Marked here: http://imgur.com/k1aQM

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: