[QGIS Commit] r9965 - in branches/advanced_printing_branch2/src/core: composer renderer

svn_qgis at osgeo.org svn_qgis at osgeo.org
Tue Jan 13 04:18:06 EST 2009


Author: mhugent
Date: 2009-01-13 04:18:06 -0500 (Tue, 13 Jan 2009)
New Revision: 9965

Modified:
   branches/advanced_printing_branch2/src/core/composer/qgscomposerlegend.cpp
   branches/advanced_printing_branch2/src/core/renderer/qgsrenderer.cpp
   branches/advanced_printing_branch2/src/core/renderer/qgsrenderer.h
Log:
Scale composer legend patterns with the same factor as in map

Modified: branches/advanced_printing_branch2/src/core/composer/qgscomposerlegend.cpp
===================================================================
--- branches/advanced_printing_branch2/src/core/composer/qgscomposerlegend.cpp	2009-01-12 15:27:24 UTC (rev 9964)
+++ branches/advanced_printing_branch2/src/core/composer/qgscomposerlegend.cpp	2009-01-13 09:18:06 UTC (rev 9965)
@@ -19,6 +19,7 @@
 #include "qgsmaplayer.h"
 #include "qgsmaplayerregistry.h"
 #include "qgsmaprenderer.h"
+#include "qgsrenderer.h" //for brush scaling
 #include "qgssymbol.h"
 #include <QDomDocument>
 #include <QDomElement>
@@ -331,7 +332,15 @@
 
   if ( p )
   {
-    p->setBrush( s->brush() );
+    //scale brush
+    QBrush symbolBrush = s->brush();
+    QPaintDevice* paintDevice = p->device();
+    if ( paintDevice )
+    {
+      double rasterScaleFactor = ( paintDevice->logicalDpiX() + paintDevice->logicalDpiY() ) / 2.0 / 25.4;
+      QgsRenderer::scaleBrush(symbolBrush, rasterScaleFactor);
+    }
+    p->setBrush( symbolBrush );
     p->setPen( s->pen() );
     p->drawRect( QRectF( currentXPosition, currentYCoord, mSymbolWidth, mSymbolHeight ) );
   }

Modified: branches/advanced_printing_branch2/src/core/renderer/qgsrenderer.cpp
===================================================================
--- branches/advanced_printing_branch2/src/core/renderer/qgsrenderer.cpp	2009-01-12 15:27:24 UTC (rev 9964)
+++ branches/advanced_printing_branch2/src/core/renderer/qgsrenderer.cpp	2009-01-13 09:18:06 UTC (rev 9965)
@@ -51,7 +51,7 @@
   }
 }
 
-void QgsRenderer::scaleBrush( QBrush& b, double rasterScaleFactor ) const
+void QgsRenderer::scaleBrush( QBrush& b, double rasterScaleFactor )
 {
   if ( rasterScaleFactor != 1.0 )
   {

Modified: branches/advanced_printing_branch2/src/core/renderer/qgsrenderer.h
===================================================================
--- branches/advanced_printing_branch2/src/core/renderer/qgsrenderer.h	2009-01-12 15:27:24 UTC (rev 9964)
+++ branches/advanced_printing_branch2/src/core/renderer/qgsrenderer.h	2009-01-13 09:18:06 UTC (rev 9965)
@@ -88,6 +88,9 @@
      This is a hint for QgsVectorLayer to not use the transparency setting on layer level in this cases*/
     virtual bool usesTransparency() const {return false;}
 
+    /**Scales a brush to a given raster scale factor (e.g. for printing)*/
+    static void scaleBrush( QBrush& b, double rasterScaleFactor );
+
   protected:
     /**Color to draw selected features - static so we can change it in proj props and automatically
      all renderers are updated*/
@@ -95,9 +98,6 @@
 
     /**Layer type*/
     QGis::GeometryType mGeometryType;
-
-    /**Scales a brush to a given raster scale factor (e.g. for printing)*/
-    void scaleBrush( QBrush& b, double rasterScaleFactor ) const;
 };
 
 #endif // QGSRENDERER_H



More information about the QGIS-commit mailing list