Thiago Macieira
Qt
Posted by Thiago Macieira
 in Qt
 on Tuesday, October 21, 2008 @ 14:43

I bet you’re getting bored about this now… But apparently the blogosphere is now the vehicle of communication. Even our Marketing department decided that our cool, new homepage wasn’t the forum for it… It’s getting scary.

Anyways, if you were in the Qt Developer Days event last week in Munich, this comes as no surprise to you: Qt 4.5.0 Technical Preview is released. We promised the release by the end of the week, and then Friday came and we decided to go for a beer… but I digress.

What does this mean? Well, it means you get to see all of the cool new features we’ve been working on for the past few months (though you could already), as well improvements and fixes. For an idea of what we’ve done, you can look at past blogs and the TP website.

I know you all want a comprehensive list of what has been done, but I won’t give you one. For one thing, we’re not done — only features are done.

One major area of improvement for this release was on QtWebKit. We upgraded it to webkit.org’s latest trunk, we added Netscape plugin support (yes, you can watch videos on YouTube), we added support for video and audio elements with Phonon, we added HTML5 client-side storage (SQLite), and so on. I don’t even know all the guys did on WebKit.

Then there was that project that ported Qt to a new platform: Cocoa. Yes, this is technically a new port, even though it’s the same operating system. Now you can build Qt and your applications on Mac OS X using that framework, which supports both 32- and 64-bit. You can make use of those 8 extra registers! Well, your compiler can… We also added a new Phonon backend for the Cocoa port, since the old QuickTime 7 one used libraries available in 32-bit only.

For Windows CE, we finished the features that had been missing from the 4.4 series: namely, WebKit and Phonon. So you can now see YouTube on a Windows CE device too! And for that, we had to add two new Phonon backends: one for DirectShow and a simpler one, called the “WaveOut”.

Are you keeping track? That’s three Phonon backends with 4.5, plus the three others we did for 4.4. The KDE community and outside communities have also provided three more (Xine, mplayer and VLC). They say the three is the charm, we’re on three times three.

And then we also spent a lot of time doing performance improvements. Not that we don’t do that normally, but this is the first time that we said: we’re going to put major focus on performance. The results of that are a boost on several areas of Qt, mostly the painting and text. We’ll publish some benchmarks and shiny graphics later on. One result of that focus on performance was the new pluggable graphics backend system: that means you can switch which paint engine you’re going to use to draw. We offer you the native ones, the raster (software-based) one, and a new OpenGL-accelerated engine. (Be careful, some/most OpenGL implementations sacrifice perfection for performance, so you may see artifacts).

As a positive “side-effect” of the focus on performance was that we added benchmarking tools to QtTest, our unit-testing library. That’s to help you create benchmarks for your code. We provide three backends for it: a time-based one, a valgrind/callgrind-based one and a third one. I don’t remember what the third one is, but I know there’s one (we seem to do everything in threes anyways).

Besides those main areas of focus, we also added XSL-T support to QtXmlPatterns; we added the QtScriptTools module and a QtScript debugger tool; we added support for creating OpenDocument (ODF) text straight out of our text engine classes; we added QSharedPointer; we added support for compressed SVGs; we added Gtk+ integration (the QGtkStyle style); we improved Qt Designer and Qt Linguist; …

The technical preview is available under a special license at https://trolltech.com/developer/preview-qt-4.5. The Open Source GPL versions are at ftp://ftp.trolltech.com/qt/source/. As for past pre-releases, please send feedback to the qt4-preview-feedback mailing list (see webpage for instructions on how to subscribe).

I hope you enjoy Qt 4.5 as much as we enjoyed making it!

15 Responses to “Same old, same new: 4.5 Technical Preview”

» Posted by Carina Denkmann
 on Tuesday, October 21, 2008 @ 15:06

Thanks a lot! For me, the best new feature in Qt 4.5 is ARGB toplevel window support, just to add one of the features that you didn’t mention (besides the new QPixmapFilter, the new … :)

» Posted by ubix
 on Tuesday, October 21, 2008 @ 15:12

Great!!! I can not help to try the new OpenGL-accelerated paint engine! What platforms (x11/XGL, embedded/?, WM) does this engine support?

» Posted by Scorp1us
 on Tuesday, October 21, 2008 @ 15:41

Animation API? Animation API? Animation API? Animation API? Animation API? Animation API? Animation API? Animation API? Animation API? Animation API?

*drool*

» Posted by Dimitri Frederickx
 on Tuesday, October 21, 2008 @ 16:38

Is there also going to be a preview version of Qt Jambi?

» Posted by Miuquim
 on Tuesday, October 21, 2008 @ 21:51

Thanks for all the fish! ;)

Only a little question: Do you have more information about what “Improved proxy support” on http://trolltech.com/developer/preview-qt-4.5 refers to? Automagically proxy configuration detection?

» Posted by Andrew
 on Tuesday, October 21, 2008 @ 22:49

Sounds like some very nice additions coming up, looking forward to it :)

Just a quick question though, with Phonon getting all these backends for audio out, are there any plans to have audio in?

Thanks, and keep up the awesome work :)

» Posted by Kevin Kofler
 on Tuesday, October 21, 2008 @ 23:52

Will the additional Phonon backends be added to the upstream Phonon in kdesupport?

» Posted by jeff adams
 on Wednesday, October 22, 2008 @ 02:50

Any plans to support us types in designer that have coding standards that say pointer variables must start with a “p” or “ptr” prefix?

the issue is when you name a widget, the name you give it becomes the pointer variable name you use to access methods/properties on the widget.

I’d like to name a widget something like “lastNameLineEdit” but access it via ptrLastNameLineEdit.

Please help!

» Posted by Thomas Zander
 on Wednesday, October 22, 2008 @ 07:43

@jeff all widgets are always pointer values, no need to prepend ptr to avoid confusion. Qt is very consistent there so if you follow Qt coding standards there is no need to have such a prefix to avoid confusion. But if you insist, you can just change the variable name inside designer to have a ptr prefix.

» Posted by Matthias Ettrich
 on Wednesday, October 22, 2008 @ 07:47

Jeff,

the source comes to the rescue :-) You could modify tools/uic/cpp/cppwritedeclaration.cpp and tools/ui/cpp/cppwriteinitialization to add the prefix to the generated C++.

» Posted by mkalinow
 on Wednesday, October 22, 2008 @ 08:22

@Kevin
getting the WinCE backends into phonon is definitely the midterm plan. We are waiting for some feedback from you (the early-bird adopters) and afterwards we will give it to phonon.

» Posted by Sean Harmer
 on Wednesday, October 22, 2008 @ 09:22

Did the new animation API make it into 4.5? If not, will it be possible to download it from labs/Qt solutions etc to try it out and give some feedback?

» Posted by Will
 on Wednesday, October 22, 2008 @ 13:00

Yeah, I was wondering the same thing (animation API). I just downloaded and am compiling the TP but digging around in the src directory I’m not seeing anyting labeled “animation” so I guess this much hyped but not discussed feature isn’t there just yet.

» Posted by Guido Seifert
 on Thursday, October 23, 2008 @ 07:17

This question is still open in another thread: Is it possible to get read access to you git repository?
Testing and staying up-to-date would to so much easiert with it.

» Posted by Davide Capodaglio
 on Tuesday, October 28, 2008 @ 08:20

What about DOM access and manipulation in Webkit? will be ready in this release? I could not find anything about this in 4.5 snapshot online manual…



© 2008 Nokia Corporation and/or its subsidiaries. Nokia, Qt and their respective logos are trademarks of Nokia Corporation in Finland and/or other countries worldwide.
All other trademarks are property of their respective owners.