unfortunately longer pieces of string have this really bad habit of getting themselves all wrapped up into a messy tangly ball if you don't watch them closely. as a scary insight into my personality: when i find such a piece of string around the house i often put it on my desk and work on it in quiet moments until it's all untangled. i love untangling string; tactile, puzzle like wonderful string balls.
ok, so what does that have to do with anything? well, the layouting code in libplasma is string-like. in theory you can do a lot with it. in reality it was a tangly ball of code. it needed to be gently unknotted so it could be used to tie up presents and entertain felines again. i finally got around to looking into it and after not even a whole day's work it's already a lot nicer in there. it's not perfect, but the class hierarchy makes a bit more sense, sub-layouts work and fewer widgets get screwed up.
the twitter plasmoid, for instance, had been routinely abused by the tangled layouts code. it went from a cute looking plasmoid back in the day to a confused jumble of images and text. i felt really rather bad about it, especially for Andre Duffeck whose work had been stomped on by changes in libplasma that were in theory for the better.
well, after a series of fixes, with Alexis at my side helping to port applets left and right where breakages were caused, i fired up plasma and saw to my pleasure that the panel was finally laying itself out properly. so then i took a deep breath and put twitter back on my desktop. and lo:
it's back to the way it was! =) a little more whitespace (Andre: maybe some margins?) and we'd be golden (well, aside from the rendering error in the lineedit you can see there). speaking of margins: plasma's layouts support different sized margins on each side of the layout which is pretty nice. the panel uses this to position the contents within the svg background. neat.
next up to go through all the applets and find ones that are trying to manage their own geometry rather than let libplasma do it. then make the applet handle respect minimum size hints. then use the working layout goodness in the panel and add handles there. then make panels drag resizable. pop on some config dialog goodness that is starting to appear in svn (did i mention we now have basic slideshow background support thanks to jpwhiting?). then release. then dance. then pass out and sleep for a week.