Tuesday 14 July 2009

Morning Blog on GeoGraphicsView

Hello again everyone!

I too am one of the lucky people that got the chance to go to Akademy ( or whatever we are calling it these days ) and it was a truly great experience. Apart from being fantastic craic ( its an Irish thing ;) ) I got a lot of work done, or at least a lot of work discussed, and I'm ready for the next phase of my project. The phase of awesomeness!! ... maybe I need to work on the name...

The main problem that I have been faced with is a pretty big one. We are currently implementing a Marble API that is as close to the QGraphicsView as possible ( see my last post for info ). I mentioned that a lot of the stuff has been done before but there were two problems with the current direction of things : 1) there was no real interaction framework or hit tests and 2) we were working with implicit sharing... which is a big NO for a QGraphicsView re-implementation.

Before a week ago I didn't even see this as a problem, but now that I've taken the role of a Guinea Pig implementer of this framework it has been shown in a new light. The problem was that somewhere during the implicit sharing and copying values from references there was an explicit downcast of all classes. This may not be a bad thing all of the time because we adopted a QVariant style system but for plugin developers this made things get very hairy. To make a long story short, if a plugin designer wanted to make a new weird and wacky GeoGraphicsItem they would have to directly edit the sources of the Marble Library to make this happen. Not Good.

So that's what I'm working on right now. If anyone feels like watching marble crash for the fun of it just check out the svn and enable my stuff ( the osmannotation plugin ) and let the fun begin! The joys of CMake and plugins have given me a great sandbox or more importantly kept my crazy code from all you nice people. Hopefully after all this all you third party developers will be able to make a really cool marble plugin with absolutely no effort, so watch this space!

No comments: