[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdeedu/marble/src/lib
From:       Torsten Rahn <tackat () kde ! org>
Date:       2010-12-27 0:07:59
Message-ID: 20101227000759.197A7AC8AD () svn ! kde ! org
[Download RAW message or body]

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 ) {
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic