patch2_for_1016.txt

fix root cause of white box problem - Steven Mizuno, 2009-01-10 05:55 PM

Download (1.23 KB)

 
1
Index: src/gui/qgsmapcanvasmap.cpp
2
===================================================================
3
--- src/gui/qgsmapcanvasmap.cpp	(revision 9954)
4
+++ src/gui/qgsmapcanvasmap.cpp	(working copy)
5
@@ -48,6 +48,8 @@
6
 
7
 void QgsMapCanvasMap::resize( QSize size )
8
 {
9
+  prepareGeometryChange();	// to keep QGraphicsScene indexes up to date on size change
10
+
11
   mPixmap = QPixmap( size );
12
   mImage = QImage( size, QImage::Format_RGB32 );	// temporary image - build it here so it is available when switching from QPixmap to QImage rendering
13
   mCanvas->mapRenderer()->setOutputSize( size, mPixmap.logicalDpiX() );
14
Index: src/gui/qgsmapcanvas.cpp
15
===================================================================
16
--- src/gui/qgsmapcanvas.cpp	(revision 9954)
17
+++ src/gui/qgsmapcanvas.cpp	(working copy)
18
@@ -811,8 +811,8 @@
19
     int height = lastSize.height();
20
     lastSize = QSize( -1, -1 );
21
 
22
-    //set map size before scene size seems to solve the white box problem
23
-    //when moving rubber bands
24
+    //set map size before scene size helps keep scene indexes updated properly
25
+    // this was the cause of rubberband artifacts
26
     mMap->resize( QSize( width, height ) );
27
     mScene->setSceneRect( QRectF( 0, 0, width, height ) );
28