[dot] Pencils Down for KOffice Summer of Code Students!
Dot Stories
stories at kdenews.org
Mon Aug 27 23:15:17 CEST 2007
URL: http://dot.kde.org/1188249220/
From: Boudewijn Rempt <boud at valdyas.org>
Dept: catch-em-young
Date: Monday 27/Aug/2007, @14:13
Pencils Down for KOffice Summer of Code Students!
=================================================
With an avalanche of last-minute commits, the KOffice Google Summer
of Code students finished yet another great Summer of Code. We had some
very exciting projects this year, and most of them were as great a
success as last year [http://dot.kde.org/1157452184/]. Read on for
details of the achievements.
This year we had:
* Emanuele Tamponi, Painterly Features for Krita (Mentor: Bart
Coppens)
* Fredy Yanardi, Text-tool plugins for KOffice apps (Mentor: Tomas
Mecir)
* Pierre Ducroquet, Improve OpenDocument Compatibility in KWord
(Mentor: Sebastian Sauer)
We had one disappointment this year, our student due to work on
collaborative editing disappeared, only to surface around mid-term with
a code drop before disappearing again. So no collaborative editing in
KWord this year. You cannot win them all.
But the other five students have delivered outstanding work, often
going far beyond what their mentors thought possible initially. Let's
take a look at what they have done up to now!
I. EMANUELE TAMPONI
[http://static.kdenews.org/jr/koffice-soc-2007-emanuele.jpg]
In last week's Commit Digest
[http://commit-digest.org/issues/2007-08-12/] we already saw part of
what Emanuele has done this summer: mixing colours in a way that looks
and feels completely natural, by simulating the way light is reflected
of pigment. This is a two-way process: to go from a colour defined in
RGB to a colour defined by the properties of pigment and light and back
to RGB again. The first step is usually done by using a spectrometer and
actualling measuring the colours. Emanuele has created code to simulate
that without special equipment, and in a way that is repeatable and
makes it possible to experiment.
But that was only part of his work: another part of the project was
to make it possible to paint with more than one colour at the time and
to be able to make the brush pick up existing colours from the canvas:
complex loading and bidirectional paint transfer. The colour mixing
really grabbed Emanuele, leading him to create more and more
sophisticated code, leaving little time for the complex loading and bidi
paint transfer part of his project. However, he managed to check in a
preliminary version just in time... and right now he is staying in his
sea-side cottage coding, coding and coding. More commits are to follow!
[http://static.kdenews.org/jr/koffice-soc-2007-colour-mixer.png]
II. FREDY YANARDI
[http://static.kdenews.org/jr/koffice-soc-2007-fredy.png]
The new Flake architecture for KOffice 2.0 not only enables us to
create applications that integrate all kinds of possible content in
specialised documents, there is also infrastructure to make it easy to
add interesting functionality to shapes through plugins. Fredy's mission
was to implement a number of these plugins, both to demonstrate the
flexibility of our architecture and to add useful functionality to
KWord. Remember, with KWord 2.0 rewrite we lost a lot of existing
functionality because it has actually been a complete rewrite.
By now we have:
* Bookmarks
* Change Case
* Autocorrection
* Thesaurus with wordnet integration
* Document statistics
And because he was done before the end of the Summer of Code he
added a new popup widget to select colours from palettes and edit new
palettes.
[http://static.kdenews.org/jr/koffice-soc-2007-static-docker.png]
III. MARIJN KRUISSELBRINK
[http://static.kdenews.org/jr/koffice-soc-2007-marijn.png]
They said it could not be done. But Marijn did it: fully editable
music right inside any KOffice document. Essentially a plugin of the
same level of complexity as KOffice's justly famous formula editor. The
plugin supports multiple voices, measures, adding and removing of notes
of every description, loading and saving in ODF documents, import and
export to and from the standard MusicXML [http://musicxml.org/] format.
Marijn started his work already before the Summer of Code, when he was
able to show notes in KWord when he visited me in April
[http://www.valdyas.org/fading/index.cgi/hacking/musicflake1.html].
Interesting bits are the automatic line wrapping, which is more complex
in music than in text.
This plugin more than anything else shows off the power KOffice has
gained through the Flake architecture. Marijn is very enthusiastic and
will continue working on the music flake: connected notes, lyrics,
multi-page music and fallback support for OpenOffice and other
ODF-compatible applications are all on his to do.
[http://static.kdenews.org/jr/koffice-soc-2007-music-shape.png]
Oh, and as you can see... it is actually possible to seamlessly
develop KOffice on OS X, too.
IV. PIERRE DUCROQUET
Confession time! Right after the KWord rewrite started, KWord did
not support ODF at all anymore. Pierre's work therefore included
essentially recreating ODF support, together with his mentor, Sebastian
Sauer. He was present at the ODF meeting in Berlin, in the KDAB offices,
and has gone from strength to strength. Not too mention that he had to
hack stuff into KWord that was not even supported by Qt Scribe like the
line-through styles. Heck, even OpenOffice doesn't support this part of
the standard! Among the other hurdles he had to jump was a test suite
that depended on OpenOffice.org default behaviour that contradicted the
ODF standard. Great work, and Pierre
[http://behindkde.org/people/soc2007-two/], too, has said he will keep
working on ODF support in KOffice.
V. SVEN LANGKAMP
Krita never had the famous marching ants selection visualisation
invented by Bill Atkinson for MacPaint
[http://www.folklore.org/StoryView.py?project=Macintosh&story=MacPaint_Evolution.txt&topic=MacPaint&sortOrder=Sort%20by%20Date].
We have always shown our selections as masks, following my philosophy
that there is not that much difference anyway. Besides, I did not know
how to do marching ants. Only marching ants is perhaps a little meager
for a whole summer of code project, so Sven took on the whole
selection-is-a-bitmap thing.
Last year, Emanuele created a bezier curve framework for Krita that
led to magnetic selections and bezier curve selections: however, those
curves were mercilessly converted to pixels. Given the hard work Jan
Hambrechts and Thorsten Zachmann have put into the flake vector path
shape, it seemed silly not to try and re-use that in Krita.
Krita's selections now consist of two components: a masks that
allows gradations of selection and editable paths that allow editing of
the path shape at all times. The combined selection can be visualised as
a mask, as marching ants, both or not at all. Sure, there's still a lot
of work to do, and I managed to break some of his work when working on
nodes, layers and mask my bad! but Sven has advanced Krita 2.0 in a
really important way.
A selection that consists of vectors:
[http://static.kdenews.org/jr/koffice-soc-2007-vector-selection.png]
And one that consists of a pixel mask:
[http://static.kdenews.org/jr/koffice-soc-2007-pixel-selection.png]
VI. IN OTHER WORDS...
Like last year, the KOffice hackers have been very lucky with the
students who offered to work on our project. The interaction has been
great, with students coming to the ODF hack sprint and Akademy. KWord
now has three people regularly working on it instead of just one. That
said, there is still plenty of space in KOffice for aspiring hackers who
want to cut their teeth on a challenging, visible and fun project. If
you feel that there should be a presentation tool more fun than Keynote,
a diagram application cooler than Omnigraffle, a chart app that makes
statistics blush when they lie or if you think file formats are really
cool, then do not wait for next year. Join us now!
[https://mail.kde.org/mailman/listinfo/koffice-devel]
More information about the dot-stories
mailing list