[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