17#ifndef QGSLAYOUTITEM_H 
   18#define QGSLAYOUTITEM_H 
   27#include <QGraphicsRectItem> 
   98    double mViewScaleFactor = 1.0;
 
 
  132    switch ( sipCpp->type() )
 
  135      case QGraphicsItem::UserType + 101:
 
  136        sipType = sipType_QgsLayoutItemGroup;
 
  139      case QGraphicsItem::UserType + 102:
 
  140        sipType = sipType_QgsLayoutItemPage;
 
  143      case QGraphicsItem::UserType + 103:
 
  144        sipType = sipType_QgsLayoutItemMap;
 
  147      case QGraphicsItem::UserType + 104:
 
  148        sipType = sipType_QgsLayoutItemPicture;
 
  151      case QGraphicsItem::UserType + 105:
 
  152        sipType = sipType_QgsLayoutItemLabel;
 
  155      case QGraphicsItem::UserType + 106:
 
  156        sipType = sipType_QgsLayoutItemLegend;
 
  159      case QGraphicsItem::UserType + 107:
 
  160        sipType = sipType_QgsLayoutItemShape;
 
  163      case QGraphicsItem::UserType + 108:
 
  164        sipType = sipType_QgsLayoutItemPolygon;
 
  167      case QGraphicsItem::UserType + 109:
 
  168        sipType = sipType_QgsLayoutItemPolyline;
 
  171      case QGraphicsItem::UserType + 110:
 
  172        sipType = sipType_QgsLayoutItemScaleBar;
 
  175      case QGraphicsItem::UserType + 111:
 
  176        sipType = sipType_QgsLayoutFrame;
 
  179      case QGraphicsItem::UserType + 117:
 
  180        sipType = sipType_QgsLayoutItemMarker;
 
  183      case QGraphicsItem::UserType + 118:
 
  184        sipType = sipType_QgsLayoutItemElevationProfile;
 
  198    Q_PROPERTY( 
bool locked READ isLocked WRITE setLocked NOTIFY lockChanged )
 
  220      UndoIncrementalMove = 1, 
 
 
  331      FlagOverridesPaint = 1 << 1,  
 
  332      FlagProvidesClipPath = 1 << 2, 
 
  333      FlagDisableSceneCaching = 1 << 3, 
 
 
  351    virtual void cleanup();
 
  358    int type() 
const override;
 
  363    virtual QIcon icon() 
const;
 
  372    virtual QString 
uuid()
 const { 
return mUuid; }
 
  378    virtual Flags itemFlags() 
const;
 
  386    QString 
id()
 const { 
return mId; }
 
  394    virtual void setId( 
const QString &
id );
 
  402    virtual QString displayName() 
const;
 
  407    virtual void setSelected( 
bool selected );
 
  415    virtual void setVisibility( 
bool visible );
 
  422    void setLocked( 
bool locked );
 
  436    bool isGroupMember() 
const;
 
  472    virtual ExportLayerBehavior exportLayerBehavior() 
const;
 
  487    Q_DECL_DEPRECATED 
virtual int numberExportLayers() const 
SIP_DEPRECATED;
 
  496    virtual 
void startLayeredExport();
 
  505    virtual 
void stopLayeredExport();
 
  514    virtual 
bool nextExportPart();
 
  533      QPainter::CompositionMode compositionMode = QPainter::CompositionMode_SourceOver;
 
  539      double opacity = 1.0;
 
 
  566    void paint( QPainter *painter, 
const QStyleOptionGraphicsItem *itemStyle, QWidget *pWidget ) 
override;
 
  614    virtual void attemptResize( 
const QgsLayoutSize &size, 
bool includesFrame = 
false );
 
  641    virtual void attemptMove( 
const QgsLayoutPoint &point, 
bool useReferencePoint = 
true, 
bool includesFrame = 
false, 
int page = -1 );
 
  658    void attemptSetSceneRect( 
const QRectF &rect, 
bool includesFrame = 
false );
 
  672    void attemptMoveBy( 
double deltaX, 
double deltaY );
 
  695    QPointF pagePos() 
const;
 
  721    double itemRotation() 
const;
 
  730    bool writeXml( QDomElement &parentElement, QDomDocument &document, 
const QgsReadWriteContext &context ) 
const;
 
  747    bool readXml( 
const QDomElement &itemElement, 
const QDomDocument &document, 
const QgsReadWriteContext &context );
 
  757    virtual void finalizeRestoreFromXml();
 
  768    bool frameEnabled()
 const { 
return mFrame; }
 
  777    virtual void setFrameEnabled( 
bool drawFrame );
 
  786    void setFrameStrokeColor( 
const QColor &color );
 
  831    void setFrameJoinStyle( Qt::PenJoinStyle style );
 
  845    void setBackgroundEnabled( 
bool drawBackground );
 
  854    QColor backgroundColor( 
bool useDataDefined = 
true ) 
const;
 
  861    void setBackgroundColor( 
const QColor &color );
 
  867    QPainter::CompositionMode 
blendMode()
 const { 
return mBlendMode; }
 
  873    void setBlendMode( QPainter::CompositionMode mode );
 
  891    void setItemOpacity( 
double opacity );
 
  897    bool excludeFromExports() 
const;
 
  903    void setExcludeFromExports( 
bool exclude );
 
  914    virtual bool containsAdvancedEffects() 
const;
 
  921    virtual bool requiresRasterization() 
const;
 
  933    virtual double estimatedFrameBleed() 
const;
 
  944    virtual QRectF rectWithFrame() 
const;
 
  952    virtual void moveContent( 
double dx, 
double dy );
 
  960    virtual void setMoveContentPreviewOffset( 
double dx, 
double dy );
 
  968    virtual void zoomContent( 
double factor, QPointF point );
 
  978    void beginCommand( 
const QString &commandText, UndoCommand command = UndoNone );
 
  992    void cancelCommand();
 
  997    bool shouldDrawItem() 
const;
 
 1027    virtual bool isRefreshing() 
const;
 
 1035    void refresh() 
override;
 
 1040    virtual void invalidateCache();
 
 1045    virtual void redraw();
 
 1064    virtual void setItemRotation( 
double rotation, 
bool adjustPosition = 
true );
 
 1071    virtual void rotateItem( 
double angle, QPointF transformOrigin );
 
 1120    virtual void drawDebugRect( QPainter *painter );
 
 1137    virtual QPainterPath framePath() 
const;
 
 1158    void drawRefreshingOverlay( QPainter *painter, 
const QStyleOptionGraphicsItem *itemStyle );
 
 1184    virtual QSizeF applyItemSizeConstraint( QSizeF targetSize );
 
 1193    void refreshItemSize();
 
 1200    void refreshItemPosition();
 
 1212    void refreshItemRotation( QPointF *origin = 
nullptr );
 
 1219    void refreshOpacity( 
bool updateItem = 
true );
 
 1226    void refreshFrame( 
bool updateItem = 
true );
 
 1233    void refreshBackgroundColor( 
bool updateItem = 
true );
 
 1238    void refreshBlendMode();
 
 1244    QPointF adjustPointForReferencePosition( QPointF point, QSizeF size, 
ReferencePoint reference ) 
const;
 
 1249    QPointF positionAtReferencePoint( 
ReferencePoint reference ) 
const;
 
 1265    virtual bool writePropertiesToElement( QDomElement &element, QDomDocument &document, 
const QgsReadWriteContext &context ) 
const;
 
 1282    virtual bool readPropertiesFromElement( 
const QDomElement &element, 
const QDomDocument &document, 
const QgsReadWriteContext &context );
 
 1292    bool mLayoutManagesZValue = 
false;
 
 1301    QString mTemplateUuid;
 
 1304    QString mParentGroupUuid;
 
 1312    double mItemRotation = 0.0;
 
 1315    bool mExcludeFromExports = 
false;
 
 1321    bool mEvaluatedExcludeFromExports = 
false;
 
 1324    QPainter::CompositionMode mBlendMode = QPainter::CompositionMode_SourceOver;
 
 1326    QPainter::CompositionMode mEvaluatedBlendMode = QPainter::CompositionMode_SourceOver;
 
 1328    QPainter::CompositionMode blendModeForRender() 
const;
 
 1331    double mOpacity = 1.0;
 
 1332    double mEvaluatedOpacity = 1.0;
 
 1334    QImage mItemCachedImage;
 
 1335    double mItemCacheDpi = -1;
 
 1337    bool mIsLocked = 
false;
 
 1340    bool mFrame = 
false;
 
 1342    QColor mFrameColor = QColor( 0, 0, 0 );
 
 1346    Qt::PenJoinStyle mFrameJoinStyle = Qt::MiterJoin;
 
 1349    bool mBackground = 
true;
 
 1351    QColor mBackgroundColor = QColor( 255, 255, 255 );
 
 1353    bool mBlockUndoCommands = 
false;
 
 1355    void initConnectionsToLayout();
 
 1358    void preparePainter( QPainter *painter );
 
 1359    bool shouldDrawAntialiased() 
const;
 
 1360    bool shouldDrawDebugRect() 
const;
 
 1361    QSizeF applyMinimumSize( QSizeF targetSize );
 
 1362    QSizeF applyFixedSize( QSizeF targetSize );
 
 1365    double applyDataDefinedRotation( 
double rotation );
 
 1366    void updateStoredItemPosition();
 
 1367    QPointF itemPositionAtReferencePoint( 
ReferencePoint reference, QSizeF size ) 
const;
 
 1368    void setScenePos( QPointF destinationPos );
 
 1369    bool shouldBlockUndoCommands() 
const;
 
 1371    void applyDataDefinedOrientation( 
double &width, 
double &height, 
const QgsExpressionContext &context );
 
 1373    friend class TestQgsLayoutItem;
 
 1374    friend class TestQgsLayoutView;
 
 
@ Millimeters
Millimeters.
 
Base class for commands to undo/redo layout and layout object changes.
 
Converts a QGIS 2.x composition to a QGIS 3.x layout.
 
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
 
A geometry is the spatial representation of a feature.
 
A QGraphicsEffect subclass used for rendering layout items onto a scene with custom composition modes...
 
Base class for frame items, which form a layout multiframe item.
 
A layout item subclass for elevation profile plots.
 
A container for grouping several QgsLayoutItems.
 
A layout item subclass for text labels.
 
A layout item subclass for map legends.
 
Layout graphical items for displaying a map.
 
A layout item for showing marker symbols.
 
Item representing the paper in a layout.
 
A layout item subclass that displays SVG files or raster format images (jpg, png, ....
 
Layout item for node based polygon shapes.
 
Layout item for node based polyline shapes.
 
Contains settings and helpers relating to a render of a QgsLayoutItem.
 
QgsLayoutItemRenderContext & operator=(const QgsLayoutItemRenderContext &other)=delete
 
QgsRenderContext & renderContext()
Returns a reference to the context's render context.
 
double viewScaleFactor() const
Returns the current view zoom (scale factor).
 
QgsLayoutItemRenderContext(const QgsLayoutItemRenderContext &other)=delete
 
const QgsRenderContext & renderContext() const
Returns a reference to the context's render context.
 
A layout item subclass for scale bars.
 
Layout item for basic filled shapes (e.g.
 
Base class for graphical items within a QgsLayout.
 
QgsLayoutSize sizeWithUnits() const
Returns the item's current size, including units.
 
UndoCommand
Layout item undo commands, used for collapsing undo commands.
 
@ UndoScaleBarSubdivisionsHeight
Scalebar subdivisions height.
 
@ UndoPictureStrokeWidth
Picture stroke width.
 
@ UndoLegendMinSymbolSize
Legend minimum symbol size.
 
@ UndoArrowHeadStrokeColor
Arrow head stroke color.
 
@ UndoLegendTitleSpaceBottom
Legend title space.
 
@ UndoScaleBarLabelBarSize
Scalebar label bar size.
 
@ UndoLegendIconSymbolSpace
Legend icon symbol space.
 
@ UndoLegendLayerFont
Legend layer font.
 
@ UndoShapeCornerRadius
Shape corner radius.
 
@ UndoLegendLineSpacing
Legend line spacing.
 
@ UndoLegendBoxSpace
Legend box space.
 
@ UndoScaleBarFillColor
Scalebar fill color.
 
@ UndoArrowHeadFillColor
Arrow head fill color.
 
@ UndoLegendRasterStrokeColor
Legend raster stroke color.
 
@ UndoLabelFontColor
Label color.
 
@ UndoScaleBarMapUnitsSegment
Scalebar map units per segment.
 
@ UndoElevationProfileElevationMajorGridlines
Change elevation profile elevation axis major gridlines.
 
@ UndoLegendTitleFont
Legend title font.
 
@ UndoBackgroundColor
Background color adjustment.
 
@ UndoLegendFontColor
Legend font color.
 
@ UndoElevationProfileMaximumDistance
Change elevation profile maximum distance.
 
@ UndoScaleBarBoxContentSpace
Scalebar box context space.
 
@ UndoOverviewStyle
Map overview style.
 
@ UndoElevationProfileChartBackground
Change elevation profile chart background.
 
@ UndoGridFramePenColor
Map grid frame pen color.
 
@ UndoMapRotation
Map rotation changed.
 
@ UndoOpacity
Opacity adjustment.
 
@ UndoIncrementalResize
Incremental resize.
 
@ UndoArrowHeadWidth
Arrow head width.
 
@ UndoElevationProfileDistanceMinorGridlines
Change elevation profile distance axis minor gridlines.
 
@ UndoScaleBarSegmentSize
Scalebar segment size.
 
@ UndoMarginTop
Top margin.
 
@ UndoLegendItemFont
Legend item font.
 
@ UndoLegendWmsLegendWidth
Legend WMS width.
 
@ UndoMapGridIntervalRange
Grid interval range.
 
@ UndoLegendLayerSpace
Legend layer spacing.
 
@ UndoLabelMargin
Label margin.
 
@ UndoRotation
Rotation adjustment.
 
@ UndoLegendColumnSpace
Legend column space.
 
@ UndoPictureRotation
Picture rotation.
 
@ UndoStrokeWidth
Stroke width adjustment.
 
@ UndoScaleBarFillColor2
Scalebar secondary fill color.
 
@ UndoScaleBarHeight
Scalebar height.
 
@ UndoLegendMaxSymbolSize
Legend maximum symbol size.
 
@ UndoArrowStrokeWidth
Arrow stroke width.
 
@ UndoElevationProfileChartBorder
Change elevation profile chart border.
 
@ UndoMapGridLineSymbol
Grid line symbol.
 
@ UndoExportLayerName
Export layer name.
 
@ UndoZoomContent
Item content zoomed.
 
@ UndoScaleBarFontColor
Scalebar font color.
 
@ UndoElevationProfileMaximumElevation
Change elevation profile maximum elevation.
 
@ UndoMarginLeft
Left margin.
 
@ UndoLegendAutoWrapAfter
Legend auto wrap lines after distance.
 
@ UndoMarginRight
Right margin.
 
@ UndoMapGridMarkerSymbol
Grid marker symbol.
 
@ UndoAtlasMargin
Map atlas margin changed.
 
@ UndoPictureFillColor
Picture fill color.
 
@ UndoLegendSymbolSpace
Legend symbol spacing.
 
@ UndoMapGridFrameFill1Color
Map grid frame fill color 1.
 
@ UndoElevationProfileTolerance
Change elevation profile distance tolerance.
 
@ UndoElevationProfileElevationFormat
Change elevation profile elevation axis number format.
 
@ UndoLegendSymbolWidth
Legend symbol width.
 
@ UndoLegendColumnCount
Legend column count.
 
@ UndoScaleBarSegments
Scalebar number of segments.
 
@ UndoLegendSymbolHeight
Legend symbol height.
 
@ UndoElevationProfileMinimumElevation
Change elevation profile minimum elevation.
 
@ UndoElevationProfileDistanceLabels
Change elevation profile distance axis label interval.
 
@ UndoLegendGroupSpace
Legend group spacing.
 
@ UndoScaleBarSubdivisions
Scalebar number of subdivisions.
 
@ UndoMarginBottom
Bottom margin.
 
@ UndoSetId
Change item ID.
 
@ UndoLegendSubgroupIndent
Legend subgroup indent.
 
@ UndoScaleBarLineWidth
Scalebar line width.
 
@ UndoElevationProfileElevationFont
Change elevation profile elevation axis number font.
 
@ UndoLegendRasterStrokeWidth
Legend raster stroke width.
 
@ UndoLegendGroupIndent
Legend group indent.
 
@ UndoElevationProfileDistanceFormat
Change elevation profile distance axis number format.
 
@ UndoMapGridAnnotationFontColor
Map frame annotation color.
 
@ UndoPictureNorthOffset
Picture north offset.
 
@ UndoElevationProfileElevationMinorGridlines
Change elevation profile elevation axis minor gridlines.
 
@ UndoCustomCommand
Base id for plugin based item undo commands.
 
@ UndoLabelFont
Label font.
 
@ UndoPictureStrokeColor
Picture stroke color.
 
@ UndoElevationProfileDistanceFont
Change elevation profile distance axis number font.
 
@ UndoMapAnnotationDistance
Map frame annotation distance.
 
@ UndoScaleBarStrokeColor
Scalebar stroke color.
 
@ UndoShapeStyle
Shape symbol style.
 
@ UndoStrokeColor
Stroke color adjustment.
 
@ UndoElevationProfileElevationLabels
Change elevation profile elevation axis label interval.
 
@ UndoScaleBarSegmentsLeft
Scalebar segments left.
 
@ UndoElevationProfileDistanceMajorGridlines
Change elevation profile distance axis major gridlines.
 
@ UndoLegendText
Legend text.
 
@ UndoMapGridFrameFill2Color
Map grid frame fill color 2.
 
@ UndoScaleBarUnitText
Scalebar unit text.
 
@ UndoMapLabelMargin
Margin for labels from edge of map.
 
@ UndoLegendWmsLegendHeight
Legend WMS height.
 
@ UndoElevationProfileMinimumDistance
Change elevation profile minimum distance.
 
@ UndoLabelText
Label text.
 
@ UndoLegendGroupFont
Legend group font.
 
@ UndoElevationProfileSubsectionLines
Change elevation profile subsection indicator symbol.
 
void rotationChanged(double newRotation)
Emitted on item rotation change.
 
QgsLayoutMeasurement frameStrokeWidth() const
Returns the frame's stroke width.
 
bool isLocked() const
Returns true if the item is locked, and cannot be interacted with using the mouse.
 
double itemOpacity() const
Returns the item's opacity.
 
ReferencePoint referencePoint() const
Returns the reference point for positioning of the layout item.
 
QgsLayoutPoint positionWithUnits() const
Returns the item's current position, including units.
 
ReferencePoint
Fixed position reference point.
 
@ LowerMiddle
Lower center of item.
 
@ MiddleLeft
Middle left of item.
 
@ UpperRight
Upper right corner of item.
 
@ LowerLeft
Lower left corner of item.
 
@ UpperLeft
Upper left corner of item.
 
@ UpperMiddle
Upper center of item.
 
@ MiddleRight
Middle right of item.
 
@ LowerRight
Lower right corner of item.
 
virtual QgsLayoutSize minimumSize() const
Returns the minimum allowed size of the item, if applicable, or an empty size if item can be freely r...
 
Flag
Flags for controlling how an item behaves.
 
virtual QgsLayoutSize fixedSize() const
Returns the fixed size of the item, if applicable, or an empty size if item can be freely resized.
 
void sizePositionChanged()
Emitted when the item's size or position changes.
 
void lockChanged()
Emitted if the item's lock status changes.
 
virtual QString uuid() const
Returns the item identification string.
 
QString id() const
Returns the item's ID name.
 
void frameChanged()
Emitted if the item's frame style changes.
 
ExportLayerBehavior
Behavior of item when exporting to layered outputs.
 
@ ItemContainsSubLayers
Item contains multiple sublayers which must be individually exported.
 
@ MustPlaceInOwnLayer
Item must be placed in its own individual layer.
 
@ CanGroupWithItemsOfSameType
Item can only be placed on layers with other items of the same type, but multiple items of this type ...
 
@ CanGroupWithAnyOtherItem
Item can be placed on a layer with any other item (default behavior)
 
void clipPathChanged()
Emitted when the item's clipping path has changed.
 
bool hasBackground() const
Returns true if the item has a background.
 
QColor frameStrokeColor() const
Returns the frame's stroke color.
 
QPainter::CompositionMode blendMode() const
Returns the item's composition blending mode.
 
virtual void draw(QgsLayoutItemRenderContext &context)=0
Draws the item's contents using the specified item render context.
 
void backgroundTaskCountChanged(int count)
Emitted whenever the number of background tasks an item is executing changes.
 
Qt::PenJoinStyle frameJoinStyle() const
Returns the join style used for drawing the item's frame.
 
Provides a method of storing measurements for use in QGIS layouts using a variety of different measur...
 
A base class for objects which belong to a layout.
 
DataDefinedProperty
Data defined properties for different item types.
 
@ AllProperties
All properties for item.
 
Provides a method of storing points, consisting of an x and y coordinate, for use in QGIS layouts.
 
Provides a method of storing sizes, consisting of a width and height, for use in QGIS layouts.
 
Interface for layout objects which support undo/redo commands.
 
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.
 
A container for the context for various read/write operations on objects.
 
Contains information about the context of a rendering operation.
 
An interface for classes which can visit style entity (e.g.
 
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
 
#define SIP_ENUM_BASETYPE(type)
 
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsTextRendererUtils::CurvedTextFlags)
 
Contains details of a particular export layer relating to a layout item.
 
QString mapLayerId
Associated map layer ID, or an empty string if this export layer is not associated with a map layer.
 
QString name
User-friendly name for the export layer.
 
QString groupName
Associated group name, if this layer is associated with an export group.
 
QString mapTheme
Associated map theme, or an empty string if this export layer does not need to be associated with a m...