Like Braindump? Adopt it for the Qt5/KF5 port!

As you might know, Calligra now also started porting to Qt5/KF5. We are currently reaching the end of stage 1, where everything is readded to the build (“links and installs? done!”), with next stage then to fix anything that broke or regressed (see screenshots!1!).

Just, we also now see that noone in the current set of active Calligra developers has enough love left for Braindump, the notetaking and mindmapping application from the creativity and productivity suite Calligra.

So as it stands Braindump would be left behind during the porting phase and be discontinued, for now at least 😦

hi256-app-braindump

Braindump is a nice example for the flexibility of the Calligra architecture, where objects are implemented by so called “Shape” plugins, which then are available to any application supporting “Shape”s in general. The actual code of Braindump itself is centered around the concept of whiteboards with unlimited canvas, where one can drop all possible kind of objects (the “shapes”) and then note their relations. With automated saving in the background, no need for any “Save” button.

See this older video to get an idea of the possibilities:
braindumpinaction

Cyrille, who has developed Braindump, says:

“I am still interested in the application itself, but what it really needs is a better user interaction, and flake [name of the Shape system, ed.] is not flexible enough to provide it, and I don’t have the energy to make it flexible enough”.

He and the rest of the Calligra team will happily assist someone who ideally already uses Braindump and now would like to overtake the future development for the Qt5/KF5 based version, to enhance their workhorse. And the porting time is a good time to get to know the current system: for the first Qt5/KF5 based Calligra release, 3.0, we are concentrating on a pure port, so no new features or refactoring (ignore the exceptions πŸ˜‰ ), only minimal changes. And envisions the options after the port/3.0: e.g. get Braindump to run on your Android or Sailfish OS tablet! Connect it to syncing servers like ownCloud! Or whatever would enhance your Braindump usage.
And all done while enjoying the synergy effects from the shared libs and plugins of the Calligra suite.

Your chance, now πŸ™‚ Don’t hesitate too long, as Braindump will bitrot more and more, once the 3.0 release is done and the Calligra libs will see more refactoring.

Find us in the channel #calligra on irc.freenode.net, or join the mailing-list calligra-devel@kde.org.

One year old: Document Liberation Project

On the list of projects-I-would-like-to-contribute-to-but-no-time-yet it is one of the top ones: the Document Liberation Project. There are quite some files from old times on my storage devices whose content is locked away in binary blobs that act like safes whose keys got lost with the software that created the files. So it’s easy to guess how I feel towards such initiatives, allowing me to regain access to my very own data πŸ™‚

The Document Liberation Project only was founded last year officially and now can see at least it’s first birthday. Not yet picked up much steam from new contributors so far, but then already serving e.g. users of Calligra, with libraries like LibRevenge, LibOdfGen, LibWpd, LibWpg, LibWps, LibVisio, LibEtonyek etc., to read in data from files in WordPerfect, MS Works, MS Visio, and Keynote formats.

Once the port of Calligra to Qt5/KF5 and thus version 3.0 is done, I hope to finally pick up the work (see here and here) on being able to read my old Corel Draw v4 files with Karbon or Flow. Which these days surely means using LibCDR from the Document Liberation Project, instead of my own custom code. Perhaps I will then also be able to contribute a little to the project finally πŸ™‚

While talking about that, another related thing still waiting for implementation is extending the hex editor Okteta to support the binary format grammar that I developed during the writing of my CDR import code, so Okteta’s Structures tool would be able to read in the grammar and then show the content structure. Or a combination of that grammar and the one used by msoscheme, which is used for some of Calligra’s MS format import filters, which I learned about in the meantime.
Having a standardized grammar for binary formats, which can be both used by data inspection tools like hex editors, but also for code generation, surely will be good to have. There are already some related tools also created/used by the Document Liberation Project, something to look at for more synergy effects.

Hm, filled TODO lists, but winter time with it’s long nights is over now. Too bad.

First success in Calligra’s 2nd port to Qt5 & KF5

Last month, in March, with the 2.9.0 release done, we Calligra developers followed our plans and started a branch named “frameworks”, to work on version 3.0, to be the first version based on Qt5 and KDE Frameworks 5. Calligra 3.0 should not see any new features, the focus is purely on getting the port to the new platform done without any regressions.

In a first phase we are currently trying to readd any libs, apps and plugins back to the build, adding TODOs for the second phase where simple changes are not enough.

A week ago finally we managed to get the first apps to start, e.g. Stage, Words and Sheets (somehow Oxygen icons still sneak into the UI for me):

firststartstagebreezestyle

firststartbreezestyle

firststartsheetsbreezestyle

A few things are still left to be added back to the build, before the next phase can be entered, where anything broken will be fixed. Some things are even already nicely working, e.g. the Calligra ODT plugin for Okular together with the Calligra DOC import filter make the (WIP and not yet released) Qt5/KF5-based Okular show a DOC sample file, like before with the Qt4-based versions:

firststartokulardocbreezestyle

“2nd port”, you might wonder? It happened that (some part of) Calligra was already once ported to Qt5, in 2013, to power the Documents app on the Jolla phone. Just it also happened to be unlucky timing, as the KF5 were only starting to exist, also was the Sailfish OS still at Qt 5.1 at that time, while KF5 was needing at least Qt 5.2. So that first port ended up as a dead branch. Still, some experiences made during the port had influence on changes to the Qt4 branches, and even a few of the old commits could be now cherry-picked and applied unchanged to the “frameworks” branch πŸ™‚

No idea when Calligra 3.0 is good to be released. It’s done when it is done. We will work hard to make it done this year. In Q2 would be nice. In Q3 might be more realistic. Now, join the fun πŸ™‚

First success in Calligra’s port to own Qt3-fork Cat

((Just for the record: this post was valid only on the day it got posted.))

A few weeks ago the Calligra developers started to look into the port to Qt5 and the new KDE Frameworks 5. But it soon became obvious that this new world is just a mess, with lots of dependencies. Just look at the latest draft of the buildsystem for all the stuff that is now needed:


find_package(KF5 5.7.0 REQUIRED COMPONENTS Archive Codecs Config CoreAddons
GuiAddons I18n ItemModels ItemViews
WidgetsAddons ThreadWeaver
Completion IconThemes Sonnet
Parts
XmlGui Kross Wallet
Emoticons ConfigWidgets KDELibs4Support
OPTIONAL_COMPONENTS
Activities
Declarative
)

find_package(Qt5 5.2.0 REQUIRED COMPONENTS Core Gui Widgets Xml PrintSupport Script Svg Test Concurrent)
find_package(Qt5 5.2.0 COMPONENTS WebKit WebKitWidgets DBus Declarative X11Extras)

This must be the influence of all the new web technologies. As the Calligra developers see the good old desktop based computers as their main target target it was soon decided to go back to the old roots: a fork of Qt3 was created, named Cat, which will be optimized for Calligra.

And the work has gone amazingly quickly so far. Last night it was the first time possible to start the ported Stage and Words applications:

firststartstage

firststartwords

So look out for a new fast and slim Cat-based Calligra suite being soon available to assist your productivity and creativity!