Revision aa81993...
Go back to digest for 17th June 2012Bug Fixes in Educational
fix crash when trying to zoom to discrete zoom level for texture-less maps after having used a texture-based map
After having used e.g. OpenStreetMap, the TextureLayer isn't cleared completely. As a result, it will return seemingly valid values in some cases, but will crash in others. In this case, the TextureLayer used to return a valid zoom level such that MarbleMap was fooled to ask it for the next "sharp" radius, leading to the crash.
A more reliable way is to check whether the TextureLayer participates in rendering. If not, it shouldn't be asked for the next "sharp" radius.
This patch is a quick fix wich comes with unit tests to prevent future regressions. In the future, the TextureLayer should be properly cleared or even recreated/deleted whenever the map theme changes.
File Changes
- tests/MarbleMapTest.cpp
- src/lib/LayerManager.cpp
- src/lib/LayerManager.h
- src/lib/MarbleMap.cpp