GSoC/GCI Archive
Google Code-in 2012 KDE

Marble: Disable 'Atmosphere' menu entry for bodies without atmosphere

completed by: Illya Kovalevskyy

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

Marble's atmosphere plugin renders an atmosphere for celestial bodies. For bodies that do not have an atmosphere (like the moon), the atmosphere plugin does not render one. There is also a menu entry "Atmosphere" that allows users to activate/deactivate the atmosphere plugin.

Your task is to enable or disable the menu entry according to the existence of an atmosphere for the current body. This avoids confusion if people activate the atmosphere plugin and nothing happens (since the current body may have no atmosphere to be rendered). The menu entry's state should be updated whenever a new celestial body is selected.

Hints: There already is a signal celestialBodyChanged(QString) that will be useful. The planet class provides information for the current body and whether it has an atmosphere or not. The menu entry is set up in QtMainWindow.cpp.