Monday, May 28, 2007

data engines and transitions

i got some more work over the weekend in on plasma, though it was pretty low key due to everything else going on. i wrote a small engine that grabs rss feeds from cia.vc and publishes them.

this enabled me to test some new data engine features that are needed, such as placing an upper limit on the number of data sources available with an engine. the least used ones get dropped off automatically when a limit is set.

then i wrote an applet that starts to display the current strengths and weaknesses of the new layout stuff, which is still in its infancy. but in 127 lines of c++ code, including the header, it displays the information published by the cia.vc engine in a series of text boxes in a vertical layout. now that we have something that demonstrates the layout code easily, i expect that to start firming up even quicker. well, not that it was going slow lately, but.. yeah.. easier when there are real use cases about.

which was my entire intention with writing this engine/applet pairing. though it is neat to see kde's commits on the desktop =)

my plan had been to work on a transition effects class which i'm tentatively calling Phase. i did the design this afternoon based on thoughts that have been collecting for quite some time on it. in essence, the idea is to allow this class to manage all manners of animated transitions: objects appearing and disappearing, sliding, joining, getting attention, etc.

the base class handles managing the timelines (which controls the animation firings) as well as informing the Corona (which is the plasma graphicsview implementation) when the animation is complete. the base class then calls the actual animation producing methods which get all the state information they need delivered to them.

it will support pluggable implementations so we can ship a basic (e.g. none ;) transition implementation but people can create pretty much any sort of transition they can think of and code up.

there will be one method per transition type, and the method will be called with a QGrahpicsItem object and where in the animation it currently is. that means that creating new animation sets means simply working on the animations themselves, none of the boring framework bits like the timelines and what not. that's my job ;) given the ability to draw on top of, around as well as modify the passed-in QGraphicsItem itself this should be a pretty flexible system that opens up all sorts of doorways for useless eye candy ;)

this, along with a few similar things that we're doing, should also allow plasma to also scale from a high end system with a local desktop to a low capability system running a desktop over the network simply by setting the complexity of the effects and imagery.

my goals this week are to get the start of script support, ghns2 and packaging (working with ruphy towards that end) and grouping... lots to do, indeed, but the progress is encouraging me to go even faster =)

5 comments:

Benoit Jacob said...

quote: my plan had been to work on a transition effects class which i'm tentatively calling Phase.

that's funny, I'm at university working on modelizing Phase Transitions in statistical mechanics, then I open planetkde.org and see this...

anyway kudos for the great work!

cniehaus said...

Hey, when you have the kghns2 stuff working write another blog, please :) I fought several hours with it already and the dialog is still not showing my "stuff"-items. The same is true for several other developers.

Otherwise: Nice to see progress in Plasma.

gopala said...

Hey i'm seriosly impressed by the concepts of plasma. I've some experience with gv and thought i could expertise in it by contibuting some code. Unfortunately it is exam time(june-july) :(

Anyway kudos to all contibutors of plasma! :)

landolsi said...

Hi,

Araon, I have been using kde for sth like 4 years. I don`t wanna say that I am an expert but, I just wanna mention that even after 4 years the first thing I look to in a desktop is to be VERY VERY VERY eyecandy.

So saying "usless eyecandy" is not that true, at least beautiful things make us use the different func more effectively. So eycandy is really usefull ;-)

Great work!

Anonymous said...

Eyecandy is not that important,
but it is NOT totally unimportant!

It should always visually please the user.

One thing i like in KDE more than in the eyecandy gnome is that KDE is usable for both "veteran" and new users alike. I do not think Gnome's approach of telling the user what to use is a good decision, and i hope plasma widgets will prove that a new sprout of new stuff will attract even more people.