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 😦
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? 😛