Qt for Maemo 5, next iteration

Posted by Harald Fernengel on December 1, 2009 · 11 comments

With all those Qt releases happening, I feel like we need a new acronym. How about YAQR (Yet Another Qt Release)? So – we’re happy to announce YAQR, the second Technical Preview of Qt for Maemo 5 (official announcement). This release focuses mainly on deeper integration with Maemo 5. Lots of widgets received updates to make them more finger-friendly. Kinetic scrolling has been updated to feel just like the native Maemo 5 one. Native dialogs are now used, and QStyle supports the native Maemo 5 themed icons. Several new Maemo 5 specific classes were added:

  • QMaemo5ValueButton: Implements a “Picker Button”, basically a button with an extra value
  • QMaemo5KineticScroller: Implements the Maemo 5 kinetic scrolling algorithm
  • QMaemo5AbstractPickSelector: An abstract interface to implement Maemo 5 “pickers”, plus a picker implementation for time picking
  • QMaemo5InformationBox: Support for Maemo 5 Banners and Notes
  • QMaemo5EditBar: Support for Maemo 5 Edit toolbar

In addition, we added some new window flags to support special Maemo 5 features:

  • Busy indicator for windows and dialogs
  • Portrait and landscape orientation (listening for orientation changes still has to be done via D-Bus – see the Maemo 5 widget example)
  • Stacked windows to support Maemo 5 “Window Views”
  • Support to disable window compositing in the window manager to improve drawing performance

As a special treat, we managed to improve the OpenGL ES 2 support (*). This was quite a tricky task, since the Maemo 5 input methods rely on native X11 controls. The OpenGL ES 2 graphics system requires all Qt widgets to be “alien widgets” (non-native widgets on an OpenGL surface), though. We fixed that with some proxy magic, so now we can have all Qt widgets on OpenGL ES 2 surfaces but still integrate properly with native input methods.

And now for the mandatory video, showing all those nice improvements:

How do I get it?

We have Debian packages, hosted by maemo.org, so it is no longer necessary to compile Qt. Short story: Add Maemo’s “extras-devel” repository and type “fakeroot apt-get install libqt4-maemo5-dev”. Qt will be installed to “/opt/qt4-maemo5″. The long story can be found on the wiki.

The source code repository is still at http://qt.gitorious.org/qt/x11-maemo. Check out “README.maemo5″ for build instructions.

How to contact us?

You can reach us via the “qt-maemo-feedback” mailing list (see Mailing List instructions), or on the “#qt-maemo” IRC channel on irc.freenode.net. For bug reports, you can use our bug tracking system at http://bugreports.qt.nokia.com/. Please set the bug’s component to “Maemo 5″.

Disclaimer

It’s a Technical Preview. Treat it as such :)

How to debug

The gdb 6.8 that is currently shipped with the Maemo 5 SDK is crashing a lot when trying to debug Qt applications. We packaged gdb 7.0 for scratchbox (ARM and x86 targets), you can find the packages here: http://chaos.troll.no/~harald/gdb7/. gdb 7.0 is installed as “gdb7″ (note the “7″ suffix) to /usr/local/bin, so it won’t clash with the existing gdb. If the standard gdb crashes, give our gdb7 a try.

What’ll happen next?

  • Much more documentation (sorry for the lack of it)
  • Pickers for date and general single selection QAbstractItemModel picking
  • Kinetic scrolling also for QWebView
  • Fine tune the layout and widget metrics and spacing
  • A Qt for Maemo 5 Beta once we’re feature complete and have better test coverage

(*) Note that there are currently still some rendering glitches with the OpenGL ES 2 graphics system which we’re currently investigating.

QShare(this)

No related posts.


11 comments

1 tobias December 1, 2009 at 2:18 pm
 

I see in the video that you use the pen everywhere. Is that because the screen have problems with finger input or is it just to make sure that we see things better in the video? :)

2 pillar December 1, 2009 at 2:51 pm
 

Great news, although is there still integration with QtCreator to directly run your application in scratchbox? It is a killer feature to get all of us not-so-linux-people develop. And I bet I’m not alone.

3 Kitus December 1, 2009 at 3:02 pm
 

Well, I dunno about this video but I can assure you(as a happy owner of an N900) the screen has no problems at all working with your fingers.

Looking forward seeing Qt fully working on this device!

4 Tim December 1, 2009 at 3:03 pm
 

Yeah, I’ve said it before: If this requires a stylus it will never get off the ground. Finger-friendliness is a must these days.

Another thing I’ve said before: Your CAPTCHA is always too hard.

5 Tim December 1, 2009 at 3:06 pm
 

On second thought it does look fairly finger friendly. The first screen with the slider just looks a bit cramped.

6 Harald Fernengel December 1, 2009 at 3:29 pm
 

@tobias: Stylus was better since the camera was in a sub-optimal angle to the phone. Next time, I’ll get a real camera team :)

@pillar: The MADDE tool chain was announced at the Maemo summit, which is what we’re going to support in Creator once the Maemo guys release it.

7 Benjamin December 1, 2009 at 8:09 pm
 

Why not update the regular ScrollArea to support the kinetic scrolling of Maemo?
Depending on QMaemo5KineticScroller for something as common as scrolling seems annoying. Especially if you would like to have your Maemo applications on Symbian.

8 Harald Fernengel December 2, 2009 at 12:34 pm
 

@Benjamin: That has a lot of side effects, and we don’t want QGraphicsView to do kinetic scrolling if it’s not explicitly wanted. We’re thinking about a global opt-in / opt-out system, so the programmer can decide for himself whether kinetic scrolling should be always on (and can be disabled for the few cases where it’s not wanted) or vice versa.

9 Marco Martin December 2, 2009 at 2:37 pm
 

Are the names really with QMaemo5 prefix?
sounds like something that will be thrown away for Maemo 6, doesn’t sound too good :)

10 Thiago Macieira December 2, 2009 at 4:22 pm
 

@Marco: yes, the Maemo5-specific API won’t work on Maemo 6. But that’s why this is called TP2: we’re not done.

11 Rob December 19, 2009 at 2:37 pm
 

Can you recommend a Qt Creator version/environment that’s compatible with this version? Or is that wishful thinking?

Comments on this entry are closed.

Previous post:

Next post: