[QGIS Commit] r9476 - trunk/qgis/src/core/renderer

svn_qgis at osgeo.org svn_qgis at osgeo.org
Tue Oct 14 04:51:11 EDT 2008


Author: timlinux
Date: 2008-10-14 04:51:11 -0400 (Tue, 14 Oct 2008)
New Revision: 9476

Modified:
   trunk/qgis/src/core/renderer/qgscontinuouscolorrenderer.cpp
   trunk/qgis/src/core/renderer/qgsgraduatedsymbolrenderer.cpp
   trunk/qgis/src/core/renderer/qgssinglesymbolrenderer.cpp
   trunk/qgis/src/core/renderer/qgsuniquevaluerenderer.cpp
Log:
Fix for #239 - retain outline color of selected polygons

Modified: trunk/qgis/src/core/renderer/qgscontinuouscolorrenderer.cpp
===================================================================
--- trunk/qgis/src/core/renderer/qgscontinuouscolorrenderer.cpp	2008-10-13 16:23:02 UTC (rev 9475)
+++ trunk/qgis/src/core/renderer/qgscontinuouscolorrenderer.cpp	2008-10-14 08:51:11 UTC (rev 9476)
@@ -155,7 +155,7 @@
       linePen.setWidthF( widthScale*mMinimumSymbol->pen().widthF() );
       p->setPen( linePen );
     }
-    else
+    else //polygon
     {
       p->setBrush( QColor( red, green, blue ) );
       if ( mDrawPolygonOutline )
@@ -166,15 +166,22 @@
         p->setPen( pen );
       }
       else
+      {
         p->setPen( Qt::NoPen );
+      }
     }
     if ( selected )
     {
-      QPen pen = mMinimumSymbol->pen();
-      pen.setColor( mSelectionColor );
+      //for polygons we dont use selection colour for outline
+      //otherwise adjacent features appear merged when selected
+      if ( mGeometryType != QGis::Polygon )
+      {
+        QPen pen = mMinimumSymbol->pen();
+        pen.setColor( mSelectionColor );
+        p->setPen( pen );
+      }
       QBrush brush = mMinimumSymbol->brush();
       brush.setColor( mSelectionColor );
-      p->setPen( pen );
       p->setBrush( brush );
     }
   }

Modified: trunk/qgis/src/core/renderer/qgsgraduatedsymbolrenderer.cpp
===================================================================
--- trunk/qgis/src/core/renderer/qgsgraduatedsymbolrenderer.cpp	2008-10-13 16:23:02 UTC (rev 9475)
+++ trunk/qgis/src/core/renderer/qgsgraduatedsymbolrenderer.cpp	2008-10-14 08:51:11 UTC (rev 9476)
@@ -153,9 +153,7 @@
     else
     {
       QPen pen = theSymbol->pen();
-      pen.setColor( mSelectionColor );
       pen.setWidthF( widthScale * pen.widthF() );
-      p->setPen( pen );
 
       if ( mGeometryType == QGis::Polygon )
       {
@@ -164,6 +162,11 @@
         brush.setColor( mSelectionColor );
         p->setBrush( brush );
       }
+      else //dont draw outlines in selection colour for polys otherwise they appear merged 
+      {
+        pen.setColor( mSelectionColor );
+      }
+      p->setPen( pen );
     }
   }
 }

Modified: trunk/qgis/src/core/renderer/qgssinglesymbolrenderer.cpp
===================================================================
--- trunk/qgis/src/core/renderer/qgssinglesymbolrenderer.cpp	2008-10-13 16:23:02 UTC (rev 9475)
+++ trunk/qgis/src/core/renderer/qgssinglesymbolrenderer.cpp	2008-10-14 08:51:11 UTC (rev 9476)
@@ -137,11 +137,6 @@
     {
       QPen pen = mSymbol->pen();
       pen.setWidthF( widthScale * pen.widthF() );
-      // We set pen color in case it is an area with no brush (transparent).
-      // Previously, this was only done for lines. Why?
-      pen.setColor( mSelectionColor );
-      p->setPen( pen );
-
       if ( mGeometryType == QGis::Polygon )
       {
         QBrush brush = mSymbol->brush();
@@ -149,6 +144,13 @@
         brush.setColor( mSelectionColor );
         p->setBrush( brush );
       }
+      else //for lines we draw in selection color
+      {
+        // We set pen color in case it is an area with no brush (transparent).
+        // Previously, this was only done for lines. Why?
+        pen.setColor( mSelectionColor );
+        p->setPen( pen );
+      }
     }
   }
 }

Modified: trunk/qgis/src/core/renderer/qgsuniquevaluerenderer.cpp
===================================================================
--- trunk/qgis/src/core/renderer/qgsuniquevaluerenderer.cpp	2008-10-13 16:23:02 UTC (rev 9475)
+++ trunk/qgis/src/core/renderer/qgsuniquevaluerenderer.cpp	2008-10-14 08:51:11 UTC (rev 9476)
@@ -162,8 +162,6 @@
     {
       QPen pen = symbol->pen();
       pen.setWidthF( widthScale * pen.widthF() );
-      pen.setColor( mSelectionColor );
-      p->setPen( pen );
       if ( mGeometryType == QGis::Polygon )
       {
         QBrush brush = symbol->brush();
@@ -171,6 +169,11 @@
         brush.setColor( mSelectionColor );
         p->setBrush( brush );
       }
+      else //dont draw outlines of polygons in selection colour otherwise they appear merged
+      {
+        pen.setColor( mSelectionColor );
+      }
+      p->setPen( pen );
     }
   }
 }



More information about the QGIS-commit mailing list