[QGIS Commit] r13332 - in trunk/qgis: python/gui src/gui
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Tue Apr 20 07:51:22 EDT 2010
Author: mhugent
Date: 2010-04-20 07:51:20 -0400 (Tue, 20 Apr 2010)
New Revision: 13332
Modified:
trunk/qgis/python/gui/qgsmapcanvasitem.sip
trunk/qgis/src/gui/qgsannotationitem.cpp
trunk/qgis/src/gui/qgsannotationitem.h
trunk/qgis/src/gui/qgsmapcanvasitem.cpp
trunk/qgis/src/gui/qgsmapcanvasitem.h
Log:
Move setRenderContext() method to mapcanvas item class
Modified: trunk/qgis/python/gui/qgsmapcanvasitem.sip
===================================================================
--- trunk/qgis/python/gui/qgsmapcanvasitem.sip 2010-04-20 09:07:51 UTC (rev 13331)
+++ trunk/qgis/python/gui/qgsmapcanvasitem.sip 2010-04-20 11:51:20 UTC (rev 13332)
@@ -23,6 +23,12 @@
//! schedules map canvas for repaint
void updateCanvas();
+ /**Sets render context parameters
+ @param p painter for rendering
+ @param context out: configured context
+ @return true in case of success
+ @note added in version 1.5*/
+ bool setRenderContextVariables( QPainter* p, QgsRenderContext& context ) const;
public:
Modified: trunk/qgis/src/gui/qgsannotationitem.cpp
===================================================================
--- trunk/qgis/src/gui/qgsannotationitem.cpp 2010-04-20 09:07:51 UTC (rev 13331)
+++ trunk/qgis/src/gui/qgsannotationitem.cpp 2010-04-20 11:51:20 UTC (rev 13332)
@@ -17,7 +17,6 @@
#include "qgsannotationitem.h"
#include "qgsmapcanvas.h"
-#include "qgsmaprenderer.h"
#include "qgsrendercontext.h"
#include "qgssymbollayerv2utils.h"
#include "qgssymbolv2.h"
@@ -248,44 +247,6 @@
p->drawRect( QRectF( mBoundingRect.left(), mBoundingRect.bottom() - handlerSize, handlerSize, handlerSize ) );
}
-bool QgsAnnotationItem::setRenderContextVariables( QPainter* p, QgsRenderContext& context ) const
-{
- if ( !mMapCanvas || !p )
- {
- return false;
- }
- QgsMapRenderer* mapRenderer = mMapCanvas->mapRenderer();
- if ( !mapRenderer )
- {
- return false;
- }
-
- context.setPainter( p );
- context.setRendererScale( mMapCanvas->scale() );
-
- int dpi = mapRenderer->outputDpi();
- int painterDpi = p->device()->logicalDpiX();
- double scaleFactor = 1.0;
- double rasterScaleFactor = 1.0;
-
- //little trick to find out if painting origines from composer or main map canvas
- if ( data( 0 ).toString() == "composer" )
- {
- rasterScaleFactor = painterDpi / 25.4;
- scaleFactor = dpi / 25.4;
- }
- else
- {
- if ( mapRenderer->outputUnits() == QgsMapRenderer::Millimeters )
- {
- scaleFactor = dpi / 25.4;
- }
- }
- context.setScaleFactor( scaleFactor );
- context.setRasterScaleFactor( rasterScaleFactor );
- return true;
-}
-
QLineF QgsAnnotationItem::segment( int index )
{
switch ( index )
Modified: trunk/qgis/src/gui/qgsannotationitem.h
===================================================================
--- trunk/qgis/src/gui/qgsannotationitem.h 2010-04-20 09:07:51 UTC (rev 13331)
+++ trunk/qgis/src/gui/qgsannotationitem.h 2010-04-20 11:51:20 UTC (rev 13332)
@@ -23,7 +23,6 @@
class QDomDocument;
class QDomElement;
class QDialog;
-class QgsRenderContext;
class QgsVectorLayer;
class QgsMarkerSymbolV2;
@@ -129,11 +128,6 @@
void drawFrame( QPainter* p );
void drawMarkerSymbol( QPainter* p );
void drawSelectionBoxes( QPainter* p );
- /**Sets render context parameters
- @param p painter for rendering
- @param context out: configured context
- @return true in case of success*/
- bool setRenderContextVariables( QPainter* p, QgsRenderContext& context ) const;
/**Returns frame width in painter units*/
//double scaledFrameWidth( QPainter* p) const;
/**Gets the frame line (0 is the top line, 1 right, 2 bottom, 3 left)*/
Modified: trunk/qgis/src/gui/qgsmapcanvasitem.cpp
===================================================================
--- trunk/qgis/src/gui/qgsmapcanvasitem.cpp 2010-04-20 09:07:51 UTC (rev 13331)
+++ trunk/qgis/src/gui/qgsmapcanvasitem.cpp 2010-04-20 11:51:20 UTC (rev 13332)
@@ -17,7 +17,9 @@
#include "qgsmapcanvasitem.h"
#include "qgsmapcanvas.h"
+#include "qgsmaprenderer.h"
#include "qgsmaptopixel.h"
+#include "qgsrendercontext.h"
#include <QGraphicsScene>
#include <QRect>
#include <QPen>
@@ -101,6 +103,44 @@
//mMapCanvas->scene()->update(); //Contents();
}
+bool QgsMapCanvasItem::setRenderContextVariables( QPainter* p, QgsRenderContext& context ) const
+{
+ if ( !mMapCanvas || !p )
+ {
+ return false;
+ }
+ QgsMapRenderer* mapRenderer = mMapCanvas->mapRenderer();
+ if ( !mapRenderer )
+ {
+ return false;
+ }
+
+ context.setPainter( p );
+ context.setRendererScale( mMapCanvas->scale() );
+
+ int dpi = mapRenderer->outputDpi();
+ int painterDpi = p->device()->logicalDpiX();
+ double scaleFactor = 1.0;
+ double rasterScaleFactor = 1.0;
+
+ //little trick to find out if painting origines from composer or main map canvas
+ if ( data( 0 ).toString() == "composer" )
+ {
+ rasterScaleFactor = painterDpi / 25.4;
+ scaleFactor = dpi / 25.4;
+ }
+ else
+ {
+ if ( mapRenderer->outputUnits() == QgsMapRenderer::Millimeters )
+ {
+ scaleFactor = dpi / 25.4;
+ }
+ }
+ context.setScaleFactor( scaleFactor );
+ context.setRasterScaleFactor( rasterScaleFactor );
+ return true;
+}
+
void QgsMapCanvasItem::updatePosition()
{
// default implementation: recalculate position of the item
Modified: trunk/qgis/src/gui/qgsmapcanvasitem.h
===================================================================
--- trunk/qgis/src/gui/qgsmapcanvasitem.h 2010-04-20 09:07:51 UTC (rev 13331)
+++ trunk/qgis/src/gui/qgsmapcanvasitem.h 2010-04-20 11:51:20 UTC (rev 13332)
@@ -21,6 +21,7 @@
#include "qgsrectangle.h"
class QgsMapCanvas;
+class QgsRenderContext;
class QPainter;
/** \ingroup gui
@@ -47,7 +48,14 @@
//! schedules map canvas for repaint
void updateCanvas();
+ /**Sets render context parameters
+ @param p painter for rendering
+ @param context out: configured context
+ @return true in case of success
+ @note added in version 1.5*/
+ bool setRenderContextVariables( QPainter* p, QgsRenderContext& context ) const;
+
public:
//! called on changed extent or resize event to update position of the item
More information about the QGIS-commit
mailing list