Tag Archive: qml


Dinjam Qml progress

Hi!

It is late already, I have to go to work tomorrow… today… so this will be a short status update. Today I had enough motivation to work on the Qml frontend of Dinjam again 🙂 and it shows off with SOME results 🙂

We can load scripts and they can actually do something. So this Dialog (with the white area in it) is actually a QGraphicsView subclass created by the Base script (the same script used in the desktop version) YAY 🙂

So that’s it for now =) Hopefully I can soon continue working on it…

Btw: happy new year 😛 hope everyone had a good start 🙂

Advertisements

As mentioned in my last blog entry about Dinjam I’m in the progress of separating the core stuff of Dinjam into a library (libdinjam) and creating Uis for different scenarios (like mobile usage).

There are 4 different uis in the works – even though I’m not sure all of them will ever be finished (more about that later).

1.) Desktop (QWidget based)

This is the traditional Ui as it has always been with the Ui designed using Qt Designer and the QGraphicsScene created from within the scripts.


Atm Scripts are broken in the sense of that there are no C++ exports of for example documentmanagement. (and there are some other broken pieces everywhere)

2.) Meego Touch Framework (MTF) (QGraphicsView based)

A new ui based on the MTF developed by Nokia/Intel for Meego. Atm I’m trying to setup a devel environment but it is not as easy as I had hoped – I’m trying the qemugl approach from the wiki – but the image won’t boot using kvm (just stops at loading the kernel) and without it starts X and then stops (no handset UX shows up). How to get network up and running can be found here.

After packaging libmeegotouch and meegotouchtheme for ArchLinux I can now sort of execute/link/use meego applications although there is some really weird gconf stuff going on and I’m not sure if my system is correctly set up now. Maybe I’ve got to set up a Fedora VM or something similar. Or just wait for PR 1.3 of Maemo to easily dualboot Meego natively on my N900 to execute directly on my N900.


Basically everything here are placeholders – as I just recently found out that meego applications run at all (before I had a white square and nothing else appearing).

3.) QML Ui (QDeclarativeView based)

QML or “Qt Quick” how the cool guys at Nokia are calling it seems to be the future Nokia envisions for app development. Combined with their ongoing lab project QSceneGraph which should bring enormous performance gains as all painting will shift from QPainter to OpenGL/on GPU based painting, this may really be the future – at least in the long run. I must admit that the whole affair is really new stuff to me so I’m having a pretty hard time figuring out how to transform a traditional ui into a QML based version.

I’m currently trying basic things like navigating between a basic menu to another page showing an about dialog – and I want to make that happen using a nice transition – and not showing/hiding elements but instead loading them as I need them (to save ressources). Sadly I wasn’t able to find any QML application out there using such an approach… I’m looking for the pages concept of MTF I think…

Anyway… here’s my first try…


So what works? The quit button – and About switches to another page – but atm without a nice sliding transition effect and using show/hide of the different rectangles… not nice imho.

4.) Qt Components (QML based)

The last frontend Dinjam may provide in the future is the Qt Components based one – although atm there isn’t much progress as Qt Components itself are not really anywhere atm. Afaik there exists some sort of a Meego “style” atm and an incomplete MX “style”, with a plasma (KDE) “style” in the working (see this post on plasma-devel mailing list) but there is not really anything useable atm I could plug into. At least to my knowledge.

So no screenshot for that one 😦

TODO

So what is still left to do? A LOT! It starts out with library recompiles as soon as I switch platform (3 object files want to relink again), cmake fixes to incorporate the possibility to build not only one but many/all platforms at once. And of course: finish those uis.

I think the best step would be to first get the desktop ui working again and then slowly start creating the others. It remains to be seen how to integrate a QGraphicsScene/View with MTF/QML. Interesting times ahead… that’s for sure.

Stay tuned for more updates. I hope I won’t disappoint you

To end this post: Orbit/Directui anyone? 😛 anyone strange enough to create a KDE ui? 😛

Dinjam revival and CMake magic

Beside of sex, love and rock’n’ roll there are also other things going on… 🙂 (yeah I know those things are laaame in comparison ^^)

Dinjam is going to get a revival as a mobile app for maemo or meego (have I mentioned that before?). I’m planning to do that using a library and mulitple frontends.

One of the frontends planned is a Qml frontend using Qt Quick Components. Another one is a native libmeegotouch UI. And of course the already existing frontend using traditional QWidgets.

Currently everything is in a broken state – and can be found in my mobileui branch on gitorious.

The current status is that CMake migration is in the progress… the library is already created but I’m not sure yet if I need some export macros? or how I should handle include paths… I also need to figure out what has to be cleaned up from the desktop (widget based) ui into the library and how I can strip down those components…

Next will be that I’ve gotta figure out how I can use the QGraphicsView in Qml OR how I can paint from within QtScript onto the Qml Scene… I would like to be able to animate the View (roll it to the side like a paper or something like that …)

So if anyone has got any idea on how to do this I would really appreciate it 🙂

Maybe you are asking yourself what has kept me busy and why it took so long for those small looking steps… well life… and cmake… this grandious build system had something against my complex folder structure… yeah… until I found out how to use it the right way(tm)…. did you know that CMake had an include statement? using it you can include other CMakeLists and therefore you can set variables in a subdir and still use this variable in the topdir where you included the list… who needs add_subdirectory if you can use include? 😛 cool thing… 🙂

I found that solution through the help of a german qt forum 🙂 thanks. so for all my german readers (are there any? oO): here you can find the thread.

Cu next time 🙂