[QGIS Commit] r14377 - in trunk/qgis/src: app app/legend gui

svn_qgis at osgeo.org svn_qgis at osgeo.org
Wed Oct 13 16:53:33 EDT 2010


Author: jef
Date: 2010-10-13 13:53:33 -0700 (Wed, 13 Oct 2010)
New Revision: 14377

Modified:
   trunk/qgis/src/app/legend/qgslegend.cpp
   trunk/qgis/src/app/qgisapp.cpp
   trunk/qgis/src/gui/qgsmapcanvas.cpp
Log:
fix #3109

Modified: trunk/qgis/src/app/legend/qgslegend.cpp
===================================================================
--- trunk/qgis/src/app/legend/qgslegend.cpp	2010-10-13 20:52:05 UTC (rev 14376)
+++ trunk/qgis/src/app/legend/qgslegend.cpp	2010-10-13 20:53:33 UTC (rev 14377)
@@ -155,7 +155,8 @@
 
   // Turn off rendering to improve speed.
   bool renderFlagState = mMapCanvas->renderFlag();
-  mMapCanvas->setRenderFlag( false );
+  if ( renderFlagState )
+    mMapCanvas->setRenderFlag( false );
 
   for ( QTreeWidgetItem* theItem = firstItem(); theItem; theItem = nextItem( theItem ) )
   {
@@ -168,7 +169,8 @@
   }
 
   // Turn on rendering (if it was on previously)
-  mMapCanvas->setRenderFlag( renderFlagState );
+  if ( renderFlagState )
+    mMapCanvas->setRenderFlag( true );
 
   QgsProject::instance()->dirty( true );
 }
@@ -1483,8 +1485,6 @@
     return;
   }
 
-  bool renderFlagState = mMapCanvas->renderFlag();
-
   //if the text of a QgsLegendLayer has changed, change the display names of all its maplayers
   // TODO: is this still necessary?
   QgsLegendLayer* theLegendLayer = dynamic_cast<QgsLegendLayer *>( item ); //item is a legend layer
@@ -1497,13 +1497,16 @@
   if ( item->data( 0, Qt::UserRole ).toInt() == item->checkState( 0 ) )
     return;
 
+  bool renderFlagState = mMapCanvas->renderFlag();
+  if ( renderFlagState )
+    mMapCanvas->setRenderFlag( false );
+
   QgsLegendGroup* lg = dynamic_cast<QgsLegendGroup *>( item ); //item is a legend group
   if ( lg )
   {
     //set all the child layer files to the new check state
     std::list<QgsLegendLayer*> subfiles = lg->legendLayers();
-    bool renderFlagState = mMapCanvas->renderFlag();
-    mMapCanvas->setRenderFlag( false );
+
     for ( std::list<QgsLegendLayer*>::iterator iter = subfiles.begin(); iter != subfiles.end(); ++iter )
     {
 #ifdef QGISDEBUG
@@ -1530,10 +1533,6 @@
       }
     }
 
-    // If it was on, turn it back on, otherwise leave it
-    // off, as turning it on causes a refresh.
-    if ( renderFlagState )
-      mMapCanvas->setRenderFlag( true );
     item->setData( 0, Qt::UserRole, item->checkState( 0 ) );
   }
 
@@ -1554,19 +1553,17 @@
       static_cast<QgsLegendGroup*>( ll->parent() )->updateCheckState();
       ll->parent()->setData( 0, Qt::UserRole, ll->parent()->checkState( 0 ) );
     }
-    // If it was on, turn it back on, otherwise leave it
-    // off, as turning it on causes a refresh.
-    if ( renderFlagState )
-    {
-      mMapCanvas->setRenderFlag( true );
-    }
-    mMapCanvas->freeze( false );
     //update check state of the legend group
     item->setData( 0, Qt::UserRole, item->checkState( 0 ) );
   }
 
   // update layer set
   updateMapCanvasLayerSet();
+
+  // If it was on, turn it back on, otherwise leave it
+  // off, as turning it on causes a refresh.
+  if ( renderFlagState )
+    mMapCanvas->setRenderFlag( true );
 }
 
 void QgsLegend::openEditor()
@@ -1770,7 +1767,8 @@
 {
   // Turn off rendering to improve speed.
   bool renderFlagState = mMapCanvas->renderFlag();
-  mMapCanvas->setRenderFlag( false );
+  if ( renderFlagState )
+    mMapCanvas->setRenderFlag( false );
 
   foreach( QTreeWidgetItem *item, selectedItems() )
   {
@@ -1790,5 +1788,6 @@
   }
 
   // Turn on rendering (if it was on previously)
-  mMapCanvas->setRenderFlag( renderFlagState );
+  if ( renderFlagState )
+    mMapCanvas->setRenderFlag( true );
 }

Modified: trunk/qgis/src/app/qgisapp.cpp
===================================================================
--- trunk/qgis/src/app/qgisapp.cpp	2010-10-13 20:52:05 UTC (rev 14376)
+++ trunk/qgis/src/app/qgisapp.cpp	2010-10-13 20:53:33 UTC (rev 14377)
@@ -3544,7 +3544,7 @@
 
 void QgisApp::saveMapAsImage()
 {
-  QPair< QString,QString> myFileNameAndFilter = QgisGui::getSaveAsImageName( this, tr( "Choose a file name to save the map image as" ) );
+  QPair< QString, QString> myFileNameAndFilter = QgisGui::getSaveAsImageName( this, tr( "Choose a file name to save the map image as" ) );
   if ( myFileNameAndFilter.first != "" )
   {
     //save the mapview to the selected file
@@ -3606,10 +3606,12 @@
       // would otherwise cause two re-renders of the map, which can take a
       // long time.
       bool renderFlag = mapCanvas()->renderFlag();
-      mapCanvas()->setRenderFlag( false );
+      if ( renderFlag )
+        mapCanvas()->setRenderFlag( false );
       showNormal();
       showMaximized();
-      mapCanvas()->setRenderFlag( renderFlag );
+      if ( renderFlag )
+        mapCanvas()->setRenderFlag( true );
       mPrevScreenModeMaximized = false;
     }
     else
@@ -4413,7 +4415,8 @@
 
   // Turn off rendering to improve speed.
   bool renderFlagState = mMapCanvas->renderFlag();
-  mMapCanvas->setRenderFlag( false );
+  if ( renderFlagState )
+    mMapCanvas->setRenderFlag( false );
 
   QMap<QString, QgsMapLayer*> layers = QgsMapLayerRegistry::instance()->mapLayers();
   for ( QMap<QString, QgsMapLayer*>::iterator it = layers.begin(); it != layers.end(); it++ )
@@ -4426,7 +4429,8 @@
   }
 
   // Turn on rendering (if it was on previously)
-  mMapCanvas->setRenderFlag( renderFlagState );
+  if ( renderFlagState )
+    mMapCanvas->setRenderFlag( true );
 }
 
 void QgisApp::addVertex()

Modified: trunk/qgis/src/gui/qgsmapcanvas.cpp
===================================================================
--- trunk/qgis/src/gui/qgsmapcanvas.cpp	2010-10-13 20:52:05 UTC (rev 14376)
+++ trunk/qgis/src/gui/qgsmapcanvas.cpp	2010-10-13 20:53:33 UTC (rev 14377)
@@ -313,7 +313,7 @@
     refresh();
   }
 
-} // addLayer
+} // setLayerSet
 
 void QgsMapCanvas::enableOverviewMode( QgsMapOverviewCanvas* overview )
 {



More information about the QGIS-commit mailing list