Why I love(d) Krita to be part of Calligra (was: Re: After 2.9.7)

Friedrich W. H. Kossebau kossebau at kde.org
Sat Aug 29 21:41:24 BST 2015


Am Donnerstag, 27. August 2015, 09:57:32 schrieb Boudewijn Rempt:
> For Krita, and I hate to say this, it probably makes sense to fork our
> shared libraries. The office-apps maintainers can then strip out all the
> krita-specific stuff, and for Krita, we can strip out the stuff that only
> makes sense for office applications.
> 
> I also think that it makes sense for Krita to integrate the karbon plugins
> and tools, and maybe the karbon filters. I honestly don't see any future
> for karbon as a separate application. You cannot build a good vector drawing
> application without a dedicated maintainer, and Karbon has been officially
> unmaintained since April 2013 already.

Oh dear, for quite some time I have feared this proposal to happen, to split 
off Krita + fork off shared libs into an own project and repo. Sadly I could 
not collect enough arguments why that would be an insane idea and only that. 
>From a pragmatical point of view, I see more advantages than disadvantages as 
well for all parties, if I am honest, given the current interest of all people 
involved in contributions. There are more and more who only are interested in 
one app and not the whole Calligra suite, which is just reality and thus fine 
and nothing to blame someone for. And if one only has interest in one app, 
shared goods with other apps cannot be dealt with in the needed manner.
((Ideally those people should be made interested in the whole Calligra suite 
:) But given the current state of most apps that's a mission to fail sadly 
currently))

But: such a split would conflict a lot with my motivation for why I have 
joined the Calligra project and spent quite some time on mainly cleaning up 
Calligra code so far :(

I have been appealed by the vision of a component-based system, where one 
potentially could assemble a custom UI per usecase and create rich composed 
documents with all kind of content. Like I could when I was a kid and blank 
sheets of paper were what I had as canvas, and the working shell was by my 
real-world desktop setup. E.g. with pencils and stickers always in reach on my 
private desktop, depending on my mood of the day, to do whatever mix of 
content on the sheet of paper as I liked.

When then I had my first computer, I was mainly attracted by the virtual 
sheets those enabled. Where things could be undone or reshuffled (no need to 
restart with a new sheet when some text line mistakenly hit the sheet border 
too early or had a typo or when some item was forgotten in the structure and 
no more space was available).
I loved Geoworks, Amipro, and especially Corel Draw, as those gave me many of 
the composing freedoms one had with a real sheet and then all the amazing 
options coming with virtual objects. (And I miss them, so far I found no real 
FLOSS replacement)

Writing reports during education and work I experienced additional challenges, 
how to best do big structured documents and also automatically integrate 
things generated from data, like calculations, diagrams, graphs or tables. 
Doing this with the wordprocessors available to me was not easy, escaping to 
TeX (or Lyx) only satisfied me to a certain degree.

Which is the other aspect of Calligra that appealed me, having Kexi, Sheets 
and a report generation library as part. So I envisioned one day this should 
end up with being able to have not only classic line & bar diagrams, but e.g. 
whole flow charts being generated, with custom shapes dynamically powered by 
data from databases or cell ranges in sheets. 
One would edit the database table in some UI made from Kexi components or some 
cell ranges in a UI made from Sheets components and see the document update in 
realtime. Perhaps even be able to sync changes back from the shapes (e.g. when 
resizing some element interactively). (Actually I kept Plan alive for now 
mainly for the reporting stuff, to have another use case around).

Connected with this, I also share Jarosław dream about document-wide 
theming/styling, where all components in the document are bound to the same 
styling system, and any custom component plugin could link into it. So e.g. 
colors and fonts in diagrams would be coupled to those of the complete 
document, for a consistent look.

Next, when I wrote the print exporting functionality in Okteta, a hex 
editor, I would have liked instead to render into some document system, where 
one could edit the template (think footer/header/title/styles) or and more 
(actually I once did a hexeditor Shape plugin, that could at least render :) 
). There are many applications which render/export content to documents, just 
think of all the science app in KDE Edu, like Labplot or Cantor. But 
usually with hardcoded templates. This seems poor to me, we could do better 
especially in the Free and Libre Software world, where collaboration should be 
easier than in that other buy-only-our-products lock-in world.

Which brings me back to Krita. So, with real world sheets I preferred pencils 
(multiple kinds of) over the typewriter. And also often ignored the ruler for 
lines, unless needed for math stuff. Because of the unlimited expression 
flexibility and a little also because it gave the content a more personal 
sketch.
So I want to be able to do the same with my virtual sheets. Do quick sketches 
with a pen, highlight stuff, add some stuff just for visual fun. Disregarding 
of the main type of content on the sheet. Especially now that pen-like 
hardware input devices are getting more common. So I envisioned one day this 
could be done using Krita components.

I would like to have Calligra as a rich content creation suite/framework. For 
static content. Perhaps also for animated content, actually Stage and soon 
Krita partialy are about documents with a time dimension.

E.g. something like a Pepper & Carrot webcomic should be possible to be done 
completely with an app composed from Calligra components one day:
the web comic would be a metadocument, with a suiting UI shell composed from 
Calligra components, with the different images as subdocuments, which could be 
edited in place if wanted or edited "zoomed" in in separate UI shell made from 
Krita components, with the text in the bubbles being driven by a database 
controlled via Kexi components.

In my mind there is no split between "office" and other documents. A sheet is 
a sheet. Multiple sheets are multiple sheets. They can be of fixed size, or, 
thanks to virtual réalities, of changeable size (well, with glue and glue 
strips one could also enlarge real sheets, but that never was perfect :) ).
And one can put any type of content on a sheet (or canvas).
I only see splits in workflows, depending on the main purpose of different 
type of document main types. That's a matter of the presentation and 
interaction layer.
But the actual document I want to be able to fill with any type of content, 
always. In an integrated system, with no need to do lots of 
import/export/copy/paste between multiple apps with perhaps even 
data/precision loss.
And pen-based content creation is my wet dream here.

Darn. If Krita would split off, chances at least for some of my visions lower 
a lot :(

Oh well. Travellers should not be stopped. If Krita wants to move on into an 
own house, with own stuff in basement and attic, their choice.
There is only one way to get them back: make Calligra a palace with greater 
stuff in basement and attic. And in the sheds. And with a pool ;)
Each summer and winter we will make a party and invite them. And show off... 
until they move back and together we then make our palace even greater :)
(hm, suddenly not sure those mushrooms were all of the same kind...)

For now I look forward to get the port of Calligra to Qt5/KF5 finally 
completed, so I could check off this as done and turn to continue all the 
refactoring branches I started for further cleanup of things in the libs I do 
not like too well (e.g. splitting kostore out of koodf, almost completed in a 
branch, and also rewriting kostore for more convenient use).
Next on my plan then is joining the Words developers a little to fix up all 
the text features which are currently rather broken (e.g. variables), then 
work on better support for text structure management, until Words works good 
enough for my daily real world text editing needs. Then I would go for fixing 
SVG support, as I also need/want that.
And in the meantime also play around more with a lib I started which should 
allow to merge KReport and Flake or at least serve as shared base lib to both, 
as this is my biggest pain that we have two different plugin-based-object-on-
canvas systems here, with no reuse of code right now.

So, I will be busy for some time with Calligra in any case :) Just, I would 
love if that involved Krita code as well.

Cheers
Friedrich



More information about the calligra-devel mailing list