QGIS API Documentation  3.16.0-Hannover (43b64b13f3)
qgslayoutitemmap.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgslayoutitemmap.h
3  -------------------
4  begin : July 2017
5  copyright : (C) 2017 by Nyall Dawson
6  email : nyall dot dawson at gmail dot com
7  ***************************************************************************/
8 /***************************************************************************
9  * *
10  * This program is free software; you can redistribute it and/or modify *
11  * it under the terms of the GNU General Public License as published by *
12  * the Free Software Foundation; either version 2 of the License, or *
13  * (at your option) any later version. *
14  * *
15  ***************************************************************************/
16 
17 #ifndef QGSLAYOUTITEMMAP_H
18 #define QGSLAYOUTITEMMAP_H
19 
20 #include "qgis_core.h"
21 #include "qgslayoutitem.h"
22 #include "qgslayoutitemregistry.h"
23 #include "qgsmaplayerref.h"
25 #include "qgslayoutitemmapgrid.h"
28 #include "qgstemporalrangeobject.h"
29 
30 class QgsAnnotation;
32 
39 class CORE_EXPORT QgsLayoutItemMapAtlasClippingSettings : public QObject
40 {
41  Q_OBJECT
42 
43  public:
44 
49 
55  bool enabled() const;
56 
62  void setEnabled( bool enabled );
63 
69  QgsMapClippingRegion::FeatureClippingType featureClippingType() const;
70 
76  void setFeatureClippingType( QgsMapClippingRegion::FeatureClippingType type );
77 
83  bool forceLabelsInsideFeature() const;
84 
90  void setForceLabelsInsideFeature( bool forceInside );
91 
98  bool restrictToLayers() const;
99 
106  void setRestrictToLayers( bool enabled );
107 
116  QList< QgsMapLayer * > layersToClip() const;
117 
126  void setLayersToClip( const QList< QgsMapLayer * > &layers );
127 
133  bool writeXml( QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context ) const;
134 
140  bool readXml( const QDomElement &element, const QDomDocument &doc, const QgsReadWriteContext &context );
141 
142  signals:
143 
147  void changed();
148 
149  private slots:
150  void layersAboutToBeRemoved( const QList<QgsMapLayer *> &layers );
151 
152  private:
153 
154  QgsLayoutItemMap *mMap = nullptr;
155  bool mClipToAtlasFeature = false;
156  bool mRestrictToLayers = false;
157  QList< QgsMapLayerRef > mLayersToClip;
159  bool mForceLabelsInsideFeature = false;
160 };
161 
162 
169 class CORE_EXPORT QgsLayoutItemMapItemClipPathSettings : public QObject
170 {
171  Q_OBJECT
172 
173  public:
174 
179 
186  bool isActive() const;
187 
193  bool enabled() const;
194 
200  void setEnabled( bool enabled );
201 
207  QgsGeometry clippedMapExtent() const;
208 
218  QgsGeometry clipPathInMapItemCoordinates() const;
219 
223  QgsMapClippingRegion toMapClippingRegion() const;
224 
232  void setSourceItem( QgsLayoutItem *item );
233 
240  QgsLayoutItem *sourceItem();
241 
247  QgsMapClippingRegion::FeatureClippingType featureClippingType() const;
248 
254  void setFeatureClippingType( QgsMapClippingRegion::FeatureClippingType type );
255 
261  bool forceLabelsInsideClipPath() const;
262 
268  void setForceLabelsInsideClipPath( bool forceInside );
269 
275  bool writeXml( QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context ) const;
276 
283  bool readXml( const QDomElement &element, const QDomDocument &doc, const QgsReadWriteContext &context );
284 
289  void finalizeRestoreFromXml();
290 
291  signals:
292 
296  void changed();
297 
298  private:
299 
300  QgsLayoutItemMap *mMap = nullptr;
301  bool mEnabled = false;
303  bool mForceLabelsInsideClipPath = false;
304 
305  QPointer< QgsLayoutItem > mClipPathSource;
306  QString mClipPathUuid;
307 
308 };
309 
310 
317 class CORE_EXPORT QgsLayoutItemMap : public QgsLayoutItem, public QgsTemporalRangeObject
318 {
319 
320  Q_OBJECT
321 
322  public:
323 
328  {
330 
338 
344  Auto
345  };
346 
352  {
353  ShowPartialLabels = 1 << 0,
354  ShowUnplacedLabels = 1 << 1,
355  };
356  Q_DECLARE_FLAGS( MapItemFlags, MapItemFlag )
357 
358 
361  explicit QgsLayoutItemMap( QgsLayout *layout );
362  ~QgsLayoutItemMap() override;
363 
364  int type() const override;
365  QIcon icon() const override;
366  QgsLayoutItem::Flags itemFlags() const override;
367 
373  QgsLayoutItemMap::MapItemFlags mapFlags() const;
374 
380  void setMapFlags( QgsLayoutItemMap::MapItemFlags flags );
381 
385  void assignFreeId();
386 
387  //overridden to show "Map 1" type names
388  QString displayName() const override;
389 
395  static QgsLayoutItemMap *create( QgsLayout *layout ) SIP_FACTORY;
396 
397  // for now, map items behave a bit differently and don't implement draw. TODO - see if we can avoid this
398  void paint( QPainter *painter, const QStyleOptionGraphicsItem *itemStyle, QWidget *pWidget ) override;
399  Q_DECL_DEPRECATED int numberExportLayers() const override SIP_DEPRECATED;
400  void startLayeredExport() override;
401  void stopLayeredExport() override;
402  bool nextExportPart() override;
403  ExportLayerBehavior exportLayerBehavior() const override;
404  QgsLayoutItem::ExportLayerDetail exportLayerDetails() const override;
405  void setFrameStrokeWidth( QgsLayoutMeasurement width ) override;
406 
412  double scale() const;
413 
421  void setScale( double scale, bool forceUpdate = true );
422 
430  void setExtent( const QgsRectangle &extent );
431 
439  void zoomToExtent( const QgsRectangle &extent );
440 
446  QgsRectangle extent() const;
447 
448 
456  QPolygonF visibleExtentPolygon() const;
457 
467 
476  QgsCoordinateReferenceSystem presetCrs() const { return mCrs; }
477 
485  void setCrs( const QgsCoordinateReferenceSystem &crs );
486 
495  bool keepLayerSet() const { return mKeepLayerSet; }
496 
505  void setKeepLayerSet( bool enabled ) { mKeepLayerSet = enabled; }
506 
513  QList<QgsMapLayer *> layers() const;
514 
521  void setLayers( const QList<QgsMapLayer *> &layers );
522 
527  bool keepLayerStyles() const { return mKeepLayerStyles; }
528 
533  void setKeepLayerStyles( bool enabled ) { mKeepLayerStyles = enabled; }
534 
539  QMap<QString, QString> layerStyleOverrides() const { return mLayerStyleOverrides; }
540 
545  void setLayerStyleOverrides( const QMap<QString, QString> &overrides );
546 
550  void storeCurrentLayerStyles();
551 
562  bool followVisibilityPreset() const { return mFollowVisibilityPreset; }
563 
567  void setFollowVisibilityPreset( bool follow );
568 
576  QString followVisibilityPresetName() const { return mFollowVisibilityPresetName; }
577 
584  void setFollowVisibilityPresetName( const QString &name );
585 
586  void moveContent( double dx, double dy ) override;
587  void setMoveContentPreviewOffset( double dx, double dy ) override;
588 
589  void zoomContent( double factor, QPointF point ) override;
590 
591 
593  bool containsWmsLayer() const;
594 
595  bool requiresRasterization() const override;
596  bool containsAdvancedEffects() const override;
597 
604  void setMapRotation( double rotation );
605 
614  double mapRotation( QgsLayoutObject::PropertyValueType valueType = QgsLayoutObject::EvaluatedValue ) const;
615 
620  void setDrawAnnotations( bool draw ) { mDrawAnnotations = draw; }
621 
626  bool drawAnnotations() const { return mDrawAnnotations; }
627 
628 
635  bool atlasDriven() const { return mAtlasDriven; }
636 
643  void setAtlasDriven( bool enabled );
644 
654  AtlasScalingMode atlasScalingMode() const { return mAtlasScalingMode; }
655 
665  void setAtlasScalingMode( AtlasScalingMode mode ) { mAtlasScalingMode = mode; }
666 
678 
686  void setAtlasMargin( double margin ) { mAtlasMargin = margin; }
687 
693  QgsLayoutItemMapGridStack *grids() { return mGridStack.get(); }
694 
699  QgsLayoutItemMapGrid *grid();
700 
707  QgsLayoutItemMapOverviewStack *overviews() { return mOverviewStack.get(); }
708 
714  QgsLayoutItemMapOverview *overview();
715 
726  QgsLayoutMeasurement labelMargin() const;
727 
738  void setLabelMargin( const QgsLayoutMeasurement &margin );
739 
741 
747  double mapUnitsToLayoutUnits() const;
748 
756  QgsMapSettings mapSettings( const QgsRectangle &extent, QSizeF size, double dpi, bool includeLayerSettings ) const;
757 
758  void finalizeRestoreFromXml() override;
759 
764  QList<QgsMapLayer *> layersToRender( const QgsExpressionContext *context = nullptr ) const;
765 
777  void addLabelBlockingItem( QgsLayoutItem *item );
778 
790  void removeLabelBlockingItem( QgsLayoutItem *item );
791 
803  bool isLabelBlockingItem( QgsLayoutItem *item ) const;
804 
809  QgsMapRendererJob::Errors renderingErrors() const { return mRenderingErrors; }
810 
811  bool accept( QgsStyleEntityVisitorInterface *visitor ) const override;
812 
825  void addRenderedFeatureHandler( QgsRenderedFeatureHandlerInterface *handler );
826 
833  void removeRenderedFeatureHandler( QgsRenderedFeatureHandlerInterface *handler );
834 
838  QTransform layoutToMapCoordsTransform() const;
839 
845  QgsLayoutItemMapAtlasClippingSettings *atlasClippingSettings() { return mAtlasClippingSettings; }
846 
852  QgsLayoutItemMapItemClipPathSettings *itemClippingSettings() { return mItemClippingSettings; }
853 
854  protected:
855 
856  void draw( QgsLayoutItemRenderContext &context ) override;
857  bool writePropertiesToElement( QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context ) const override;
858  bool readPropertiesFromElement( const QDomElement &element, const QDomDocument &document, const QgsReadWriteContext &context ) override;
859  QPainterPath framePath() const override;
860 
862  bool isDrawing() const {return mDrawing;}
863 
864  // In case of annotations, the bounding rectangle can be larger than the map item rectangle
865  QRectF boundingRect() const override;
866 
868  QPolygonF transformedMapPolygon() const;
869 
871  QPointF mapToItemCoords( QPointF mapCoords ) const;
872 
876  QgsRectangle requestedExtent() const;
877 
878  signals:
879 
886 
892  void mapRotationChanged( double newRotation );
893 
896 
902 
911  void themeChanged( const QString &theme );
912 
913  public slots:
914 
915  void refresh() override;
916 
917  void invalidateCache() override;
918 
920  void updateBoundingRect();
921 
923 
924  private slots:
925  void layersAboutToBeRemoved( const QList<QgsMapLayer *> &layers );
926 
927  void painterJobFinished();
928 
929  void shapeChanged();
930 
931  void mapThemeChanged( const QString &theme );
932 
934  void currentMapThemeRenamed( const QString &theme, const QString &newTheme );
935 
937  void recreateCachedImageInBackground();
938 
939  void updateAtlasFeature();
940  private:
941 
942  QgsLayoutItemMap::MapItemFlags mMapFlags = QgsLayoutItemMap::MapItemFlags();
943 
945  int mMapId = 1;
946 
947  std::unique_ptr< QgsLayoutItemMapGridStack > mGridStack;
948  std::unique_ptr< QgsLayoutItemMapOverviewStack > mOverviewStack;
949 
950  // Map region in map units really used for rendering
951  // It can be the same as mUserExtent, but it can be bigger in on dimension if mCalculate==Scale,
952  // so that full rectangle in paper is used.
953  QgsRectangle mExtent;
954 
957 
958  // Current temporary map region in map units. This is overwritten when atlas feature changes. It's also
959  // used when the user changes the map extent and an atlas preview is enabled. This allows the user
960  // to manually tweak each atlas preview page without affecting the actual original map extent.
961  QgsRectangle mAtlasFeatureExtent;
962 
963  // We have two images used for rendering/storing cached map images.
964  // the first (mCacheFinalImage) is used ONLY for storing the most recent completed map render. It's always
965  // used when drawing map item previews. The second (mCacheRenderingImage) is used temporarily while
966  // rendering a new preview image in the background. If (and only if) the background render completes, then
967  // mCacheRenderingImage is pushed into mCacheFinalImage, and used from then on when drawing the item preview.
968  // This ensures that something is always shown in the map item, even while refreshing the preview image in the
969  // background
970  std::unique_ptr< QImage > mCacheFinalImage;
971  std::unique_ptr< QImage > mCacheRenderingImage;
972  bool mUpdatesEnabled = true;
973 
975  bool mCacheInvalidated = true;
976 
978  int mNumCachedLayers;
979 
980  // Set to true if in state of drawing. Concurrent requests to draw method are returned if set to true
981  bool mDrawing = false;
982 
983  QTimer *mBackgroundUpdateTimer = nullptr;
984  double mPreviewScaleFactor = 0;
985 
986  bool mDrawingPreview = false;
987 
989  double mXOffset = 0.0;
991  double mYOffset = 0.0;
992 
993  double mLastRenderedImageOffsetX = 0.0;
994  double mLastRenderedImageOffsetY = 0.0;
995 
997  double mMapRotation = 0;
998 
1003  double mEvaluatedMapRotation = 0;
1004 
1006  bool mKeepLayerSet = false;
1007 
1009  QList< QgsMapLayerRef > mLayers;
1010 
1011  bool mKeepLayerStyles = false;
1013  QMap<QString, QString> mLayerStyleOverrides;
1014 
1016  mutable QString mCachedLayerStyleOverridesPresetName;
1018  mutable QMap<QString, QString> mCachedPresetLayerStyleOverrides;
1019 
1025  bool mFollowVisibilityPreset = false;
1026 
1031  QString mFollowVisibilityPresetName;
1032 
1034  QString mLastEvaluatedThemeName;
1035 
1043  void drawMap( QPainter *painter, const QgsRectangle &extent, QSizeF size, double dpi );
1044 
1046  void connectUpdateSlot();
1047 
1049  void syncLayerSet();
1050 
1052  const QgsLayoutItemMapGrid *constFirstMapGrid() const;
1053 
1055  const QgsLayoutItemMapOverview *constFirstMapOverview() const;
1056 
1061  QList< QgsLabelBlockingRegion > createLabelBlockingRegions( const QgsMapSettings &mapSettings ) const;
1062 
1064  QRectF mCurrentRectangle;
1066  bool mDrawAnnotations = true;
1067 
1069  bool mAtlasDriven = false;
1071  AtlasScalingMode mAtlasScalingMode = Auto;
1073  double mAtlasMargin = 0.10;
1074 
1075  std::unique_ptr< QPainter > mPainter;
1076  std::unique_ptr< QgsMapRendererCustomPainterJob > mPainterJob;
1077  bool mPainterCancelWait = false;
1078 
1079  QgsLayoutMeasurement mLabelMargin{ 0 };
1080  QgsLayoutMeasurement mEvaluatedLabelMargin{ 0 };
1081 
1082  QStringList mBlockingLabelItemUuids;
1083  QList< QPointer< QgsLayoutItem > > mBlockingLabelItems;
1084 
1086  QgsMapRendererJob::Errors mRenderingErrors;
1087 
1088  QList< QgsRenderedFeatureHandlerInterface * > mRenderedFeatureHandlers;
1089 
1090  std::unique_ptr< QgsMapRendererStagedRenderJob > mStagedRendererJob;
1091 
1092  void init();
1093 
1095  void updateToolTip();
1096 
1097  QString themeToRender( const QgsExpressionContext &context ) const;
1098 
1100  QMap<QString, QString> layerStyleOverridesToRender( const QgsExpressionContext &context ) const;
1101 
1103  QgsRectangle transformedExtent() const;
1104 
1106  void mapPolygon( const QgsRectangle &extent, QPolygonF &poly ) const;
1107 
1113  void transformShift( double &xShift, double &yShift ) const;
1114 
1115  void drawAnnotations( QPainter *painter );
1116  void drawAnnotation( const QgsAnnotation *item, QgsRenderContext &context );
1117  QPointF layoutMapPosForItem( const QgsAnnotation *item ) const;
1118 
1119  void drawMapFrame( QPainter *p );
1120  void drawMapBackground( QPainter *p );
1121 
1122  enum PartType
1123  {
1124  Start,
1125  Background,
1126  Layer,
1127  Grid,
1128  OverviewMapExtent,
1129  Frame,
1130  SelectionBoxes,
1131  End,
1132  NotLayered,
1133  };
1134 
1136  bool shouldDrawPart( PartType part ) const;
1137 
1138  PartType mCurrentExportPart = NotLayered;
1139  QStringList mExportThemes;
1140  QStringList::iterator mExportThemeIt;
1141 
1142  QgsLayoutItemMapAtlasClippingSettings *mAtlasClippingSettings = nullptr;
1143  QgsLayoutItemMapItemClipPathSettings *mItemClippingSettings = nullptr;
1144 
1149  void refreshMapExtents( const QgsExpressionContext *context = nullptr );
1150 
1151  void refreshLabelMargin( bool updateItem );
1152 
1153  QgsRectangle computeAtlasRectangle();
1154 
1155  void createStagedRenderJob( const QgsRectangle &extent, const QSizeF size, double dpi );
1156 
1157  QPolygonF calculateVisibleExtentPolygon( bool includeClipping ) const;
1158 
1159  friend class QgsLayoutItemMapGrid;
1161  friend class QgsLayoutItemLegend;
1162  friend class TestQgsLayoutMap;
1164  friend class QgsGeoPdfRenderedFeatureHandler;
1165 
1166 };
1167 
1168 Q_DECLARE_OPERATORS_FOR_FLAGS( QgsLayoutItemMap::MapItemFlags )
1169 
1170 #endif //QGSLAYOUTITEMMAP_H
QgsExpressionContext
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
Definition: qgsexpressioncontext.h:370
QgsLayoutItemMapGrid
An individual grid which is drawn above the map content in a QgsLayoutItemMap.
Definition: qgslayoutitemmapgrid.h:141
qgslayoutitemmapgrid.h
QgsLayoutItemMap::overviews
QgsLayoutItemMapOverviewStack * overviews()
Returns the map item's overview stack, which is used to control how overviews are drawn over the map'...
Definition: qgslayoutitemmap.h:707
QgsMapClippingRegion
A map clipping region (in map coordinates and CRS).
Definition: qgsmapclippingregion.h:32
QgsLayoutItem::writePropertiesToElement
virtual bool writePropertiesToElement(QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context) const
Stores item state within an XML DOM element.
Definition: qgslayoutitem.cpp:1325
QgsLayoutItemMap::grids
QgsLayoutItemMapGridStack * grids()
Returns the map item's grid stack, which is used to control how grids are drawn over the map's conten...
Definition: qgslayoutitemmap.h:693
QgsReadWriteContext
The class is used as a container of context for various read/write operations on other objects.
Definition: qgsreadwritecontext.h:35
QgsLayoutItemMap::keepLayerStyles
bool keepLayerStyles() const
Returns whether current styles of layers should be overridden by previously stored styles.
Definition: qgslayoutitemmap.h:527
QgsLayoutItemMap::layerStyleOverrides
QMap< QString, QString > layerStyleOverrides() const
Returns stored overrides of styles for layers.
Definition: qgslayoutitemmap.h:539
QgsLayoutItemMap::atlasScalingMode
AtlasScalingMode atlasScalingMode() const
Returns the current atlas scaling mode.
Definition: qgslayoutitemmap.h:654
qgstemporalrangeobject.h
QgsLayoutItem::icon
virtual QIcon icon() const
Returns the item's icon.
Definition: qgslayoutitem.h:334
QgsLayoutItemMap::extentChanged
void extentChanged()
Emitted when the map's extent changes.
QgsLayoutItemMap::atlasClippingSettings
QgsLayoutItemMapAtlasClippingSettings * atlasClippingSettings()
Returns the map's atlas clipping settings.
Definition: qgslayoutitemmap.h:845
crs
const QgsCoordinateReferenceSystem & crs
Definition: qgswfsgetfeature.cpp:51
QgsLayoutItemMap::layerStyleOverridesChanged
void layerStyleOverridesChanged()
Emitted when layer style overrides are changed...
QgsLayoutItem::finalizeRestoreFromXml
virtual void finalizeRestoreFromXml()
Called after all pending items have been restored from XML.
Definition: qgslayoutitem.cpp:824
QgsLayoutItemRenderContext
Contains settings and helpers relating to a render of a QgsLayoutItem.
Definition: qgslayoutitem.h:45
QgsLayoutItemMap::atlasDriven
bool atlasDriven() const
Returns whether the map extent is set to follow the current atlas feature.
Definition: qgslayoutitemmap.h:635
qgsmaprenderercustompainterjob.h
QgsRenderContext
Contains information about the context of a rendering operation.
Definition: qgsrendercontext.h:58
QgsLayoutItemMap::AtlasScalingMode
AtlasScalingMode
Scaling modes used for the serial rendering (atlas)
Definition: qgslayoutitemmap.h:328
QgsStyleEntityVisitorInterface
An interface for classes which can visit style entity (e.g.
Definition: qgsstyleentityvisitor.h:34
QgsLayoutItem::refreshDataDefinedProperty
virtual void refreshDataDefinedProperty(QgsLayoutObject::DataDefinedProperty property=QgsLayoutObject::AllProperties)
Refreshes a data defined property for the item by reevaluating the property's value and redrawing the...
Definition: qgslayoutitem.cpp:1081
QgsLayoutItem::numberExportLayers
virtual Q_DECL_DEPRECATED int numberExportLayers() const
Returns the number of layers that this item requires for exporting during layered exports (e....
Definition: qgslayoutitem.cpp:252
qgsmaprendererstagedrenderjob.h
QgsLayoutItemMap::itemClippingSettings
QgsLayoutItemMapItemClipPathSettings * itemClippingSettings()
Returns the map's item based clip path settings.
Definition: qgslayoutitemmap.h:852
QgsLayoutItemMap::drawAnnotations
bool drawAnnotations() const
Returns whether annotations are drawn within the map.
Definition: qgslayoutitemmap.h:626
QgsLayoutItemMap::followVisibilityPreset
bool followVisibilityPreset() const
Returns whether the map should follow a map theme.
Definition: qgslayoutitemmap.h:562
QgsLayoutItemMap::preparedForAtlas
void preparedForAtlas()
Emitted when the map has been prepared for atlas rendering, just before actual rendering.
QgsRectangle
A rectangle specified with double values.
Definition: qgsrectangle.h:42
QgsLayoutItemMapItemClipPathSettings
Contains settings relating to clipping a layout map by another layout item.
Definition: qgslayoutitemmap.h:170
QgsLayoutItem::readPropertiesFromElement
virtual bool readPropertiesFromElement(const QDomElement &element, const QDomDocument &document, const QgsReadWriteContext &context)
Sets item state from a DOM element.
Definition: qgslayoutitem.cpp:1330
QgsRenderedFeatureHandlerInterface
An interface for classes which provider custom handlers for features rendered as part of a map render...
Definition: qgsrenderedfeaturehandlerinterface.h:47
QgsLayoutItem::draw
virtual void draw(QgsLayoutItemRenderContext &context)=0
Draws the item's contents using the specified item render context.
SIP_FACTORY
#define SIP_FACTORY
Definition: qgis_sip.h:76
QgsLayoutItem::type
int type() const override
Returns a unique graphics item type identifier.
Definition: qgslayoutitem.cpp:124
QgsLayoutItemLegend
A layout item subclass for map legends.
Definition: qgslayoutitemlegend.h:114
SIP_DEPRECATED
#define SIP_DEPRECATED
Definition: qgis_sip.h:106
QgsLayoutItem::containsAdvancedEffects
virtual bool containsAdvancedEffects() const
Returns true if the item contains contents with blend modes or transparency effects which can only be...
Definition: qgslayoutitem.cpp:925
QgsLayoutItemMap::isDrawing
bool isDrawing() const
True if a draw is already in progress.
Definition: qgslayoutitemmap.h:862
QgsLayoutObject::AllProperties
@ AllProperties
All properties for item.
Definition: qgslayoutobject.h:135
QgsLayoutItem::framePath
virtual QPainterPath framePath() const
Returns the path to use when drawing the item's frame or background.
Definition: qgslayoutitem.cpp:1213
QgsAnnotation
Abstract base class for annotation items which are drawn over a map.
Definition: qgsannotation.h:50
qgslayoutitemmapoverview.h
qgslayoutitem.h
QgsCompositionConverter
QgsCompositionConverter class converts a QGIS 2.x composition to a QGIS 3.x layout.
Definition: qgscompositionconverter.h:55
QgsLayoutItem::accept
virtual bool accept(QgsStyleEntityVisitorInterface *visitor) const
Accepts the specified style entity visitor, causing it to visit all style entities associated with th...
Definition: qgslayoutitem.cpp:1165
QgsLayoutItemMap::setAtlasScalingMode
void setAtlasScalingMode(AtlasScalingMode mode)
Sets the current atlas scaling mode.
Definition: qgslayoutitemmap.h:665
QgsLayoutItem::requiresRasterization
virtual bool requiresRasterization() const
Returns true if the item is drawn in such a way that forces the whole layout to be rasterized when ex...
Definition: qgslayoutitem.cpp:930
QgsLayoutItem::invalidateCache
virtual void invalidateCache()
Forces a deferred update of any cached image the item uses.
Definition: qgslayoutitem.cpp:1184
QgsLayoutItem::zoomContent
virtual void zoomContent(double factor, QPointF point)
Zooms content of item.
Definition: qgslayoutitem.cpp:962
QgsLayoutItemMap::MapItemFlag
MapItemFlag
Various flags that affect drawing of map items.
Definition: qgslayoutitemmap.h:352
Q_DECLARE_OPERATORS_FOR_FLAGS
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsField::ConfigurationFlags) CORE_EXPORT QDataStream &operator<<(QDataStream &out
Writes the field to stream out. QGIS version compatibility is not guaranteed.
QgsLayoutItemMap::Fixed
@ Fixed
The current scale of the map is used for each feature of the atlas.
Definition: qgslayoutitemmap.h:329
QgsLayoutItem::paint
void paint(QPainter *painter, const QStyleOptionGraphicsItem *itemStyle, QWidget *pWidget) override
Handles preparing a paint surface for the layout item and painting the item's content.
Definition: qgslayoutitem.cpp:285
QgsLayoutItemMapOverviewStack
A collection of overviews which are drawn above the map content in a QgsLayoutItemMap.
Definition: qgslayoutitemmapoverview.h:43
QgsLayoutItem
Base class for graphical items within a QgsLayout.
Definition: qgslayoutitem.h:113
QgsMapClippingRegion::FeatureClippingType
FeatureClippingType
Feature clipping behavior, which controls how features from vector layers will be clipped.
Definition: qgsmapclippingregion.h:40
QgsLayoutItemMap::renderingErrors
QgsMapRendererJob::Errors renderingErrors() const
Returns map rendering errors.
Definition: qgslayoutitemmap.h:809
QgsCoordinateReferenceSystem
This class represents a coordinate reference system (CRS).
Definition: qgscoordinatereferencesystem.h:206
QgsLayoutItem::refresh
void refresh() override
Refreshes the item, causing a recalculation of any property overrides and recalculation of its positi...
Definition: qgslayoutitem.cpp:1176
QgsLayoutItemMapOverview
An individual overview which is drawn above the map content in a QgsLayoutItemMap,...
Definition: qgslayoutitemmapoverview.h:127
QgsLayoutItemMap
Layout graphical items for displaying a map.
Definition: qgslayoutitemmap.h:318
QgsLayoutItemMap::followVisibilityPresetName
QString followVisibilityPresetName() const
Preset name that decides which layers and layer styles are used for map rendering.
Definition: qgslayoutitemmap.h:576
QgsLayoutItem::itemFlags
virtual Flags itemFlags() const
Returns the item's flags, which indicate how the item behaves.
Definition: qgslayoutitem.cpp:129
QgsLayoutItemMap::Predefined
@ Predefined
A scale is chosen from the predefined scales.
Definition: qgslayoutitemmap.h:337
QgsLayoutItemMap::themeChanged
void themeChanged(const QString &theme)
Emitted when the map's associated theme is changed.
QgsGeometry
A geometry is the spatial representation of a feature.
Definition: qgsgeometry.h:124
QgsLayoutItemMapItemClipPathSettings::changed
void changed()
Emitted when the item clipping settings are changed.
QgsLayout
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.
Definition: qgslayout.h:50
QgsMapClippingRegion::FeatureClippingType::ClipPainterOnly
@ ClipPainterOnly
Applying clipping on the painter only (i.e. feature boundaries will be unchanged, but may be invisibl...
QgsLayoutItemMap::mapRotationChanged
void mapRotationChanged(double newRotation)
Emitted when the map's rotation changes.
QgsLayoutItem::displayName
virtual QString displayName() const
Gets item display name.
Definition: qgslayoutitem.cpp:107
QgsLayoutItemMap::setKeepLayerStyles
void setKeepLayerStyles(bool enabled)
Sets whether current styles of layers should be overridden by previously stored styles.
Definition: qgslayoutitemmap.h:533
QgsLayoutItemMap::setAtlasMargin
void setAtlasMargin(double margin)
Sets the margin size (percentage) used when the map is in atlas mode.
Definition: qgslayoutitemmap.h:686
QgsLayoutObject::PropertyValueType
PropertyValueType
Specifies whether the value returned by a function should be the original, user set value,...
Definition: qgslayoutobject.h:213
qgsmaplayerref.h
QgsLayoutItem::moveContent
virtual void moveContent(double dx, double dy)
Moves the content of the item, by a specified dx and dy in layout units.
Definition: qgslayoutitem.cpp:952
QgsLayoutItem::setMoveContentPreviewOffset
virtual void setMoveContentPreviewOffset(double dx, double dy)
Sets temporary offset for the item, by a specified dx and dy in layout units.
Definition: qgslayoutitem.cpp:957
QgsMapRendererJob::Errors
QList< QgsMapRendererJob::Error > Errors
Definition: qgsmaprendererjob.h:261
QgsMapSettings
The QgsMapSettings class contains configuration for rendering of the map.
Definition: qgsmapsettings.h:88
QgsLayoutItemMapAtlasClippingSettings::changed
void changed()
Emitted when the atlas clipping settings are changed.
QgsLayoutItemMapGridStack
A collection of grids which is drawn above the map content in a QgsLayoutItemMap.
Definition: qgslayoutitemmapgrid.h:47
qgslayoutitemregistry.h
QgsLayoutObject::EvaluatedValue
@ EvaluatedValue
Return the current evaluated value for the property.
Definition: qgslayoutobject.h:214
SIP_TRANSFERTHIS
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53
QgsLayoutItemMap::setKeepLayerSet
void setKeepLayerSet(bool enabled)
Sets whether the stored layer set should be used or the current layer set of the associated project.
Definition: qgslayoutitemmap.h:505
QgsLayoutItem::createExpressionContext
QgsExpressionContext createExpressionContext() const override
This method needs to be reimplemented in all classes which implement this interface and return an exp...
Definition: qgslayoutitem.cpp:1158
QgsTemporalRangeObject
Base class for objects with an associated (optional) temporal range.
Definition: qgstemporalrangeobject.h:34
QgsLayoutMeasurement
This class provides a method of storing measurements for use in QGIS layouts using a variety of diffe...
Definition: qgslayoutmeasurement.h:34
QgsLayoutObject::DataDefinedProperty
DataDefinedProperty
Data defined properties for different item types.
Definition: qgslayoutobject.h:133
QgsLayoutItemMapAtlasClippingSettings
Contains settings relating to clipping a layout map by the current atlas feature.
Definition: qgslayoutitemmap.h:40
QgsLayoutItemMap::setDrawAnnotations
void setDrawAnnotations(bool draw)
Sets whether annotations are drawn within the map.
Definition: qgslayoutitemmap.h:620
QgsLayoutItemMap::keepLayerSet
bool keepLayerSet() const
Returns whether a stored layer set should be used or the current layer set from the project associate...
Definition: qgslayoutitemmap.h:495