[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