Qt5 -> KDE5?

Aaron J. Seigo aseigo at kde.org
Tue May 10 08:54:01 BST 2011


On Monday, May 9, 2011 18:41:34 Andreas Hartmetz wrote:
> >  - Do we want to focus on QML, or stay with QWidget?
> 
> I think this one is both obvious and difficult: Everything else being equal
> QML because it is, for all we know now, more "future compatible".

which shouldn't be confused with "QWidget is now dead".

> There are many open questions:
> - Can we migrate QWidget-based code in some way?

personally, i don't think this should be a focus for a "KDE 5". QWidget will 
remain in Qt, just in maintenance mode. they work and are very reliable. it 
can be a HELL of a lot of work to just up and convert an application from 
QWidget to QML, probably much more than we realistically have across all of 
KDE. some apps are already making the transition, which is good. QML and 
QWidget apps can live side by side just fine.

> - Which QWidget-based code is considered important? I'm thinking of
>   KXmlGuiWindow and such things here.

imho there are two sets of classes here:

* the ones that use QWidget that shouldn't (KConfigSkeleton is one; Will 
Stephenson is working on a QML friendly option for that one already)

* that ones that are using QWidget (or IsA QWidget, even) and which are just 
fine that way

the former need to be split more cleanly between business logic and 
presentation, the latter probably simply need to be agregated into a QWidget 
library (or libraries) for use by applications using QWidget (aka all of them 
right now :)

we need to do this work in libkdeui as well as libkio. we have small libs like 
knewstuff and bigger ones like kparts, and we need to comb over each one.

> - Will QML do what we need? Layouts, custom painting and event handling, one
> language for everything (we probably won't get that one).

this is a big part of the exploration we're doing in Plasma, and one of the 
goals of Plasma Active is to bring other projects doing similar things 
together so we can do so together. it's a great, if open, question. one that 
we're collecting pieces of the answers to as we go.

event handling is mostly there, though there have been some recent additions 
that i'm a little sceptical of (event filter type things) and that shows there 
is definitely room for improvement needed (i hope they end up using an event 
listener model as seen on the web and in Plasma's JavaScript bindings)

custom painting still falls back at times to C++ and QPainter, which isn't 
necessarily a bad thing. being able to use OpenGL directly will give us a new 
set of tools there, however.

layouts are pretty decent, though i think the "configuration dialog" use case 
hsan't been on the QML radar quite enough yet.

> - Can QML look and act "native" on the desktop? I don't care if it looks

yes; we're already working on a set of KDE QtComponents. this will be 
presented at Platform 11 in Randa.

> - Can we realistically pull off a minimal migration in time for the planned
>    release date?

i think it is possible, but we don't need to roll out KDE Platform 5 when Qt 5 
is released, either. in fact, it might be wise to lag by a release to allow Qt 
5 to settle in a bit and so we aren't chasing Qt's tail during the Qt5 
development cycle.

the question of when we can release will be driven by what we feel we ought to 
achieve in the KDE Platform (libs + runtime) and how long that will take us. 
we don't need a lot of redesign and new technology development, but there are 
a lot of opportunities for improving how the KDE Platform presents both on the 
desktop (in terms of re-usable Qt based libraries as well as enabling QML and 
similar new technologies) and on devices.

> - What will the users think? -> We should not lose too many user-visible
>   features.

this can easily become a guiding principle: we can transition to QML where it 
makes sense, in terms of:

* we have the resources to do it (developers, designers, etc)

* where it will not result in a degradation of the user experience by gutting 
the software of its features

as Olivier noted, QWidget will remain (far too much code out there relying on 
it and QML is far too young/immature to seriously think of it as a 100% 
capable replacement at this point), and we can and should take advantage of 
that.

-- 
Aaron J. Seigo
humru othro a kohnu se
GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA  EE75 D6B7 2EB1 A7F1 DB43

KDE core developer sponsored by Qt Development Frameworks
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20110510/d2c2d981/attachment.sig>


More information about the kde-core-devel mailing list