17 #ifndef QGSCOMPOSERMAP_H
18 #define QGSCOMPOSERMAP_H
24 #include <QGraphicsRectItem>
129 void draw( QPainter *painter,
const QgsRectangle& extent,
const QSizeF&
size,
double dpi,
double* forceWidthScale = 0 );
132 void paint( QPainter* painter,
const QStyleOptionGraphicsItem* itemStyle, QWidget* pWidget );
144 void resize(
double dx,
double dy );
161 double scale()
const;
164 void setNewScale(
double scaleDenominator );
172 void setNewAtlasFeatureExtent(
const QgsRectangle& extent );
175 void toggleAtlasPreview();
187 void setPreviewMode( PreviewMode m );
201 void setLayerSet(
const QStringList& layerSet ) {mLayerSet = layerSet;}
203 void storeCurrentLayerSet();
206 void setCacheUpdated(
bool u =
false );
214 void setOffset(
double xOffset,
double yOffset );
217 bool containsWMSLayer()
const;
220 bool containsAdvancedEffects()
const;
226 bool writeXML( QDomElement& elem, QDomDocument & doc )
const;
232 bool readXML(
const QDomElement& itemElem,
const QDomDocument& doc );
266 void setGridPen(
const QPen& p );
267 QPen gridPen()
const;
271 void setGridPenWidth(
double w );
275 void setGridPenColor(
const QColor& c );
351 QRectF boundingRect()
const;
354 void updateBoundingRect();
373 Q_DECL_DEPRECATED
double rotation()
const {
return mMapRotation;};
378 void setMapRotation(
double r );
391 double mapUnitsToMM()
const;
395 void setOverviewFrameMap(
int mapId );
406 void setOverviewBlendMode( QPainter::CompositionMode blendMode );
411 void setOverviewInverted(
bool inverted );
416 void setOverviewCentered(
bool centered );
424 void setGridBlendMode( QPainter::CompositionMode blendMode );
463 Q_DECL_DEPRECATED
bool atlasFixedScale()
const;
468 Q_DECL_DEPRECATED
void setAtlasFixedScale(
bool fixed );
525 QPolygonF visibleExtentPolygon()
const;
528 void extentChanged();
531 void mapRotationChanged(
double newRotation );
534 void preparedForAtlas();
539 void updateCachedImage( );
541 void renderModeUpdateCachedImage();
543 void overviewExtentChanged();
610 void connectUpdateSlot();
678 void adjustExtentToItemShape(
double itemWidth,
double itemHeight,
QgsRectangle& extent )
const;
688 QStringList layersToRender()
const;
691 void drawGrid( QPainter* p );
692 void drawGridFrame( QPainter* p,
const QList< QPair< double, QLineF > >& hLines,
const QList< QPair< double, QLineF > >& vLines );
697 void drawCoordinateAnnotations( QPainter* p,
const QList< QPair< double, QLineF > >& hLines,
const QList< QPair< double, QLineF > >& vLines );
698 void drawCoordinateAnnotation( QPainter* p,
const QPointF& pos, QString annotationString );
704 void drawAnnotation( QPainter* p,
const QPointF& pos,
int rotation,
const QString& annotationText );
708 int xGridLines( QList< QPair< double, QLineF > >& lines )
const;
711 int yGridLines( QList< QPair< double, QLineF > >& lines )
const;
715 QPolygonF transformedMapPolygon()
const;
716 double maxExtension()
const;
719 void mapPolygon(
const QgsRectangle& extent, QPolygonF& poly )
const;
726 void transformShift(
double& xShift,
double& yShift )
const;
728 QPointF mapToItemCoords(
const QPointF& mapCoords )
const;
730 Border borderForLineCoord(
const QPointF& p )
const;
732 void drawCanvasItems( QPainter* painter,
const QStyleOptionGraphicsItem* itemStyle );
733 void drawCanvasItem( QGraphicsItem* item, QPainter* painter,
const QStyleOptionGraphicsItem* itemStyle );
734 QPointF composerMapPosForItem(
const QGraphicsItem* item )
const;
735 void sortGridLinesOnBorders(
const QList< QPair< double, QLineF > >& hLines,
const QList< QPair< double, QLineF > >& vLines, QMap< double, double >& leftFrameEntries,
736 QMap< double, double >& rightFrameEntries, QMap< double, double >& topFrameEntries, QMap< double, double >& bottomFrameEntries )
const;
737 void drawGridFrameBorder( QPainter* p,
const QMap< double, double >& borderPos,
Border border );
739 void drawOverviewMapExtent( QPainter* p );
740 void createDefaultOverviewFrameSymbol();
741 void createDefaultGridLineSymbol();
742 void initGridAnnotationFormatFromProject();
755 bool shouldDrawPart( PartType part )
const;
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.
AtlasScalingMode
Scaling modes used for the serial rendering (atlas)
bool mGridEnabled
True if coordinate grid has to be displayed.
bool imageSizeConsideringRotation(double &width, double &height, double rotation) const
Calculates width and hight of the picture (in mm) such that it fits into the item frame with the give...
A rectangle specified with double values.
bool mDrawing
set to true if in state of drawing.
bool updatesEnabled() const
Returns whether updates to the composer map are enabled.
double mGridIntervalY
Grid line interval in y-direction (map units)
double mMapRotation
Map rotation.
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)
void setGridFrameFillColor1(const QColor &c)
Sets first fill color for grid zebra frame.
double gridIntervalX() const
virtual void setRotation(double r)
Sets the item rotation.
void setGridEnabled(bool enabled)
Enables a coordinate grid that is shown on top of this composermap.
double gridFramePenSize() const
QStringList mLayerSet
Stored layer list (used if layer live-link mKeepLayerSet is disabled)
QFont mGridAnnotationFont
Font for grid line annotation.
double atlasMargin() const
Returns the margin size (percentage) used when the map is in atlas mode.
QColor gridFrameFillColor1() const
Get first fill color for grid zebra frame.
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.
AtlasScalingMode mAtlasScalingMode
Current atlas scaling mode.
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
double mapRotation() const
Returns the rotation used for drawing the map within the composer item.
bool mOverviewCentered
Centering mode for overview.
GridFrameStyle mGridFrameStyle
QColor mGridFrameFillColor1
QColor mGridFramePenColor
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
void setAtlasMargin(double margin)
Sets the margin size (percentage) used when the map is in atlas mode.
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.
QColor gridFrameFillColor2() const
Get second fill color for grid zebra frame.
double mAnnotationFrameDistance
Distance between map frame and annotation.
void setAtlasScalingMode(AtlasScalingMode mode)
Sets the current atlas scaling mode.
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.
double mGridFramePenThickness
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.
double mYOffset
Offset in y direction for showing map cache image.
virtual void setFrameOutlineWidth(double outlineWidth)
Sets frame outline width.
QColor mGridFrameFillColor2
void setGridFrameFillColor2(const QColor &c)
Sets second fill color for grid zebra frame.
void setGridIntervalX(double interval)
Sets coordinate interval in x-direction for composergrid.
GridFrameStyle gridFrameStyle() const
virtual int numberExportLayers() const
Get the number of layers that this item requires for exporting as layers.
double mGridIntervalX
Grid line interval in x-direction (map units)
GridAnnotationPosition mTopGridAnnotationPosition
Annotation position for top map side (inside / outside / not shown)
void setGridFramePenSize(double w)
Set grid frame pen thickness.
bool mAtlasDriven
True if map is being controlled by an atlas.
PreviewMode
Preview style.
GridAnnotationPosition mLeftGridAnnotationPosition
Annotation position for left map side (inside / outside / not shown)
GridAnnotationFormat mGridAnnotationFormat
Graphics scene for map printing.
QColor gridFramePenColor() const
Get pen color for grid frame.
GridAnnotationFormat gridAnnotationFormat() const
Object representing map window.
GridStyle mGridStyle
Solid or crosses.
GridStyle gridStyle() const
QgsFillSymbolV2 * mOverviewFrameMapSymbol
Drawing style for overview farme.
void setUpdatesEnabled(bool enabled)
Sets whether updates to the composer map are enabled.
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.
double mAtlasMargin
Margin size for atlas driven extents (percentage of feature size) - when in auto scaling mode...
Contains information about the context of a rendering operation.
bool mKeepLayerSet
Flag if layers to be displayed should be read from qgis canvas (true) or from stored list in mLayerSe...
bool cornerPointOnRotatedAndScaledRect(double &x, double &y, double width, double height, double rotation) const
Calculates corner point after rotation and scaling.
double mGridOffsetX
Grid line offset in x-direction.
Q_DECL_DEPRECATED double rotation() const
Returns the rotation used for drawing the map within the composer item.
QgsFillSymbolV2 * overviewFrameMapSymbol()
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.
bool mUpdatesEnabled
Whether updates to the map are enabled.
void setShowGridAnnotation(bool show)
Sets flag if grid annotation should be shown.
AtlasScalingMode atlasScalingMode() const
Returns the current atlas scaling mode.
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
QgsRectangle mAtlasFeatureExtent
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.
bool atlasDriven() const
Returns whether the map extent is set to follow the current atlas feature.
GridAnnotationPosition mBottomGridAnnotationPosition
Annotation position for bottom map side (inside / outside / not shown)
void setAtlasDriven(bool enabled)
Sets whether the map extent will follow the current atlas feature.
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.
void setGridFramePenColor(const QColor &c)
Sets pen color for grid frame.
void sizeChangedByRotation(double &width, double &height, double rotation)
Calculates width / height of the bounding box of a rotated rectangle.
bool overviewCentered() const
Returns true if the extent is forced to center on the overview.