Krita Integration
Opened this issue · 1 comments
BigRoy commented
Krita is a free and open source digital painting application. It's a high quality competitor to Photoshop.
@jasperges mentioned to me that with it being available for free would make it a great choice for adopting an integration in Avalon as it would allow anyone to, like with Blender, to play around with Avalon without requiring to have paid applications available on their machine.
The great thing about Krita is:
- It provides a Python scripting interface - I believe since Krita 4.0
- It allows to create Python extensions/plugins
- It runs Qt.
- It's open source, free and easily installable.
I'm opening this issue to keep an Avalon integration for Krita in the back of our minds and see if there's general interest in moving this forward.
BigRoy commented
I've set up a prototype for a Krita integration so anyone could continue if they want. The commit is here and is available on my Krita branch.
What works:
- There's an Avalon menu.
- The tools opens fine and are parented to the main window.
- Work files tool works with the implemented Work Files API. 🚀
More details on how to use and what should be improved:
- You'll need to copy paste the Krita plugin to your local install folder, see README
- I couldn't find a way to run a startup script to initialize the menu or Avalon. So instead I had to rely on the Plug-in extension. As such, on first load you need to manually load the Plugin through Settings > Configure Krita > Python Plugin Manager and there enable the Avalon Plugin.
- I added the Avalon menus by adding it straight to the QMainWindow of the application. However Krita allows to have multiple main windows via Window > New Window. With the current 'hack' the new window will not have the Avalon menu. Instead you should rely on the createActions of the Krita Extension which would end up here.
- The uninstall functionality is untested. I wrote some code but not sure if it would work.
- Krita allows multiple documents/windows to be available in the Application, as such you'll need to make sure it's clear to the user which Document you're publishing or operating on in the Scene Inventory, Pyblish, etc. - I haven't looked into that.
- Somehow
PYTHONPATH
doesn't work flawlessly, see my hack here - We should fine a way to auto-load Avalon on startup of Krita instead of requiring users to load the plugin manually.
- Implement callbacks using the Krita notifier