[Marble-commits] KDE/kdeedu/marble/src/lib

Torsten Rahn tackat at kde.org
Mon Dec 27 01:07:59 CET 2010


SVN commit 1209496 by rahn:

- Fix a regression in MarbleMap::setMapThemeId which took the 
availability of texture layers for granted ... which is not the 
case for the plain map.



 M  +15 -2     MarbleMap.cpp  


--- trunk/KDE/kdeedu/marble/src/lib/MarbleMap.cpp #1209495:1209496
@@ -833,9 +833,13 @@
     d->m_viewParams.setMapThemeId( mapThemeId );
     GeoSceneDocument *mapTheme = d->m_viewParams.mapTheme();
 
+    // NOTE due to frequent regressions: 
+    // Do NOT take it for granted that there is any TEXTURE or VECTOR data AVAILABLE
+    // at this point. Some themes do NOT have either vector or texture data!
 
+    // Check whether there is a vector layer available:
+    if ( mapTheme->map()->hasVectorLayers() ) {
     // Set all the colors for the vector layers
-    if ( mapTheme->map()->hasVectorLayers() ) {
         d->m_veccomposer.setOceanColor( mapTheme->map()->backgroundColor() );
 
         // Just as with textures, this is a workaround for DGML2 to
@@ -870,8 +874,13 @@
         }
     }
 
+    // NOTE due to frequent regressions: 
+    // Do NOT take it for granted that there is any TEXTURE or VECTOR data AVAILABLE
+    // at this point.
+
+    // Check whether there is a texture layer available:
+    if ( mapTheme && mapTheme->map()->hasTextureLayers() ) {
     d->m_textureLayer.setMapTheme( mapTheme );
-    if ( mapTheme && mapTheme->map()->hasTextureLayers() ) {
         // If the tiles aren't already there, put up a progress dialog
         // while creating them.
 
@@ -911,6 +920,10 @@
         d->m_textureLayer.setupTextureMapper( d->m_viewParams.projection() );
     }
 
+    // NOTE due to frequent regressions: 
+    // Do NOT take it for granted that there is any TEXTURE or VECTOR data AVAILABLE
+    // at this point!
+    
     d->m_placemarkLayout.requestStyleReset();
 
     if ( mapTheme ) {


More information about the Marble-commits mailing list