GSoC/GCI Archive
Google Code-in 2012 KDE

Marble: Save the celestial body with bookmarks

completed by: Illya Kovalevskyy

mentors: Torsten Rahn, René Küttner, Dennis Nienhüser

Marble allows to create bookmarks that are shown on the map. Currently a bookmark, once created, is shown on all planets. That makes little sense, so the celestial body (planet) should be stored together with the bookmark to allow filtering it in rendering later.

Have a look at EditBookmarkDialog.cpp which stores this information already:

bookmark.extendedData().addValue(GeoDataData("isBookmark",true));
 
Extend it: Add a similar value with the key "celestialBody" and the planet id as the value. Only write the value if the planet id is not "earth". We'll use that as the default value (makes backward compatibility easier).
 
Choose a planet different to earth and create a bookmark on it. Check that ~/.local/share/marble/bookmarks/bookmarks.kml stores the celestialBody correctly. Check that the information is available in BookmarkManager.cpp when opening the bookmarks file.