Anyone interested in trying to port to Qt4 and KDE4, then?
Please read over
(and also update it with anything you happen to know about or are able
Here's a branch for experimenting to see how much code we can
translate from Qt3 and Qt4 to KDE3 and KDE4 mechanically, using
regular expressions and other dreadful hackery:
The only interesting file in there, at the moment, is "convert.pl".
This is a Perl script that, taking a single source file as input,
applies a series of substitutions via regular expressions, and prints
the result to stdout. At the moment it updates some #include lines,
changes QIconSet to QIcon, and updates the syntax of
QGridLayout::addMultiCellWidget. Any volunteers to try adding some
more while I mess about with something else? I'm not sure whether
there will turn out to be lots of other things that we can script in
this way, or whether most will turn out to be too hard, but it's got
to be worth a shot.
What I am thinking is that we could put any ideas (half-baked or
complete) into this script, testing them on random local files, and
then just keep committing updates to the script. No actual source
code changes should be committed in this branch until we've piled as
many things into the script as we can think how to do, and then we run
the script and commit them all at once. That way we can do some other
pieces of preparatory refactoring in other branches at the same time
as building up a few automatable changes in this script, and then run
the script on the refactored code.
As to the question of whether to go to "pure Qt4" or "Qt4 plus KDE4",
I think let's go for the latter, at least at the outset. I'm hoping
that some details (such as i18n, actions, and the main window classes)
will be much simpler to handle via KDE4, and if we subsequently decide
we'd rather go pure Qt4, we can always change them separately
afterwards once we know more about what we're doing. Whenever we run
into something that we use from KDE that turns out to be hard to port
to KDE4, then we should think about converting it to pure Qt4 instead,
but if it's simple to do with KDE4, let's do it the simple way.
I think we probably don't want to use the qt3to4 conversion tool, by
the way. It uses the "Qt3 compatibility" code in Qt4, and I don't
think we should be doing that, not least because it's increasingly
less likely to be supported. Since Qt4 has been out for about three
years, I do wonder whether it's still supported properly even now.
We're obviously desperately short of developer time for this work, so
any help is welcome. You don't have to be intimately familiar with
Rosegarden code to help out here, though familiarity with Qt and KDE
really helps. But even a single line update to the wiki page, with
the result of a small piece of research to find out the answer to some
question posed on the page, would be an enormous help.
again, in case you missed it the first time!)
Also, if there is any other job described in that page that you think
you might be able to handle -- or if you want to suggest other ways to
go about this work, or comment on the wisdom (or lack of it) of
anything described there -- please shout!