17 #ifndef QGSCOMPOSERMAP_H
18 #define QGSCOMPOSERMAP_H
24 #include <QGraphicsRectItem>
114 void draw( QPainter *painter,
const QgsRectangle& extent,
const QSizeF&
size,
double dpi,
double* forceWidthScale = 0 );
117 void paint( QPainter* painter,
const QStyleOptionGraphicsItem* itemStyle, QWidget* pWidget );
129 void resize(
double dx,
double dy );
146 double scale()
const;
149 void setNewScale(
double scaleDenominator );
155 void setPreviewMode( PreviewMode m );
169 void setLayerSet(
const QStringList& layerSet ) {mLayerSet = layerSet;}
171 void storeCurrentLayerSet();
174 void setCacheUpdated(
bool u =
false );
181 void setOffset(
double xOffset,
double yOffset );
184 bool containsWMSLayer()
const;
187 bool containsAdvancedEffects()
const;
193 bool writeXML( QDomElement& elem, QDomDocument & doc )
const;
199 bool readXML(
const QDomElement& itemElem,
const QDomDocument& doc );
233 void setGridPen(
const QPen& p );
234 QPen gridPen()
const;
238 void setGridPenWidth(
double w );
242 void setGridPenColor(
const QColor& c );
292 QRectF boundingRect()
const;
295 void updateBoundingRect();
302 void setMapRotation(
double r );
313 double mapUnitsToMM()
const;
317 void setOverviewFrameMap(
int mapId );
328 void setOverviewBlendMode( QPainter::CompositionMode blendMode );
333 void setOverviewInverted(
bool inverted );
341 void setGridBlendMode( QPainter::CompositionMode blendMode );
348 void extentChanged();
353 void updateCachedImage( );
355 void renderModeUpdateCachedImage();
413 void connectUpdateSlot();
476 void drawGrid( QPainter* p );
477 void drawGridFrame( QPainter* p,
const QList< QPair< double, QLineF > >& hLines,
const QList< QPair< double, QLineF > >& vLines );
482 void drawCoordinateAnnotations( QPainter* p,
const QList< QPair< double, QLineF > >& hLines,
const QList< QPair< double, QLineF > >& vLines );
483 void drawCoordinateAnnotation( QPainter* p,
const QPointF& pos, QString annotationString );
489 void drawAnnotation( QPainter* p,
const QPointF& pos,
int rotation,
const QString& annotationText );
493 int xGridLines( QList< QPair< double, QLineF > >& lines )
const;
496 int yGridLines( QList< QPair< double, QLineF > >& lines )
const;
500 QPolygonF transformedMapPolygon()
const;
501 double maxExtension()
const;
505 void mapPolygon( QPolygonF& poly )
const;
511 void transformShift(
double& xShift,
double& yShift )
const;
513 QPointF mapToItemCoords(
const QPointF& mapCoords )
const;
515 Border borderForLineCoord(
const QPointF& p )
const;
517 void drawCanvasItems( QPainter* painter,
const QStyleOptionGraphicsItem* itemStyle );
518 void drawCanvasItem( QGraphicsItem* item, QPainter* painter,
const QStyleOptionGraphicsItem* itemStyle );
519 QPointF composerMapPosForItem(
const QGraphicsItem* item )
const;
520 void sortGridLinesOnBorders(
const QList< QPair< double, QLineF > >& hLines,
const QList< QPair< double, QLineF > >& vLines, QMap< double, double >& leftFrameEntries,
521 QMap< double, double >& rightFrameEntries, QMap< double, double >& topFrameEntries, QMap< double, double >& bottomFrameEntries )
const;
522 void drawGridFrameBorder( QPainter* p,
const QMap< double, double >& borderPos,
Border border );
523 void drawGridLine(
const QLineF& line, QPainter* p );
524 void drawOverviewMapExtent( QPainter* p );
525 void createDefaultOverviewFrameSymbol();
526 void createDefaultGridLineSymbol();
527 void initGridAnnotationFormatFromProject();
void setGridFrameWidth(double w)
Set grid frame width.
int mOverviewFrameMapId
Id of map which displays its extent rectangle into this composer map (overview map functionality)...
double mXOffset
Offset in x direction for showing map cache image.
bool mGridEnabled
True if coordinate grid has to be displayed.
A rectangle specified with double values.
bool mDrawing
set to true if in state of drawing.
double mGridIntervalY
Grid line interval in y-direction (map units)
virtual bool readXML(const QDomElement &itemElem, const QDomDocument &doc)=0
sets state from Dom document
void setGridIntervalY(double interval)
Sets coordinate interval in y-direction for composergrid.
QgsLineSymbolV2 * gridLineSymbol()
void setGridAnnotationFormat(GridAnnotationFormat f)
double gridIntervalX() const
void setGridEnabled(bool enabled)
Enables a coordinate grid that is shown on top of this composermap.
QStringList mLayerSet
Stored layer list (used if layer live-link mKeepLayerSet is disabled)
QFont mGridAnnotationFont
Font for grid line annotation.
bool mDrawCanvasItems
True if annotation items, rubber band, etc.
QStringList layerSet() const
Getter for stored layer set that is used if mKeepLayerSet is true.
void setAnnotationFontColor(const QColor &c)
Sets font color for grid annotations.
bool showGridAnnotation() const
void setGridStyle(GridStyle style)
Sets coordinate grid style to solid or cross.
A item that forms part of a map composition.
Border
Enum for different frame borders.
QPainter::CompositionMode mOverviewBlendMode
Blend mode for overview.
QGraphicsView * mMapCanvas
void setMapCanvas(QGraphicsView *canvas)
Sets canvas pointer (necessary to query and draw map canvas items)
double annotationFrameDistance() const
A non GUI class for rendering a map layer set onto a QPainter.
bool mShowGridAnnotation
True if coordinate values should be drawn.
double gridOffsetX() const
GridFrameStyle mGridFrameStyle
void setGridAnnotationPrecision(int p)
Sets coordinate precision for grid annotations.
bool isDrawing() const
True if a draw is already in progress.
int mGridAnnotationPrecision
Digits after the dot.
QFont gridAnnotationFont() const
bool overviewInverted() const
Returns true if the overview frame is inverted.
virtual int type() const
return correct graphics item type.
QPainter::CompositionMode gridBlendMode() const
Returns the grid's blending mode.
Perform transforms between map coordinates and device coordinates.
QgsLineSymbolV2 * mGridLineSymbol
GridAnnotationDirection mLeftGridAnnotationDirection
Annotation direction on left side ( horizontal or vertical )
virtual void moveContent(double dx, double dy)
Move Content of item.
double mAnnotationFrameDistance
Distance between map frame and annotation.
int overviewFrameMapId() const
Returns id of overview frame (or -1 if no overfiew frame)
double gridFrameWidth() const
GridAnnotationDirection mRightGridAnnotationDirection
Annotation direction on right side ( horizontal or vertical )
QRectF mCurrentRectangle
Current bounding rectangle.
double mCrossLength
The length of the cross sides for mGridStyle Cross.
void setGridAnnotationFont(const QFont &f)
Sets font for grid annotations.
double mGridOffsetY
Grid line offset in y-direction.
QColor annotationFontColor() const
Get font color for grid annotations.
virtual void updateItem()
Updates item, with the possibility to do custom update for subclasses.
QPainter::CompositionMode overviewBlendMode() const
Returns the overview's blending mode.
bool drawCanvasItems() const
void setAnnotationFrameDistance(double d)
Sets distance between map frame and annotations.
const QgsMapRenderer * mapRenderer() const
double mYOffset
Offset in y direction for showing map cache image.
void setGridIntervalX(double interval)
Sets coordinate interval in x-direction for composergrid.
GridFrameStyle gridFrameStyle() const
double mGridIntervalX
Grid line interval in x-direction (map units)
GridAnnotationPosition mTopGridAnnotationPosition
Annotation position for top map side (inside / outside / not shown)
PreviewMode
Preview style.
GridAnnotationPosition mLeftGridAnnotationPosition
Annotation position for left map side (inside / outside / not shown)
GridAnnotationFormat mGridAnnotationFormat
Graphics scene for map printing.
GridAnnotationFormat gridAnnotationFormat() const
Object representing map window.
GridStyle mGridStyle
Solid or crosses.
GridStyle gridStyle() const
QgsFillSymbolV2 * mOverviewFrameMapSymbol
Drawing style for overview farme.
GridAnnotationPosition mRightGridAnnotationPosition
Annotation position for right map side (inside / outside / not shown)
GridAnnotationDirection mTopGridAnnotationDirection
Annotation direction on top side ( horizontal or vertical )
PreviewMode previewMode() const
int gridAnnotationPrecision() const
void setCrossLength(double l)
Sets length of the cros segments (if grid style is cross)
virtual void zoomContent(int delta, double x, double y)
Zoom content of item.
int id() const
Get identification number.
bool mKeepLayerSet
Flag if layers to be displayed should be read from qgis canvas (true) or from stored list in mLayerSe...
double mGridOffsetX
Grid line offset in x-direction.
QgsFillSymbolV2 * overviewFrameMapSymbol()
QgsMapRenderer * mMapRenderer
QgsRectangle extent() const
GridAnnotationDirection mBottomGridAnnotationDirection
Annotation direction on bottom side ( horizontal or vertical )
int mId
Unique identifier.
void setLayerSet(const QStringList &layerSet)
Setter for stored layer set that is used if mKeepLayerSet is true.
void setShowGridAnnotation(bool show)
Sets flag if grid annotation should be shown.
void setDrawCanvasItems(bool b)
virtual void setSceneRect(const QRectF &rectangle)
Sets this items bound in scene coordinates such that 1 item size units corresponds to 1 scene size un...
double gridIntervalY() const
void setKeepLayerSet(bool enabled)
Setter for flag that determines if the stored layer set should be used or the current layer set of th...
double gridOffsetY() const
void setGridOffsetX(double offset)
Sets x-coordinate offset for composer grid.
GridAnnotationPosition mBottomGridAnnotationPosition
Annotation position for bottom map side (inside / outside / not shown)
QColor mGridAnnotationFontColor
Font color for grid line annotation.
void setGridOffsetY(double offset)
Sets y-coordinate offset for composer grid.
bool keepLayerSet() const
Getter for flag that determines if the stored layer set should be used or the current layer set of th...
Represents a vector layer which manages a vector based data sets.
void setGridFrameStyle(GridFrameStyle style)
Set grid frame style (NoGridFrame or Zebra)
PreviewMode mPreviewMode
Preview style.
virtual bool writeXML(QDomElement &elem, QDomDocument &doc) const =0
stores state in Dom element
QPainter::CompositionMode mGridBlendMode
Blend mode for grid.
int mNumCachedLayers
Number of layers when cache was created.