[QGIS Commit] r15249 - trunk/qgis/src/gui

svn_qgis at osgeo.org svn_qgis at osgeo.org
Wed Feb 23 15:45:46 EST 2011


Author: jef
Date: 2011-02-23 12:45:46 -0800 (Wed, 23 Feb 2011)
New Revision: 15249

Modified:
   trunk/qgis/src/gui/qgsmapcanvas.cpp
   trunk/qgis/src/gui/qgsmapcanvas.h
Log:
fix canvas refresh

Modified: trunk/qgis/src/gui/qgsmapcanvas.cpp
===================================================================
--- trunk/qgis/src/gui/qgsmapcanvas.cpp	2011-02-23 19:44:21 UTC (rev 15248)
+++ trunk/qgis/src/gui/qgsmapcanvas.cpp	2011-02-23 20:45:46 UTC (rev 15249)
@@ -78,8 +78,10 @@
 
 
 QgsMapCanvas::QgsMapCanvas( QWidget * parent, const char *name )
-    : QGraphicsView( parent ),
-    mCanvasProperties( new CanvasProperties )
+    : QGraphicsView( parent )
+    , mCanvasProperties( new CanvasProperties )
+    , mPainting( false )
+    , mLastSize( QSize() )
 {
   mScene = new QGraphicsScene();
   setScene( mScene );
@@ -943,13 +945,10 @@
 {
   if ( mNewSize.isValid() )
   {
-    static bool isAlreadyIn = false;
-    static QSize lastSize = QSize();
-
-    lastSize = mNewSize;
+    mLastSize = mNewSize;
     mNewSize = QSize();
 
-    if ( isAlreadyIn || mDrawing )
+    if ( mPainting || mDrawing )
     {
       //cancel current render progress
       if ( mMapRenderer )
@@ -962,13 +961,14 @@
       }
       return;
     }
-    isAlreadyIn = true;
 
-    while ( lastSize.isValid() )
+    mPainting = true;
+
+    while ( mLastSize.isValid() )
     {
-      int width = lastSize.width();
-      int height = lastSize.height();
-      lastSize = QSize();
+      int width = mLastSize.width();
+      int height = mLastSize.height();
+      mLastSize = QSize();
 
       //set map size before scene size helps keep scene indexes updated properly
       // this was the cause of rubberband artifacts
@@ -984,7 +984,8 @@
 
       emit extentsChanged();
     }
-    isAlreadyIn = false;
+
+    mPainting = false;
   }
 
   QGraphicsView::paintEvent( e );

Modified: trunk/qgis/src/gui/qgsmapcanvas.h
===================================================================
--- trunk/qgis/src/gui/qgsmapcanvas.h	2011-02-23 19:44:21 UTC (rev 15248)
+++ trunk/qgis/src/gui/qgsmapcanvas.h	2011-02-23 20:45:46 UTC (rev 15249)
@@ -77,7 +77,6 @@
     const QgsMapLayer* layer() const { return mLayer; }
 
   private:
-
     QgsMapLayer* mLayer;
 
     /** Flag whether layer is visible */
@@ -461,6 +460,11 @@
     //! resize canvas size
     QSize mNewSize;
 
+    //! currently in paint event
+    bool mPainting;
+
+    //! size of last resize event
+    QSize mLastSize;
 }; // class QgsMapCanvas
 
 



More information about the QGIS-commit mailing list