I know the pencils down was a week (plus?) ago, but I did a fresh upgrade of my system (to OpenSUSE 11.3, then to KDE SC 4.5.0) and then realized to my horror that there was obviously no way I could make a screencast or even take screenshots for this post until I’ve rebuilt trunk and plasma-mobile. So I frantically spent the past week doing exactly that, and now without further ado, the screencast:
My trunk kdebase is still a little screwy at the moment, in case you noticed the extreme ugliness of that context menu there. Also, somehow the sizing and position of the icons have gone a little off between the end of GSoC and now (Damn).
Anyway as you can see, nothing much has changed in the high-level ideas of the system tray I described in my previous post. Most of the work I put in since the mid-term had been in the way of improving the implementation strategy – cutting most of the harder ties between the system tray and the mobile shell, and getting the system tray to update its behavior based on loose events like resizing instead of specific events like Qt signals. All this of course to fit into the Plasma philosophy of creating loosely coupled independent parts – so that for instance we could put in a replacement tray without needing to change the shell code – since the shell only knows it is given a containment that it needs to resize – and we could also easily put my systray elsewhere as long as it knows to resize the tray the right way.
There is also of course noticeable change in the look and feel. The tray containment paints its own background now, and the icons now resize along with the containment instead of disappearing and reappearing at the ends of the animation – so that we don’t need extra signals to indicate when those ends occur. I’ve also thrown a couple of “fake” plasmoids in – a fake battery indicator and a fake service signal indicator – since both of these things apparently require hardware-specific treatment. Unlike the desktop system tray, the mobile version only supports the plasmoid and dbus system tray protocols – xembed isn’t supported. Iirc those aren’t resizable anyway :)
It’s been fun. I have always loved Plasma for the sheer sensibility and elegance of its software architecture, and its really nice to be given a chance to gain a deeper understanding of it and experience it for myself. It was also great to be forced to crunch through a bunch of documentation for all kinds of QGraphicsObject derivatives – and have a brief tantalizing tango with QML while I was at it. It was a great GSoC, and I’d like to thank my mentor Alexis and the ever helpful (some say omnipotent) Marco for making this possible for me.
Oh, and I plan to be hanging around of course. I forsee my school final year project crashing down on me tsunami-style very soon, but I still hope to get a couple of things done before 4.6 gets out. Will blog about those when the time comes ;)