Same old, same new: 4.5 Technical Preview

Posted by Thiago Macieira on October 21, 2008 · 15 comments

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!

QShare(this)

Possibly related posts:

  1. Qt Mobility 1.1.0 Technology Preview
  2. Qt SDK 1.1 Technology Preview released

15 comments

1 Carina Denkmann October 21, 2008 at 4:06 pm
 

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 … :)

2 ubix October 21, 2008 at 4:12 pm
 

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

3 Scorp1us October 21, 2008 at 4:41 pm
 

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

*drool*

4 Dimitri Frederickx October 21, 2008 at 5:38 pm
 

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

5 Miuquim October 21, 2008 at 10:51 pm
 

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?

6 Andrew October 21, 2008 at 11:49 pm
 

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 :)

7 Kevin Kofler October 22, 2008 at 12:52 am
 

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

8 jeff adams October 22, 2008 at 3:50 am
 

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!

9 Thomas Zander October 22, 2008 at 8:43 am
 

@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.

10 Matthias Ettrich October 22, 2008 at 8:47 am
 

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++.

11 mkalinow October 22, 2008 at 9:22 am
 

@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.

12 Sean Harmer October 22, 2008 at 10:22 am
 

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?

13 Will October 22, 2008 at 2:00 pm
 

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.

14 Guido Seifert October 23, 2008 at 8:17 am
 

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.

15 Davide Capodaglio October 28, 2008 at 9:20 am
 

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…

Comments on this entry are closed.

Previous post:

Next post: