Badge and Progress support in Qt Creator

For quite a long time now, Qt Creator has been using the native features of Mac OS X and Windows 7 to display build errors and progress as badges and progress bars on the icon in the Dock and Task Bar respectively. Unfortunately, the X11 variant has been sorely empty. After realizing that a few applications, among them Chrome, could display certain information such as the number of ongoing downloads in Unity, I was wondering how this was implemented.

It turns out that libunity provides all the features required. Applications, identified by their .desktop name, can add progress and a badge. So I implemented it for Qt Creator, here is unity showing two compile errors in a demo application:


Now the gory details: libunity seems to be binary incompatible. After researching for a while, I noticed that it is best to follow the Chromium implementation and only try to open known-to-work versions of libunity. This it not really optimal, but it works, at least until the next unity release :(.

*Magnum narrator voice on*: Now I know what you’re thinking 1), and you are right: “X11” does not equal “Unity”, but I have no idea if there are equivalents in GNOME 3 or KDE/Plasma. Probably the terminology is just different. If so, I’d happy to learn about them and implement these as well. A plus if there a FD.O library (and I’m afraid there isn’t). If not, I’d like to toss in the question whether KDE should have such a feature, or how else applications can usefully reflect certain statuses while in the background.

1) especially if you are reading this through Planet KDE!

New Job!

Today I started working at ownCloud GmbH to help shaping the ownCloud desktop syncing client. Since I’ve been hanging around on the ownCloud IRC channels for a while, some regulars might already know me as danimo. So here’s hello to everyone in the project. I am super super excited about what lies ahead for ownCloud!

New Planet, new Domain

It took a bit longer than anticipated (sorry about that), but now it’s finally done: Planet Qt got a face lift, and is now hosted with the Qt Foundation. Just like Planet KDE which it was greatly inspired by (thanks to Jonathan Riddell!), it’s now based on RawDog, rather than on the aging PlanetPlanet. But how does that affect you, the inclined reader or contributor to the planet:

If you are a reader, nothing much has changed, except that the URL for the RSS feed has changed and we now get FOAF and OPML for free. You might need to remove duplicate elements from your feed reader, sorry about that. We also decided to redirect to for consistency with the other foundation’s activities.

If you are a contributor, and want your blog aggregated, you can do so by simply following the guide lines on the side bar:

All who blog in English about Qt can either add their complete RSS feed or a feed based on a specific category or tag for those blogging about multiple topics. All you need to do is clone the Planet Qt repository, add your feed’s address, and put your change up for review.

That’s right, adding feeds now works via the usual review process. If you are a contributor, and a Reviewer can be convinced that your blog is relevant for PlanetQt, it will be added. For now this involves a manual update on the server still, but if we see no abuse we might just as well automate this process.

The same is true if you want to improve the layout: Just checkout the repository (you will need Python, though) and test it yourself, tweaking it to your liking and then submit the result as a patch.

Finally, big hands to Ben Meyer, who has been hosting this web site for so long!

And now: Enjoy the new PlanetQt!

S-Bahn Berlin: Random Routing am Ring

Aus unserer beliebten Reihe S-Bahn Berlin, die unendliche Geschichte lesen Sie heute Random Routing am Ring.

Gestern abend, ca. 10 Uhr am Treptower Park. Die Linien S8 und S9 endeten hier (soweit nicht weiter überraschend, einen Grund brauchte man dafür bei der S-Bahn dafür noch nie). Nach mehr als fünf Minuten des Wartens auf eine Ring-Bahn nach Ostkreuz hieß es, es sei am anderen Bahnsteig ein Pendelverkehr nach Ostkreuz eingerichtet (so war es auch angeschlagen). Also wurde hastig der Bahnsteig gewechselt (natürlich über spiegelglatte Abgänge), gerade rechtzeitig zur Ankunft des Zuges. Nach der Abfertigung die böse Überraschung: Statt nach Ostkreuz fuhr dieser Zug im normalen Ringverkehr Richtung Sonnenallee. Rechtfertigung des Fahrers: “Wat die da am Bahnsteich sagn, kann ick nich hörn. Und ick hab doch jesacht ‘Zur Ringbahn S41 einsteijen bitte!'”. Hat er auch — ohne Angabe von Zielen. Und wer verlässt sich beim Pendelverkehr bitte auf Liniennummern, zumal sie mit der des Pendelverkehrs am Bahnsteig übereinstimmte?

Der Gegenzug aus Sonnenallee endete dann wieder in Treptower Park, man solle doch bitte den Bahnsteig wechseln, dort warte (Überraschung!) ein Pendelzug nach Ostkreuz. Natürlich war auch dies wieder kein Pendelzug, sondern eine normale Ringbahn. Doch kurz vor der Abfertigung, und offenbar 20 Minuten nachdem die ersten Zugführer informiert wurden, bekam auch das Personal am Bahnsteig Bescheid: Der Pendelverkehr sei “abgesagt”, man solle richtung Ostkreuz (na, wer ahnt es?) den Bahnsteig wechseln.

Als die Ringbahn von Treptower Park dann am Ostkreuz ankam, war das Stationspersonal dort auch noch nicht informiert: Der Zug wurde als Pendelverkehr angeschlagen und angekündigt. Hilflose Fahrgäste irrten über bei Temperaturen deutlich unter -10 Grad über den oberen Ringbahnsteig und fragten sich bei Mitfahrenden durch.

Nicht nur die Kommunikation mit dem Kunden funktioniert bei der S-Bahn nicht, auch intern scheint die Kommunikation zusammengebrochen zu sein. Die Disponenten und Fahrdienstleiter sind ganz offenbar heillos überfordert. Ein Wunder, dass noch nichts Schlimmeres passiert ist und ein Skandal, wenn die S-Bahn diesmal wieder davon kommt. Gut gerüstet, my ass!

Gran Canaria, here I come!

Wow! The last few days have been eventful. Only four Days after LinuxTag and the KDE Wiki Meeting I am sitting in the check-in area of the Berlin-Tegel Airport heading for Madrid. If everything works out as expected, I will then transfer to a flight to Las Palmas. I swore myself not to blog before I have checked in successfully, so the time for this entry is now, and to make it even more obvious:

The weather is awesome in Berlin already so I am looking forward how Gran Canaria will beat this (probably less thunderstorms in the evening, although they are really refreshing).

At GDCS, I will present Qt Creator, the scalable C++ IDE from Qt Software (I even brought the leaflets I printed LinuxTag, my bag I short of over baggage). I am looking forward to meet everyone again tonight at the welcome party!

FrOSCon 2009: Call for Papers About to Close

The Call for Papers for this years’ Free and Open Source Conference (FrOSCon) will close in three days. Hot topics are Cloud Computing, Open Hardware, Free Software and SaaS (Software as a Service) as well as mobile Gadgets (Netbooks, Phones, …).

Traditionally, FrOSCon has always hosted a sub conference. After hosting the Python and PHP community, this years programming language du jour is Java. Does anyone feel like giving a Jambi talk? 🙂

Btw: Qt Software supports FrOSCon as a Gold Sponsor and both Qt Software and the KDE team will of course be present during the conference. Visit us from 22.- 23. August 2009 in the premises of the University of Applied Technology in St. Augustin near Bonn!

Qt Kinetic: Declarative UI

Today, we (Qt Software) released a new user interface technology, called Declarative UI on Qt Labs. Declarative UI is part of the Qt Kinetic research project and is a completely new approach to programming with Qt: In contrast to imperative programming, declarative programming is a more natural and expressive way of creating software. The program logic is expressed in terms of what something should be, what it should look like and how it should behave, rather than described through control flow statements of creating, modifying and connecting objects.

So everything is totally new and leaves the old Qt behind? No! The Declarative UI builds on the core concepts in Qt and applies the ideas of declarative programming to user interface design. More information, including download links can be found in the announcement. This is also the place for feedback. Here is a video to make you drool a bit:

(YouTube link, Ogg Theora version)

Not convinced? The look at this:

(YouTube link, Ogg Theora version)

This dial example is implemented in 45 (!) lines of QML!

Note: No Fingers were harmed in making these screen casts</p.

KDE Dot News: Back To Where It Belongs

Following up on my last post, I wanted to give you a few more admin updates: Since a few weeks, KDE Dot News is back on its old server. Just like before the move to Drupal, after a short visit to Immanuel in Munich, it is hosted at Oregon State’s Open Source Labs (OSUOSL) along with some other Drupal-hosted sites.

I want to thank OSUOSL for their continuous and now even extended hosting of KDE sites. If you like the Dot, please consider a donation to those fine guys so they can keep us up and running. Thanks OSUOSL!

PS: I wanted to note that we moved away from Google Analytics to a private Piwik installation for the Dot due to understandable privacy concerns.