mbm
Qt
Kinetic
Declarative UI
Embedded
Posted by mbm
 in Qt, Kinetic, Declarative UI, Embedded
 on Tuesday, March 16, 2010 @ 19:26

Meeting

Last week Espen already reported that a group of trolls were attending the Bossa’10 Conference in Manaus. It was a great conference with lots of great people attending and interesting presentations.
What is especially good about this conference is that the focus is on networking. It is always good when you get to meet people you have only been talking to and working with on-line (A shout out to Bruno Abinader, who has been working with me on itemviews-ng; it was great to finally meet you in real life!).

by ThiagoMartins on flickr
by ThiagoMartins on flickr

Working

Even though it is great to meet new people and hang out by the pool (don’t tell my boss), I was really in Manaus to present my ideas for The Future Of Qt Widgets. I talked about the direction in which the Qt widgets are being developed. It’s all about making life easy for both designers and programmers, using the Qt Declarative UI technology.

The Future Of Qt Widgets - Bossa’10
mbm working

Having Fun

The conference is over, but I am not ready to leave Brazil just yet. I will be spending the week in Recife with the guys at INdT. It is a blast working with them; they’re a smart bunch of developers and great fun to be around! And then there’s the beach… It’s tough being a Troll in Brazil, I tell you! ;) Did I mention we’re hiring?

Butterflies On The Beach
Pontal de Maracaípe

Martin Jones
Qt
Declarative UI
Posted by Martin Jones
 in Qt, Declarative UI
 on Tuesday, March 16, 2010 @ 08:18

As QML progresses towards its first official release we are again reviewing the APIs. This has resulted in a number of changes to the QML and C++ API in the Qt 4.7 alpha release, and a few more to come in the beta. Unfortunately this will result in some small adjustments for the early adopters, but I’m sure we all agree that its better to get the API right before release.

The QML API changes made in the Qt 4.7 alpha and also the changes coming in the beta are outlined below. If you find that your QML does not run after upgrading to a newer version of Qt be sure to check src/declarative/QmlChanges.txt first.

If you are getting started with QML and need a little help getting over a hurdle, or coaxing yourself into a declarative state of mind, join the #qt-qml channel on Freenode. Don’t forget to show off your QML creations! We’ve also set up a dedicated mailing-list for QML-specific discussion: qt-qml@trolltech.com.

Changes in the alpha:

The “viewport” properties in Flickable were not well named. The properties actually refer to the content that is flicked rather than the viewport that you “look through”.

  • viewportWidth -> contentWidth
  • viewportHeight -> contentHeight
  • viewportX -> contentX
  • viewportY -> contentY

We also removed the Flickable.reportedVelocitySmoothing property, which we’re confident no one will miss.

In a later release we’d like to have a “TouchArea”, so in order to have consistent naming in the future MouseRegion has been renamed MouseArea.

Connection syntax has been changed to allow connections to multiple signals of an object. Its name therefore changes to the plural. So the old form:
Connection { sender: a; signal: foo(); script: xxx }
Connection { sender: a; signal: bar(); script: yyy }

becomes:
Connections { target: a; onFoo: xxx; onBar: yyy }

ListView.sectionExpression has been replaced by section.property and section.criteria

ListModel is now strictly type-checked (previously, everything was a string)

  • foo: “bar” continues to work as before
  • foo: bar is now invalid, use foo: “bar”
  • foo: true is now a bool (not string “true”)
  • foo: false is now a bool (not string “false” == true!)

PropertyAnimation::matchProperties and matchTargets have been renamed back to properties and targets. The semantics are explained in the PropertyAnimation::properties documentation and the animation overview documentation.

Easing curves and their parameters are now specified via dot properties:

  • easing.type : enum
  • easing.amplitude : real
  • easing.overshoot : real
  • easing.period : real

For example:
PropertyAnimation { properties: "y"; easing.type: "InOutElastic"; easing.amplitude: 2.0; easing.period: 1.5 }

C++ API:

C++ classes have been renamed QDeclarative… rather than Qml…

QML_DEFINE_… definition macros, previously global macros, are replaced by qmlRegisterType registration functions, which must be called explicitly, e.g.:

qmlRegisterType<minehuntgame>(”MinehuntCore”, 0, 1, “Game”);

C++ API users should also consider using the QDeclarativeExtensionPlugin (previously named QmlModulePlugin) as a cleaner mechanism for publishing libraries of QML types.

The API of QmlView has been narrowed and its role as a convenience class reinforced. It has also been renamed QDeclarativeView:

  • remove addItem()
  • remove clearItems() - use ‘delete root()’
  • remove reset()
  • resizeContent -> enum ResizeMode { SizeViewToRootObject, SizeRootObjectToView }
  • remove setQml(), qml()
  • rename setUrl(), ur() to setSource(), source()
  • root() -> rootObject(), returns QGraphicsObject rather than QDeclarativeGraphicsItem
  • remove quit() signal -> use quit() signal of engine()
  • initialSize() signal removed
  • Added status() to determine status of the internal QDeclarativeComponent
  • removed execute() - setSource() will also execute the QML.

Upcoming changes in the Beta:

These changes will soon be available from the qt/4.7 git repository, and will be included in the Qt 4.7 beta release.

  • PathView: offset property now uses range 0-1.0 rather than 0-100
  • ListView, GridView::positionViewAtIndex() gained a ‘mode’ parameter to allow more fine grained control of where the view moves to.
  • Removed Qt.playSound (replaced by SoundEffect element in the mulitmedia module)
  • Removed Qt.closestAngle (use RotationAnimation instead)
  • Removed NumberFormatter
  • Removed DateTimeFormatter (use Qt.formatDateTime() instead)
  • Using WebView now requires “import org.webkit 1.0″
  • Using Particles now requires “import Qt.labs.particles 1.0″
  • AnchorAnimation must now be used to animate anchor changes (and not NumberAnimation)

Behavior and Animation syntax has been changed to differentiate from property assignments. Previously animations and behaviors could be “assigned” to properties like this:
Item { x: Behavior {}; y: NumberAnimation {} }
To make it more obvious that these are not regular value assignments a new “on” syntax has been introduced:
Item { Behavior on x {}; NumberAnimation on y {} }
Only the syntax has changed, the behavior is identical.

C++ API:
QDeclarativeContext::addDefaultObject() has been replaced withQDeclarativeContext::setContextObject()

alexis.menard
KDE
Graphics View
Declarative UI
Posted by alexis.menard
 in KDE, Graphics View, Declarative UI
 on Tuesday, March 16, 2010 @ 03:51

I was lucky enough to attend the Bossa conference ‘10 in Manaus where i was presenting Plasma-Mobile. I did a previous post about it so this one will be short, it just to show that the work is progressing well, look at it running on the N900 with decent performance :

Plasma Mobile is based on Qt, KDE technologies and QML.

Daniel Teske
Qt
QtCreator
Declarative UI
Posted by Daniel Teske
 in Qt, QtCreator, Declarative UI
 on Thursday, March 11, 2010 @ 13:21

Just over a year ago we released Qt Creator 1.0. Today we are releasing the alpha for Qt Creator 2.0. And the 2.0 release is shaping up really nicely. I’m feeling as excited about the 2.0 release as for the 1.0. We have something awesome and hopefully I can convince you to try the alpha and see for yourself!

But before I do that, some boring numbers, the 2.0.0-alpha differs from the 1.3.1 version by ~2500 commits from 51 people. (Though 28 of those had less than 10 commits.) Of those commits 88 come from Martin Aumüller, who keeps on improving the FakeVim plugin. Edit: Martin is an external contributer. Thanks for everyone who has created a merge request.

So what makes this release 2.0 and not 1.4? Do we number our releases after the years and have a strange myopic year 0? Nah not really.

We are adding two major features.

  • Qt Quick Integration
  • Symbian and Maemo development

Qt Quick Integration
You might have read the announcement about the Bauhaus alpha a few weeks ago. Where the Bauhaus project lead Kai said about QML:”[..] this one will fundamentally change the way slick Qt UIs are designed and look like!” Or you might have read the blog by Andreas a few days ago about a paradigm shift. So let me be yet another one to say: Qt Quick is bloody awesome. Try it NOW! Don’t wait for the Qt 4.7 release. :)

Symbian and Maemo development
We had experimental Symbian support in 1.3. Now with 2.0 we want to make development for Symbian and Maemo as easy as for the Desktop.
Seeing is believing:

Please provide feedback through the mailing list or the irc channel #qt-creator on FreeNode.

Finally here is the download link for binaries.

Have fun.

alexis.menard
KDE
Graphics View
Declarative UI
Posted by alexis.menard
 in KDE, Graphics View, Declarative UI
 on Sunday, February 28, 2010 @ 15:51

This week i was attending Tokamak 4 in Germany, the KDE Plasma meeting. I’m a Plasma contributor in my spare time so it’s always nice to meet face to face the people I’m working with. The event was hosted by Novell in the Suse office. It was very well organized and I even met some people behind this distribution. I was there to present QML and also gather the usual feedback from KDE/Plasma. I was also exiting to work on the new “project” launched couple of weeks ago : the Plasma-mobile project. The scope of this project is to bring Plasma and by extension KDE technologies on mobile phones. Plasma has already a dedicated user interface for desktop and netbook (The netbook shell) but a new baby will join the family.

After a lot of discussion, the idea was basically to have something that would work on almost all mobile devices and designers would be
able to provide a custom interface for each kind of device, without changing one line of code! How we can achieve that ? The idea is
actually very simple :) So, while we started working on it, another group started thinking about kdelibs and how we could get rid of “not so necessary” dependencies for the mobile world and decrease the memory footprint of it. Sometimes this kind of work doesn’t get into the user’s face but is really necessary for the overall user experience. These guys rocks, at the end of the meeting they had a very nice plan : basically a KDE for Desktop, Tablet, and Mobile. Check out the details here : http://mail.kde.org/pipermail/kde-maemo/2010-February/000059.html

Thanks to Qt and KDE infrastructure we are able to deploy our applications everywhere. Thanks to Plasma we are able to provide great organic interfaces and services everywhere. And thanks to vendors we are actually able to deploy all of this stuff on real devices ;)

Technically speaking we decided that we would code all the “backend” for the mobile shells in a way that they would have a “view API” that would be used by designers to create different interfaces for different devices (as it’s well known that there is no such thing as an interface that works well for all kinds of devices). To create the interfaces we used QML (the new Qt declarative language to design rich UIs).

It was a really good experience! In the first day we almost didn’t code a line and just discussed a lot what would be a good interface for Intel’s device Compal Jax10. Meanwhile we wanted to create a concept that would be easily adapted to the Nokia N900 too. After long hours of brainstorm and discussions on the white board we came with an idea and Nuno (one of the Oxygen designer) started to do a mockup and some icons so we would be able to play with it.

Mockup Nuno

After we had the basic images, Artur (MoRpHeUz) and me started prototyping the basic stuff only in QML so it was really easy to tweak the transitions and states and Nuno was constantly giving feedback. This experience was really nice for all of us: sometimes we just did it wrong but then gave some ideas to Nuno and sometimes it was just like what he thought! With half a day we already had a prototype using QML so we knew exactly how the shell would behave.

Having the whole idea our minds we just went to the white board and started discussing the C++ bits of the backend, in order to achieve a
good architecture that would really fit inside the “Plasma way of thinking” (TM). Basically Marco, Artur, Aaron and me discussed in the
board and tried to figure out what were the missing bits for our solution and what needed to be done on libplasma and how the backend
would be coded to achieve a good result.

Last night, on one hand after hours of hacking/thinking/bug fixing and on the other hand in just one day ;) Artur and me finished the first
draft of the mobile shell! It was really nice and I think that it’s just going to blow minds when it’s finished. Right now we have a full
shell using Plasmoids all around and all important concepts implemented. Of course we need to improve the code that is a little
bit ugly right now and polish it like doing the notification bar (for battery, wifi signal), decide how we are going to deal with
notifications (it’s already in our mind) and of course deal with remote widgets that just depend on the notification thing as libplasma
is already taking care of the difficult stuff behind the scenes. There is still a lot of work to make this user interface ready to production but I’m quite confident that we’ll make it really quickly.

Watch out the screenshots and videos below to know more about Plasma running on mobile devices. And if you’re interested about the decisions behind the concept, check out this other post about it (http://blog.morpheuz.cc/28/02/2010/the-mobile-concept/ and http://www.notmart.org/index.php/Software/A_mobile_Tokamak)

KDE has nice people, nice technologies that can run on other things than a regular desktop computer. The future looks promising…

kkoehne
QtCreator
Kinetic
Declarative UI
Posted by kkoehne
 in QtCreator, Kinetic, Declarative UI
 on Wednesday, January 27, 2010 @ 11:45

Declarative UI is one of the big things on the Qt Roadmap for Qt 4.7 and 4.6.x. I already enjoyed working with the Qml language and the developers behind it for quite some time - and believe me, this one will fundamentally change the way slick Qt UIs are designed and look like! If you have not checked it out yet, do so … although it is not yet part of the Qt package, it is very mature, and just fun to experiment with :)

Anyhow, a technology like this of course does not come out of the blue, neither do the tools to support it - I think the first discussions about a Visual Editor for a language yet-to-be-invented on the basis of the QGraphicsView framework started in summer 2008! In early 2009 I first heard about the name “Qml”, and was soon the lead of a development project, with right now 5 people working full time in this project. One of the most important decisions we had to make early on was for a cool project name - we eventually settled for “Bauhaus”, as a reminiscence to the famous German school for design.

Back to the facts: What I want to share with you today are our plans for supporting Declarative UI / Qml in QtCreator. This is an important one, because with Declarative UI we target not only the traditional Qt/C++ developers, but also more design centric people - the goal is to let both share the same language, from early prototyping until the final product. We can only achieve this with good tools in place.

Here are the things we are currently working on for the next major version of QtCreator:

Qml Text Editor - We already have some basic syntax highlighting / formatting support in QtCreator 1.3, but in the QtCreator master branch we are right now working on really mature Qml/JavaScript support. This will include all the goodies you kind of expect these days: Code completion, context sensitive help, …

Visual Qml Editor - After all, we are talking about graphical user interfaces, and you will not make UI designers happy just with a text editor ;-) . Here we decided for a fresh start and developed the components for the Visual Editor from the ground up. Interestingly, we are using Qml heavily ourselves here - e.g. in the Property Editor and States View.

Seamless Integration - It is no either text, or visual editing: You want to use both, and quickly switch between both. This is why we deeply integrate the Visual Editor into QtCreator, share the same Undo/Redo history and are also preserving the Qml file formatting as much as possible when doing file changes.

Debugging - We integrate the Qml debugger, which allows you to inspect the qml item tree and its properties at runtime, to check framerates, to evaluate JavaScript expressions and so on inside QtCreator.

Enough said - Nigel recorded a nice video showing you how the support currently looks like:

If you want to try it out yourself, we also packaged a technical preview of creator, qmlviewer/qmldebugger and the declarative examples & demos in one installer:

qt-creator-win-opensource-1.3.80-qml-tp1.exe (Windows 32 bit)
qt-creator-linux-x86-opensource-1.3.80-qml–tp1.bin (Linux 32 bit)
qt-creator-mac-opensource-1.3.80-qml-tp1.dmg (Mac OS X)

Disclaimer: The binaries are unsupported, and are only meant for early testing. In fact they are based on an untested snapshot of Qt, and an (almost) untested version of QtCreator! If you want to use qml for production work, stay with QtCreator 1.3.1.

Of course we are interested in all kind of feedback, preferably via the bug tracker or on the qt-creator mailing list.

Harald Fernengel
Qt
Declarative UI
 in Qt, Declarative UI
 on Thursday, December 17, 2009 @ 20:59

Recently, Qt Declarative for Qt 4.6.0 got released. We got a lot of requests for Maemo 5 support (well - some people just wanted to play the SameGame on their N900 ;) ). And voilà - declarative hit Maemo’s extras-devel repository. Obligatory screenshot:

Qt Declarative SameGame

Currently, the following packages are available:

  • libqt4-maemo5-declarative: The QtDeclarative library
  • libqt4-maemo5-declarative-dev: The development package, contains the headers for QtDeclarative
  • libqt4-maemo5-declarative-dbg: The debugging symbols, for more meaningful backtraces
  • qt4-maemo5-declarative-qmlviewer: The “player” for QML based apps
  • qt4-maemo5-samegame: The SameGame demo

To just get the SameGame, all you need to do is

apt-get install qt4-maemo5-samegame

(provided that you enabled the extras-devel repository). And the neatest thing - with the N900’s text editor, you can program your own QML applications directly on the phone. Launch them from the xterm with /opt/qt4-maemo5/bin/qmlviewer ./myapp.qml

No need to stop hacking just because space is too constraint to get out your laptop :)

Obligatory note: Qt 4 for Maemo 5 is still in tech preview status, reports about molten N900s will be met with a compassionate “Told you”.

Jan-Arve
Graphics View
Kinetic
Layouts
Posted by Jan-Arve
 in Graphics View, Kinetic, Layouts
 on Thursday, November 26, 2009 @ 11:09

For a long time the standard layouts shipped with Qt’s have been built around the concepts of linear and grid layouts. In the QLayout regime they are represented as QBoxLayout and QGridLayout. In the QGraphicsLayout regime they are represented as QGraphicsLinearLayout and QGraphicsGridLayout. We therefore started early this year with research on a new layout. The efforts of that culiminated into the QGraphicsAnchorLayout.

Motivation

We have quite often seen that the existing layouts in Qt can not always do what you want with just one layout. Take for instance Qt Linguist’s “Find dialog”.
The dialog is made up of four box layouts and one grid layout for the checkboxes inside the groupbox.
Qt Linguist’s Find Dialog
(note that Qt Designer does not illustrate the layout inside the groupbox or the toplevel layout)

In addition, in order to achieve this simple arrangement it uses three levels of nested layouts.
Luckilly, if you design it in Qt Designer it is quite easy, but you might not get it right at first attempt. Of course, doing it programmatically makes it even worse. The result are probably far from how a UI designer would specify the arrangement. We think that an anchor layout will narrow that gap in a lot of cases.

Concept

The QGraphicsAnchorLayout is a very flexible layout, yet the concept is simple. By creating an anchor between two edges of two layout items you are giving the anchor layout a constraint to fulfill. In the simplest case you are just saying that the distance between the two layout edges should be a fixed distance. You can do this with the left, right, top, bottom and the “center edges” of any layout item. You can also have an edge that has several anchors connected to it. This is not possible with linear layout and it is partly possible with a grid layout. This allows you to build up the structure the layout should have. The layout will then try to fulfill the constraints you have given it by potentially growing or shrinking the layout items. You can also configure each anchor to grow or shrink if that is preferred.

The API for configuring the layout structure reflects this concept. The addAnchor() function is all that you need to configure the structure of the layout, but we added some convenience functions for anchoring corners (surprise, addCornerAnchors()) and for fitting the size of an item to another (addAncors()). Thus, the following code will ensure that the left edge of item findEdit is always connected to the right edge of the item findLabel. In this case it means that there will typically be a bit spacing between the items, and the spacing will always be the same.

   anchorLayout->addAnchor(findLabel, Qt::RightAnchor, findEdit, Qt::LeftAnchor);

You can also anchor an item to a layout edge. If the edge of an item is anchored directly or indirectly to a layout edge, it’s geometry will react to changes in the layout geometry:

   anchorLayout->addAnchor(anchorLayout, Qt::LeftAnchor, findLabel, Qt::LeftAnchor);
   anchorLayout->addAnchor(findLabel, Qt::RightAnchor, findEdit, Qt::LeftAnchor);

Of course, you can also anchor items the same way in the vertical dimension.

Now, with this brief introduction we can go back to Qt Linguist’s “Find Dialog” example as I gave above.
It turns out we can make the same arrangement with just one anchor layout.

This is how the code could look like:

    QGraphicsAnchorLayout *l = new QGraphicsAnchorLayout;
    QGraphicsWidget *w = new QGraphicsWidget(0, Qt::Window);
    w->setLayout(l);

    // label, line edit and "Find Next" button
    l->addCornerAnchors(l, Qt::TopLeftCorner, findLabel, Qt::TopLeftCorner);
    l->addCornerAnchors(findLabel, Qt::TopRightCorner, findEdit, Qt::TopLeftCorner);
    l->addCornerAnchors(findEdit, Qt::TopRightCorner, findButton, Qt::TopLeftCorner);
    l->addCornerAnchors(findButton, Qt::TopRightCorner, l, Qt::TopRightCorner);
    // group box
    l->addCornerAnchors(l, Qt::BottomLeftCorner, groupBox, Qt::BottomLeftCorner);
    l->addCornerAnchors(groupBox, Qt::TopRightCorner, findEdit, Qt::BottomRightCorner);
    // cancel button
    l->addCornerAnchors(findButton, Qt::BottomLeftCorner, cancelButton, Qt::TopLeftCorner);
    QGraphicsAnchor *anchor = l->addAnchor(cancelButton, Qt::AnchorBottom, l, Qt::AnchorBottom);
    anchor->setSizePolicy(QSizePolicy::Minimum);
    l->addAnchor(cancelButton, Qt::AnchorRight, l, Qt::AnchorRight);

    // Done!
    scene.addItem(w);

Note, for simplicity the code does not populate the group box with items, since that is easier done with a grid layout. Thus, the anchor layout reduced 4 layouts into one.

There’s a lot of interesting things I could mention here, but I would then be just repeating what’s already written in the documentation, so if you are interested I suggest you take a look at that.

Conclusion

The anchor layout has some attractive properties. For some setups it provides a more intuitive API that is closer to how the UI designer would specify it. It is also very flexible: You can construct free-form graphs of anchors where one edge might be anchored to several other edges. You can modify size policy of each anchor, which means there is little use for a spacer item. You can also modify the spacing to be both a positive and negative value.

Of course, the anchor layout is not the silver bullet and in a lot of cases you are better off with just using a linear or a grid layout. The anchor layout is a flexible layout, and there is a price you have to pay for that: For some arrangements it can be very verbose compared to a linear layout, since you don’t have to anchor each item together (the “anchoring” is implicit by the order of the items).

Read the rest of this entry »

QtDeclarative
Qt
QtCreator
Declarative UI
Posted by QtDeclarative
 in Qt, QtCreator, Declarative UI
 on Wednesday, November 04, 2009 @ 07:47

At the Munich DevDays we got a lot of questions about QML - first among them was where to download it. To celebrate DevDays in San Francisco we are releasing binary snapshots that you can download now for Windows, Mac and Linux.

For those of you who couldn’t attend DevDays, QML helps you create exciting UIs like this:



Remember - QML still isn’t released so it isn’t as solid as we’d like, but it should be enough for you to get started. The packages include a full version of Qt Creator - simply create a new QML project, let your creative juices flow and press play to view your creation in the QML viewer.

When Qt 4.6 is released, we’ll make another more up to date package. As we approach this milestone we’re focusing our attention on writing tests, squashing bugs, updating docs and giving the examples a little love - so by Qt 4.6 QML should be even better!

alexis.menard
KDE
Graphics View
Graphics Items
Graphics
Kinetic
Performance
Posted by alexis.menard
 in KDE, Graphics View, Graphics Items, Graphics, Kinetic, Performance
 on Tuesday, October 27, 2009 @ 08:59

Do you know the main advantage of a Hummer? It can go pretty much everywhere, that’s why many armies are using it. If I talk about a Hummer it is because QGraphicsView can go pretty much everywhere too. Recently I was lucky enough to get a N900 (generously given by Jesper, don’t know for how long though) so I decided to test Qt on it. I mainly work on QGraphicsView here at Qt Development Frameworks so it was a way to test the speed of my toy (:p). Since I’ve also been a KDE user and developer for quite a bit, I thought I could try KDE on it and more precisely Plasma.

So I downloaded the Maemo 5 SDK and started building KDE and Qt with it.

First thing you have to know is that scratchbox is not easy to set-up because you always face problems and compiling inside scratchbox is really slow. The link step is a bit broken and you have to specify manually where are the libs you link with (apparently it’s expected to be like that). It seems odd… Anyways, after a couple of hours I had Qt 4.6 (Fremantle branch) up and running. I was quite happy to see that it performs well (if you are using the right things). Animated tiles are running smoothly and painting demos as well (using opengl es2 graphicssystem).

After this initial success I tried KDE. This was more painful than I originally thought. Broken packages (mysql-server), out-dated packages (shared-mime-info for instance) and the worst : CMake crashed during the configure step. I solved that by downloading the 2.8 RC version that I built myself. But after a couple of hours of fighting and debugging I got this:

Link to youtube video

As you can see Plasma is running fine on this device. Of course a lot of work is needed to make it “finger” enabled (the actual applet handles are not really appropriate) but it’s a good start and Plasma is flexible enough to allow that. I have created a separate “shell” called plasma-mobile (Plasma already has the desktop and netbook shell) and I pushed that on the KDE playground. It also needs a lot of work to integrate well with the device (battery, network, profiles and so on) but the goal is to invite people to contribute to Plasma in order to offer a real alternative to the hildon-desktop. Plasma already has many many features/applets that we can just use on the N900. This also comes with a global effort to bring KDE technologies to the device as Kevin said in his blog. You can also participate in discussions on the KDE mailing-list for Maemo.

So yes Plasma is also a hummer, it runs everywhere but it’s the luxury version.



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