QgsComposerMap Class Reference
[MapComposer]

#include <qgscomposermap.h>

Inheritance diagram for QgsComposerMap:

Inheritance graph
[legend]
Collaboration diagram for QgsComposerMap:

Collaboration graph
[legend]
List of all members.

Detailed Description

Object representing map window.

Definition at line 39 of file qgscomposermap.h.

Public Types

enum  PreviewMode { Cache = 0, Render, Rectangle }
 Preview style. More...

Public Slots

void mapCanvasChanged ()

Signals

void extentChanged ()
 Is emitted when width/height is changed as a result of user interaction.

Public Member Functions

 QgsComposerMap (QgsComposition *composition, int x, int y, int width, int height)
 Constructor.
 QgsComposerMap (QgsComposition *composition)
 Constructor.
 ~QgsComposerMap ()
void init (void)
 Initialise GUI and other settings, shared by constructors.
void draw (QPainter *painter, const QgsRectangle &extent, const QSize &size, int dpi)
 Draw to paint device.
void paint (QPainter *painter, const QStyleOptionGraphicsItem *itemStyle, QWidget *pWidget)
 Reimplementation of QCanvasItem::paint - draw on canvas.
void recalculate (void)
 Recalculate rectangle/extent/scale according to current rule.
void cache (void)
 Create cache image.
int id () const
 Get identification number.
bool isDrawing () const
 True if a draw is already in progress.
void resize (double dx, double dy)
 resizes an item in x- and y direction (canvas coordinates)
void moveContent (double dx, double dy)
 Move content of map.
void zoomContent (int delta, double x, double y)
 Zoom content of map.
void setSceneRect (const QRectF &rectangle)
 Sets new scene rectangle bounds and recalculates hight and extent.
double scale (void) const
 Scale.
void setNewScale (double scaleDenominator)
 Sets new scale and changes only mExtent.
void setNewExtent (const QgsRectangle &extent)
 Sets new Extent and changes width, height (and implicitely also scale).
PreviewMode previewMode ()
void setPreviewMode (PreviewMode m)
void setCacheUpdated (bool u=false)
QgsRectangle extent () const
const QgsMapRenderermapRenderer () const
void setOffset (double xOffset, double yOffset)
 Sets offset values to shift image (useful for live updates when moving item content).
bool containsWMSLayer () const
 True if composer map renders a WMS layer.
bool writeXML (QDomElement &elem, QDomDocument &doc) const
 stores state in Dom node
bool readXML (const QDomElement &itemElem, const QDomDocument &doc)
 sets state from Dom document

Private Member Functions

void connectUpdateSlot ()
 Establishes signal/slot connection for update in case of layer change.
double horizontalViewScaleFactor () const
 Returns the zoom factor of the graphics view.

Private Attributes

QgsMapRenderermMapRenderer
int mId
 Unique identifier.
QgsRectangle mExtent
QPixmap mCachePixmap
bool mCacheUpdated
PreviewMode mPreviewMode
 Preview style.
int mNumCachedLayers
 Number of layers when cache was created.
bool mDrawing
 set to true if in state of drawing.
double mLastScaleFactorX
 Store last scale factor to avoid unnecessary repaints in case preview mode is 'Render'.
QgsRectangle mCachedMapExtent
 Store the last map extent to decide if cache needs to be updatet.
double mXOffset
 Offset in x direction for showing map cache image.
double mYOffset
 Offset in y direction for showing map cache image.

Static Private Attributes

static int mCurrentComposerId
 For the generation of new unique ids.


Member Enumeration Documentation

enum QgsComposerMap::PreviewMode

Preview style.

Enumerator:
Cache 
Render 
Rectangle 

Definition at line 51 of file qgscomposermap.h.


Constructor & Destructor Documentation

QgsComposerMap::QgsComposerMap ( QgsComposition composition,
int  x,
int  y,
int  width,
int  height 
)

Constructor.

Definition at line 45 of file qgscomposermap.cpp.

References QgsComposerItem::composition(), connectUpdateSlot(), QgsMapRenderer::extent(), QgsComposition::mapRenderer(), mCacheUpdated, QgsComposerItem::mComposition, mCurrentComposerId, mDrawing, mExtent, mId, mMapRenderer, mXOffset, mYOffset, and setSceneRect().

QgsComposerMap::QgsComposerMap ( QgsComposition composition  ) 

Constructor.

Settings are read from project.

Definition at line 71 of file qgscomposermap.cpp.

References QgsComposerItem::composition(), connectUpdateSlot(), QgsComposition::mapRenderer(), QgsComposerItem::mComposition, mCurrentComposerId, mId, mMapRenderer, mXOffset, and mYOffset.

QgsComposerMap::~QgsComposerMap (  ) 

Definition at line 87 of file qgscomposermap.cpp.


Member Function Documentation

void QgsComposerMap::init ( void   ) 

Initialise GUI and other settings, shared by constructors.

void QgsComposerMap::draw ( QPainter *  painter,
const QgsRectangle extent,
const QSize &  size,
int  dpi 
)

Draw to paint device.

Parameters:
extent map extent
size size in scene coordinates
dpi scene dpi

Definition at line 93 of file qgscomposermap.cpp.

References QgsMapRenderer::destinationSrs(), extent(), QgsMapRenderer::hasCrsTransformEnabled(), QgsMapRenderer::layerSet(), mDrawing, mMapRenderer, QgsMapRenderer::render(), QgsMapRenderer::rendererContext(), scale(), QgsMapRenderer::scale(), QgsMapRenderer::setDestinationSrs(), QgsRenderContext::setDrawEditingInformation(), QgsMapRenderer::setExtent(), QgsMapRenderer::setLayerSet(), QgsMapRenderer::setOutputSize(), QgsMapRenderer::setProjectionsEnabled(), QgsRenderContext::setRenderingStopped(), and QgsMapRenderer::setScale().

Referenced by cache(), and paint().

void QgsComposerMap::paint ( QPainter *  painter,
const QStyleOptionGraphicsItem *  itemStyle,
QWidget *  pWidget 
)

Reimplementation of QCanvasItem::paint - draw on canvas.

Definition at line 170 of file qgscomposermap.cpp.

References draw(), QgsComposerItem::drawBackground(), QgsComposerItem::drawFrame(), QgsComposerItem::drawSelectionBoxes(), horizontalViewScaleFactor(), mCachePixmap, QgsComposerItem::mComposition, mExtent, mLastScaleFactorX, mPreviewMode, mXOffset, mYOffset, QgsComposition::plotStyle(), QgsComposition::Postscript, QgsComposition::Preview, QgsComposition::Print, Rectangle, and scale().

void QgsComposerMap::recalculate ( void   ) 

Recalculate rectangle/extent/scale according to current rule.

void QgsComposerMap::cache ( void   ) 

Create cache image.

Definition at line 135 of file qgscomposermap.cpp.

References draw(), horizontalViewScaleFactor(), mCachePixmap, mCacheUpdated, mExtent, mPreviewMode, Rectangle, QgsRectangle::width(), QgsRectangle::xMinimum(), and QgsRectangle::yMinimum().

Referenced by mapCanvasChanged(), moveContent(), readXML(), setNewScale(), setSceneRect(), and zoomContent().

int QgsComposerMap::id (  )  const [inline]

Get identification number.

Definition at line 77 of file qgscomposermap.h.

Referenced by QgsComposerScaleBar::writeXML().

bool QgsComposerMap::isDrawing (  )  const [inline]

True if a draw is already in progress.

Definition at line 80 of file qgscomposermap.h.

void QgsComposerMap::resize ( double  dx,
double  dy 
)

resizes an item in x- and y direction (canvas coordinates)

Definition at line 254 of file qgscomposermap.cpp.

References setSceneRect().

void QgsComposerMap::moveContent ( double  dx,
double  dy 
) [virtual]

Move content of map.

Parameters:
dx move in x-direction (item and canvas coordinates)
dy move in y-direction (item and canvas coordinates)

Reimplemented from QgsComposerItem.

Definition at line 262 of file qgscomposermap.cpp.

References cache(), extentChanged(), QgsRectangle::height(), mDrawing, mExtent, QgsRectangle::setXMaximum(), QgsRectangle::setXMinimum(), QgsRectangle::setYMaximum(), QgsRectangle::setYMinimum(), QgsRectangle::width(), QgsRectangle::xMaximum(), QgsRectangle::xMinimum(), QgsRectangle::yMaximum(), and QgsRectangle::yMinimum().

void QgsComposerMap::zoomContent ( int  delta,
double  x,
double  y 
) [virtual]

Zoom content of map.

Parameters:
delta value from wheel event that describes magnitude and direction (positive /negative number)
x x-coordinate of mouse position in item coordinates
y y-coordinate of mouse position in item coordinates

Reimplemented from QgsComposerItem.

Definition at line 283 of file qgscomposermap.cpp.

References cache(), extentChanged(), mExtent, QgsRectangle::setXMaximum(), QgsRectangle::setXMinimum(), QgsRectangle::setYMaximum(), QgsRectangle::setYMinimum(), QgsRectangle::xMaximum(), QgsRectangle::xMinimum(), QgsRectangle::yMaximum(), and QgsRectangle::yMinimum().

void QgsComposerMap::setSceneRect ( const QRectF &  rectangle  )  [virtual]

Sets new scene rectangle bounds and recalculates hight and extent.

Reimplemented from QgsComposerItem.

Definition at line 345 of file qgscomposermap.cpp.

References cache(), extentChanged(), mCacheUpdated, mExtent, QgsComposerItem::setSceneRect(), QgsRectangle::width(), QgsRectangle::xMaximum(), QgsRectangle::xMinimum(), and QgsRectangle::yMinimum().

Referenced by QgsComposerMap(), resize(), and setNewExtent().

double QgsComposerMap::scale ( void   )  const

Scale.

Definition at line 246 of file qgscomposermap.cpp.

References QgsScaleCalculator::calculate(), QgsMapRenderer::mapUnits(), mExtent, mMapRenderer, QgsScaleCalculator::setDpi(), and QgsScaleCalculator::setMapUnits().

Referenced by draw(), paint(), QgsNumericScaleBarStyle::scaleText(), and setNewScale().

void QgsComposerMap::setNewScale ( double  scaleDenominator  ) 

Sets new scale and changes only mExtent.

Definition at line 378 of file qgscomposermap.cpp.

References cache(), extentChanged(), mCacheUpdated, mExtent, scale(), QgsRectangle::xMaximum(), QgsRectangle::xMinimum(), QgsRectangle::yMaximum(), and QgsRectangle::yMinimum().

void QgsComposerMap::setNewExtent ( const QgsRectangle extent  ) 

Sets new Extent and changes width, height (and implicitely also scale).

Definition at line 362 of file qgscomposermap.cpp.

References extent(), QgsRectangle::height(), mExtent, setSceneRect(), and QgsRectangle::width().

PreviewMode QgsComposerMap::previewMode (  )  [inline]

Definition at line 108 of file qgscomposermap.h.

Referenced by readXML().

void QgsComposerMap::setPreviewMode ( PreviewMode  m  )  [inline]

Definition at line 109 of file qgscomposermap.h.

Referenced by QgsComposerView::mouseReleaseEvent().

void QgsComposerMap::setCacheUpdated ( bool  u = false  ) 

Definition at line 241 of file qgscomposermap.cpp.

References mCacheUpdated.

QgsRectangle QgsComposerMap::extent (  )  const [inline]

Definition at line 114 of file qgscomposermap.h.

Referenced by QgsComposerScaleBar::applyDefaultSettings(), draw(), QgsComposerScaleBar::refreshSegmentMillimeters(), and setNewExtent().

const QgsMapRenderer* QgsComposerMap::mapRenderer (  )  const [inline]

Definition at line 116 of file qgscomposermap.h.

void QgsComposerMap::setOffset ( double  xOffset,
double  yOffset 
)

Sets offset values to shift image (useful for live updates when moving item content).

Definition at line 400 of file qgscomposermap.cpp.

References mXOffset, and mYOffset.

Referenced by QgsComposerView::mouseMoveEvent(), and QgsComposerView::mouseReleaseEvent().

bool QgsComposerMap::containsWMSLayer (  )  const

True if composer map renders a WMS layer.

Definition at line 406 of file qgscomposermap.cpp.

References QgsRasterLayer::dataProvider(), QgsMapLayerRegistry::instance(), QgsMapRenderer::layerSet(), QgsMapLayerRegistry::mapLayer(), mMapRenderer, and QgsDataProvider::name().

bool QgsComposerMap::writeXML ( QDomElement &  elem,
QDomDocument &  doc 
) const [virtual]

stores state in Dom node

Parameters:
elem is Dom element corresponding to 'Composer' tag
temp write template file

Implements QgsComposerItem.

Definition at line 469 of file qgscomposermap.cpp.

References QgsComposerItem::_writeXML(), Cache, mCacheUpdated, mExtent, mNumCachedLayers, mPreviewMode, Render, QgsRectangle::xMaximum(), QgsRectangle::xMinimum(), QgsRectangle::yMaximum(), and QgsRectangle::yMinimum().

bool QgsComposerMap::readXML ( const QDomElement &  itemElem,
const QDomDocument &  doc 
) [virtual]

sets state from Dom document

Parameters:
itemElem is Dom node corresponding to 'ComposerMap' tag

Implements QgsComposerItem.

Definition at line 510 of file qgscomposermap.cpp.

References QgsComposerItem::_readXML(), cache(), Cache, mCacheUpdated, mDrawing, mExtent, mNumCachedLayers, mPreviewMode, previewMode(), Rectangle, and Render.

void QgsComposerMap::mapCanvasChanged (  )  [slot]

Definition at line 234 of file qgscomposermap.cpp.

References cache(), and mCacheUpdated.

Referenced by connectUpdateSlot().

void QgsComposerMap::extentChanged (  )  [signal]

Is emitted when width/height is changed as a result of user interaction.

Referenced by moveContent(), setNewScale(), setSceneRect(), and zoomContent().

void QgsComposerMap::connectUpdateSlot (  )  [private]

Establishes signal/slot connection for update in case of layer change.

Definition at line 458 of file qgscomposermap.cpp.

References QgsMapLayerRegistry::instance(), and mapCanvasChanged().

Referenced by QgsComposerMap().

double QgsComposerMap::horizontalViewScaleFactor (  )  const [private]

Returns the zoom factor of the graphics view.

If no graphics view exists, the default 1 is returned

Definition at line 440 of file qgscomposermap.cpp.

Referenced by cache(), and paint().


Member Data Documentation

QgsMapRenderer* QgsComposerMap::mMapRenderer [private]

Definition at line 148 of file qgscomposermap.h.

Referenced by containsWMSLayer(), draw(), QgsComposerMap(), and scale().

int QgsComposerMap::mId [private]

Unique identifier.

Definition at line 151 of file qgscomposermap.h.

Referenced by QgsComposerMap().

QgsRectangle QgsComposerMap::mExtent [private]

Definition at line 156 of file qgscomposermap.h.

Referenced by cache(), moveContent(), paint(), QgsComposerMap(), readXML(), scale(), setNewExtent(), setNewScale(), setSceneRect(), writeXML(), and zoomContent().

QPixmap QgsComposerMap::mCachePixmap [private]

Definition at line 162 of file qgscomposermap.h.

Referenced by cache(), and paint().

bool QgsComposerMap::mCacheUpdated [private]

Definition at line 165 of file qgscomposermap.h.

Referenced by cache(), mapCanvasChanged(), QgsComposerMap(), readXML(), setCacheUpdated(), setNewScale(), setSceneRect(), and writeXML().

PreviewMode QgsComposerMap::mPreviewMode [private]

Preview style.

Definition at line 168 of file qgscomposermap.h.

Referenced by cache(), paint(), readXML(), and writeXML().

int QgsComposerMap::mNumCachedLayers [private]

Number of layers when cache was created.

Definition at line 171 of file qgscomposermap.h.

Referenced by readXML(), and writeXML().

bool QgsComposerMap::mDrawing [private]

set to true if in state of drawing.

Concurrent requests to draw method are returned if set to true

Definition at line 174 of file qgscomposermap.h.

Referenced by draw(), moveContent(), QgsComposerMap(), and readXML().

double QgsComposerMap::mLastScaleFactorX [private]

Store last scale factor to avoid unnecessary repaints in case preview mode is 'Render'.

Definition at line 177 of file qgscomposermap.h.

Referenced by paint().

QgsRectangle QgsComposerMap::mCachedMapExtent [private]

Store the last map extent to decide if cache needs to be updatet.

Definition at line 180 of file qgscomposermap.h.

double QgsComposerMap::mXOffset [private]

Offset in x direction for showing map cache image.

Definition at line 183 of file qgscomposermap.h.

Referenced by paint(), QgsComposerMap(), and setOffset().

double QgsComposerMap::mYOffset [private]

Offset in y direction for showing map cache image.

Definition at line 185 of file qgscomposermap.h.

Referenced by paint(), QgsComposerMap(), and setOffset().

int QgsComposerMap::mCurrentComposerId [static, private]

For the generation of new unique ids.

Definition at line 188 of file qgscomposermap.h.

Referenced by QgsComposerMap().


The documentation for this class was generated from the following files:
Generated on Tue Jan 6 16:51:19 2009 for Quantum GIS API Documentation by  doxygen 1.5.1