Sunday, March 05, 2006

Porting to KDE 4

I've just managed to compile KDE 4 so that I can port KolourPaint. A lot of work (thanks mainly to Laurent Montel) has already been done.

I spent yesterday combing through the 15,000 line diff (actually, I did some tricks to reduce my reading down to 5,000 lines) and fixed 2 main kinds of errors:

1. qt3to4 remaining variables like "red" to "Qt::red".

2. "if (!pixmap.mask ())" should not be "if (!pixmap.mask ().isNull ())". It should be "if (pixmap.mask ().isNull ())".

KolourPaint exploited Qt3's painting system to the max. And given the rewrite of the Qt painting system, there's going to have to be a lot more work before KolourPaint compiles, let alone works. With the addition of proper alpha channel support, Qt seems to have done away with the Qt::NotAndROP and friends. Going to be tricky to port.

And I just don't think that breaking source compatibility every few years and saying "now port KDE's several million lines of code" works well. Something to think about for future Qt's & KDE's.

Oh, and this is my first blog post :)