Project Progress – End of GSoC

Hello again,

As the title says, this is my last report regarding my project during the Google Summer of Code program. I’m saying during GSoC because this is certainly not my last contribution to the plugin I’ve been working on all summer. In fact not only that I will give my best during the next days to get it to a deployable shape for the next KDE release, but I’m also planning to continue contributing to Marble in the long term. But first, I will make a presentation about the changes the plugin has undergone since my last post.

Because I polished many features and added a couple of other new ones as well, I’ll only discuss a little bit about each of the most important ones. The first new thingies I implemented are the Cut/Copy/Paste actions on graphic items (polygons, placemarks, polylines) which allow an easier duplication, in case one wants to set a style to a placemark and then to use it for others and only change the description, for instance. They also increase consistency since they can be performed on all available graphic items. The second new feature I added is the possibility of drawing and customizing paths (polylines) which used to be a real hole in our Editing Mode in Marble. Now one could easily go to and export an .osm file and load it in Marble. The actions available on polylines are identical to those for polygons since, obviously, these paths are the same thing as polygons except they are not closed. Last, but maybe one of the most important changes is the introduction of the ‘Focus Item’ concept to our Editing Mode. This means that there is only one item at a time with which the user interacts. This approach is much more intuitive for them and also makes the code easier to understand (so developers benefit from this too). It also allowed to easily adjust (enable and disable) the available actions depending on the Focus Item. My work has also included fixing bugs and making some optimizations especially when interacting with polygons and paths since the data they store can become really huge as the number of nodes increases. I tried to cover in the following screencast all these new features.

I also tried through this screencast to give you a hint about how the Annotate Plugin feels like overall and what you can do so far using its available features. The plugin still needs a lot of effort to be put in until I’ll be completely satisfied with it, but until then, this is most of what I managed to do during this summer, Google’s SUMMER of code.

I can say without doubts that it has been a great summer during which I learnt a lot from some of the best programmers and community people I’ve ever met. I want to thank everyone who made it possible, but especially to: Google who came out with this program, KDE for their friendliness and the passionate people I had the chance to meet, Torsten Rahn and Dennis Nienhüser, my mentors, who were always up to help and guide us and who deeply influenced my way of thinking, my GSoC colleagues, Sanjiban and Abhinav for making me feel more competitive and last, but not least, all Marble developers for contributing to the development of such a great application.

My journey with Marble and KDE has just started.

Călin Cruceru


Randa Meetings 2014 – Impressions


Although a couple of days have passed since I returned from Randa, Switzerland, I had in mind long before to make a small blog post about my experience there.

For those who don’t know, the Randa Meetings are yearly events where KDE developers gather together to hack on their projects under the same roof and surrounded by the wonderful Swiss Alps.


This was my first time at Randa and I can say that it was the greatest week in this summer. I met a bunch of awesome folks who are not only great programmers but also wonderful people to spend the time with. I had a great time coding on Marble alongside my GSoC mentors, Torsten Rahn and Dennis Nienhüser, my GSoC colleague Sanjiban and other KDEdu guys. I also enjoyed talking to developers from other KDE departments which were present at Randa, such as KDE Books, KDE SDK, KDE Frameworks 5 Port, etc.


Other cool things? There were A LOT and I’m sure I will miss something, but I’ll mention some of them: the daily walks which gave us the opportunity to admire the amazing view, the table football, the internet connection (haha, oh, it’s fine, we use git 🙂 ), the food (oh, yeah!), the beer (FreeBeer is one of the greatest beers I have ever drunk) and, of course, the Swiss chocolate.



I want to thank very much to Mario Fux who organizes these meetings since 2009 and contributed a lot to my participation since I heard about this year’s meeting after the registrations had closed and he still offered to organize the accommodation for me. So, thanks once again Mario. I’d also want to thank everyone present at Randa this year for this great experience. This was my first participation in a KDE event but not the last one for sure :).

Best Regards,
Călin Cruceru

GSoC Project Progress – Visual Effects and Placemarks

Hello everyone!

I think it’s time to talk again about my progress with my Google Summer of Code project.

But first, since there always are people who read a blog post of mine for the first time, it is important to make a short introduction about the intent of my project. This is also a way of reminding the others about what I’m working on. The application to which I contribute is Marble, a virtual globe and a world atlas. What I’m specifically working on is an Annotate Plugin which deals with controlling and rendering on Earth’s surface a bunch of graphic items. These graphic items are either placemarks, image overlays or polygons. Also, I recently started working on adding polylines, a new graphic element, which will allow the users to draw paths, but this will be the subject of a further blog post, hopefully the next one.

So, what have I been working on since my last blog post? Well, there are two main things: improving user experience for the whole editing mode and adding customization option for placemarks.

The first one, regarding the user experience improvements, includes two new features: node highlighting and a small animation when merging nodes. My mentors and me decided that node highlighting is an important visual effect when editing polygons, since it would give the user a clue about the fact that clicking the nodes actually does something: marks them as selected if left-clicked and opens a RMB (right mouse button) menu if right-clicked. This has been also the purpose of managing cursor shape in certain situations. You can watch these effects in action in the screencast below (Watch in HD – much higher quality).

I will also add some screenshots for those who want a quicker impression of the features (Click on photos for higher resolution!).

Note node highlighting and cursor shape

Note node highlighting and cursor shape

As far as the second visual effect which improves user experience is concerned, the merging nodes animation, it was entirely my idea and what made me think of it was the not very intuitive way nodes merging was being performed before. I thought that we need something which shows explicitly what happens when merging two nodes. You can see this animation in the following screencast:

I think it is pretty nice, what do you think? 🙂

The next major feature I worked on is adding customization options for placemarks. This part of the annotate plugin was totally new to me, since I hadn’t made any changes to placemarks before. As you may recall, the first thing I started my work with on this plugin was adapting an old implementation of ground overlays editing mode and then I continued with polygons editing, but I haven’t dealt with the text annotations implementation. However, my experience with the other two graphic elements and the similarities between them led to a faster development. Watch the video which highlights the placemark customization flow right below.

I will also add some screenshots for those who want a quicker impression of the features:

Note unavailable fields in the dialog

Note unavailable fields in the dialog


As you can see in both the screencast and these two screenshots, the edit dialog for placemarks has a couple of fields which are unavailable at the moment (label scale, ion color/scale). This is because Marble is designed in a way so that the data (such as coordinates, name, description, label/icon scale, etc) is kept apart from the objects which deal with the rendering and these objects don’t have an implementation for the unavailable options I mentioned above. However, they will be implemented soon. Also, I’m planning to implement another way of managing icons in the near future.

I hope you all like the new way to mark and describe particular places as well as the enhanced visual effects. Stay tuned for more new features to come!

Călin Cruceru