Skip navigation.
KDE Developer's Journals

boemann's blog

boemann's picture

Using KWord as a .doc viewer

I've been improving the .doc import of KWord over the last couple of months (besides working on tables)

I must say it has been quite a dramatic improvement. From having each paragraph being loaded onto each own page with the formatting all wrong, no tables, page size wrong, and many other bugs all over, I'm pleased to say that I'll this weekend give the .doc import a real world test, as I'll be conducting a 2,5 hour lecture using KWord to go through a 40 page document with tables, images inside tables, pagebreaks and lots of formatting.

I'm quite excited as this will be the first indication to me that KWord is getting ready for real use. We are not there yet for everyone, but I certainly intend to be using KWord as more than a .doc viewer in the future. That future still requires some hard work which I'm glad to be doing as my full time day job employed by KO GmbH

boemann's picture

KOffice tables and .doc import

So Elvis Stansvik and I have been working on table support for KWord. And simultaneously I've been working on improving the MS .doc import filter for KWord. I've improved the generally font and paragraph import enormously, but in this blog I'll focus on the table import.

First I'll show you the original MSWord table:

And then how it looks in OOWriter 3.0:

And in AbiWord:

And then finally in KWord:

I think you can see how good our support already is, and that we already beat OpenOffice. Obviously there are some glitches in the corners but I'm fairly sure those problems can at the very least be minimized.

I also still miss to load the tablecell padding. If you look closely you can see the cells are not completely the correct size yet.

So stay tuned as this will all come in KOffice 2.1 which has just entered freeze and will be released in a couple of months. Due to the freeze the table support in 2.1 will however only be as a viewer basically. Ok you will be able to enter text into cells and even create a table, but you will not be able to add or remove columns or cells or change column width etc. These user interface things are scheduled for 2.2.

boemann's picture

Kustodian - a taskbar and quicklauncher combined

I'd like to introduce a little pet project of mine: Kustodian, which some people would call a ripoff of the mac dock or windows 7 taskbar. But I maintain it's a thing of it's own, but it indeed has some similarities.

The idea is that when you click one of the icons it launches a new application. The number next to the icon shows how many instances are already open, and when you hover such an icon a dropdown/popup immediately appears with thumbnails of the windows. When you click one of those thumbnails you bring the window to front/minimize/restore just like you are used to.

Some icons/applications on the Kustodian are marked as favorites and appear even when there is no number next to it. If you launch and application that is not already there it will appear and you should be able to mark it as favorite.

Now you might wonder how much of this already works. Well it's a real screenshot so the icons appear and disappear, and there is a list of hardcoded favorites, which can launch new instances. The popup is however blank at the moment, so I'd like to get some help from a plasma person who thinks this project is worth helping out. It follows that you cant actually manage your windows with this thing yet, although I've managed to use it as a day to day taskbar replacement for several months already

Update: I've committed to playground/base/plasma/applets/kustodian, but don't hesitate to contact me on irc #kustodian.

boemann's picture

Image scaling in Krita

This weekend have so far resulted in 5 commits on Krita. In particular on the scaling stuff. Krita has for way too long had some outstanding quality issues with scaling. The edge pixels were transparent and the images themselves were too blurry.

Just see this page from over 2 years ago: http://gis-blog.leonde.de/index.php/2006/11/10/scaling-algorithms-in-krita/

Well this weekend was the day to end the misery. I started with implementing bicubic filtering which removed the blur, and went on to fix the transparent edges. The main part of the bug was actually a simplerounding error, but looking into the issue i also found that the filter weights were being applied wrongly, so I fixed that too.

But that was not all. The code for mixing of colors couldn't handle negative weights which gave some weird colors popping up weird places in the images. After some debugging all it took to fix it was clamping the resulting rgb values to not be negative.

After that I fixed some regressions regarding progress feedback while scaling, and right now I've bugged Sven Langkamp to help me with the selection stuff in the transform tool. Funny thing is I was his mentor on a GSoC about selections two years ago and now he is the one who helps me Smiling

Anyway here are the results so judge for yourself (I've used the same original as in the blog I referred to above and bicubic filters in all cases).

Photoshop 7:

Gimp 2.6.1:

Krita (trunk):

I'm quite pleased as it looks very similar to photoshop.

boemann's picture

Reworked scale dialog in Krita

[image:3453 size=original nolink=1 node=3453]

I've worked a bit on the scale dialog for Krita. Neither the old one from the 1.x series nor the new one in current KOffice2 alpha releases were good enough. I've mailed a bit with Ellen which only confirmed that it is indeed a difficult dialog to get right.

In the end I reordered some items, so I hope it's a bit easier to figure out how to use it. I think it has become quite good, but judge for yourself. So much cool stuff coming in KOffice 2.0

boemann's picture

New Oxygen category in bugs.kde.org

I've just created a new product called "Oxygen" in bugs.kde.org.

It has 4 components: style, window decoration, icons and sound. So please use these in the future if you know the bug belongs there. I'll be adding known bugs from our wiki in the coming days

I'll use this opportunity to also ramble a bit about bug reports. Because though in general we love reports and wishes there is one kind that isn't very useful, and that is the category I'd call "I don't like the look of.."

Graphics and sound is a very subjective matter, so bugs.kde.org just isn't the place for this. And the reason is quite simple: There will never be an agreement.

Instead add comments about like/dislike to the blogs of our artists when they present new stuff. But please do it with taste and respect as you would like to be treated yourself.

boemann's picture

Work on Kreative3D

I've started to work more and more on Kreative3D. Although it's not useful for anything right now, I expect that I can have 2d sketching done within a month or two. For those of you who don't know anything about parametric solid modelling a sketchplane is a plane in 3d space where you can draw on. And sketching is the process of drawing on that surface.

You draw with lines and arcs and you then assign constraints to those. A constraint could be that two lines should always stay parallel or stay tangent to an arc or something.

As you can see from the screenshot: The sketchplane is there and I can draw lines, but that is just about it. So what I plan to do in the following months from now is to add tools that create arcs and lines in various ways. I've ripped the tool system from KOffice flake and made a 3d version out of it, so it's actually pretty easy to make new tools. The hard part will be implementing constraint and a solver to make sure they are followed.

I'll also be working on the view tool (the only other tool currently implemented). I can already postion the viewpoint anywhere around the plane so I can see it from any angle, but the view tool needs to be much more powerful to be really usable.

boemann's picture

Going to Milan for a breath of Oxygen

On Friday I'll fly to Milan for the upcoming Oxygen coding sprint. The objective is to get the Oxygen style into shape so it can be imported into kdebase. There is a lot of work for us to do, but Nuno and David are there for the artistic side and Riccardo (ruphy) and I will be coding on the spot. In addition Thomas will try to be online as much as possible from his home.

Ruphy have been kind enough to offer his house for a place to work and there is a nice cheap hotel down the corner where we'll spend the 3 nights. Apart from the excitement of getting Oxygen style ready, I'm also looking forward to some nice Italian food and icecream

We'll be sure to blog during the event

boemann's picture

A selection of krita stuff

For Google Summer of Code Sven Langkamp was assigned the project of adding different kind of selection visualisations for Krita 2.0. Being his mentor is very easy as already now before gSoc has even started officially he has completed 2 out of 3 items in the project description. Krita 2.0 is now capable of showing selections as:

* Marching ants
* Overlay (as known from Krita 1.6)

Marching ants involved analysing the bitmap of the selection and extracting a form of path from it. Pretty wellknown algorithm, but Sven nevertheless had to adapt it to the render pipeline of krita. And he had to make some optimisations as well. For the overlay visualisation he could reuse some code from 1.6 but he still had to change it to fit with the new Krita 2.0 display pipeline.

Additionally he has worked on the selection tools as well.

For the remaining 3 months of Google Summer of Code he will be focusing on the last item which is to be able to modify the selection as if it were a true path. This might turn out to be a somewhat larger task, but we have the opportunity to reuse Emanuele Tamponi's gSoC work from last year.

Thanks, Google for hiring Sven Smiling

boemann's picture

Introducing KoSliderCombo - a custom yet themed widget

I've committed a new widget to KOffice which is a combobox-like widget consisting of a numeric input and a slider that pops up. The really neat thing about this new widget is that it's themeable right out of the box because I've reused QStyle to draw it.

Syndicate content