20#include <QGraphicsScene> 
   62      ZMouseHandles = 10000, 
 
   64      ZSnapIndicator = 10002, 
 
 
   95    void initializeDefaults();
 
  120    template<class T> 
void layoutItems( QList<T *> &itemList ) const 
SIP_SKIP 
  123      QList<QGraphicsItem *> graphicsItemList = items();
 
  124      QList<QGraphicsItem *>::iterator itemIt = graphicsItemList.begin();
 
  125      for ( ; itemIt != graphicsItemList.end(); ++itemIt )
 
  127        T *item = 
dynamic_cast<T *
>( *itemIt );
 
  130          itemList.push_back( item );
 
 
  142      const QList<QGraphicsItem *> itemList( items() );
 
  143      const QList<QgsLayoutMultiFrame *> frameList( multiFrames() );
 
  144      for ( 
const auto &obj :  itemList )
 
  146        T *item = 
dynamic_cast<T *
>( obj );
 
  149          objectList.push_back( item );
 
  152      for ( 
const auto &obj :  frameList )
 
  154        T *item = 
dynamic_cast<T *
>( obj );
 
  157          objectList.push_back( item );
 
 
  168    QList<QgsLayoutItem *> selectedLayoutItems( 
bool includeLockedItems = 
true );
 
  195    bool raiseItem( 
QgsLayoutItem *item, 
bool deferUpdate = 
false );
 
  209    bool lowerItem( 
QgsLayoutItem *item, 
bool deferUpdate = 
false );
 
  223    bool moveItemToTop( 
QgsLayoutItem *item, 
bool deferUpdate = 
false );
 
  236    bool moveItemToBottom( 
QgsLayoutItem *item, 
bool deferUpdate = 
false );
 
  243    void updateZValues( 
bool addUndoCommands = 
true );
 
  260    QgsLayoutItem *itemByUuid( 
const QString &uuid, 
bool includeTemplateUuids = 
false ) 
const;
 
  277    QgsLayoutItem *itemByTemplateUuid( 
const QString &uuid ) 
const;
 
  300    QgsLayoutMultiFrame *multiFrameByUuid( 
const QString &uuid, 
bool includeTemplateUuids = 
false ) 
const;
 
  307    QgsLayoutItem *layoutItemAt( QPointF position, 
bool ignoreLocked = 
false, 
double searchTolerance = 0 ) 
const;
 
  314    QgsLayoutItem *layoutItemAt( QPointF position, 
const QgsLayoutItem *belowItem, 
bool ignoreLocked = 
false, 
double searchTolerance = 0 ) 
const;
 
  345    QSizeF convertToLayoutUnits( 
const QgsLayoutSize &size ) 
const;
 
  353    QPointF convertToLayoutUnits( 
const QgsLayoutPoint &point ) 
const;
 
  430    void reloadSettings();
 
  456    void setCustomProperty( 
const QString &key, 
const QVariant &value );
 
  467    QVariant customProperty( 
const QString &key, 
const QVariant &defaultValue = QVariant() ) 
const;
 
  476    void removeCustomProperty( 
const QString &key );
 
  484    QStringList customProperties() 
const;
 
  522    QRectF layoutBounds( 
bool ignorePages = 
false, 
double margin = 0.0 ) 
const;
 
  534    QRectF pageItemBounds( 
int page, 
bool visibleOnly = 
false ) 
const;
 
  568    QList< QgsLayoutMultiFrame * > multiFrames() 
const;
 
  588    QList< QgsLayoutItem * > loadFromTemplate( 
const QDomDocument &document, 
const QgsReadWriteContext &context, 
bool clearExisting = 
true, 
bool *ok 
SIP_OUT = 
nullptr );
 
  594    virtual QDomElement writeXml( QDomDocument &document, 
const QgsReadWriteContext &context ) 
const;
 
  600    virtual bool readXml( 
const QDomElement &layoutElement, 
const QDomDocument &document, 
const QgsReadWriteContext &context );
 
  614    QList< QgsLayoutItem * > addItemsFromXml( 
const QDomElement &parentElement, 
const QDomDocument &document,
 
  616        QPointF *position = 
nullptr, 
bool pasteInPlace = 
false );
 
  724    void itemBackgroundTaskCountChanged( 
int count );
 
  729    std::unique_ptr< QgsLayoutModel > mItemsModel;
 
  739    std::unique_ptr< QgsLayoutPageCollection > mPageCollection;
 
  740    std::unique_ptr< QgsLayoutUndoStack > mUndoStack;
 
  743    QList<QgsLayoutMultiFrame *> mMultiFrames;
 
  746    QString mWorldFileMapId;
 
  748    QHash< QgsLayoutItem *, int > mBackgroundTaskCount;
 
  751    void writeXmlLayoutSettings( QDomElement &element, QDomDocument &document, 
const QgsReadWriteContext &context ) 
const;
 
  753    bool readXmlLayoutSettings( 
const QDomElement &layoutElement, 
const QDomDocument &document, 
const QgsReadWriteContext &context );
 
  765    void deleteAndRemoveMultiFrames();
 
  768    QPointF minPointFromXml( 
const QDomElement &elem ) 
const;
 
  773    friend class QgsLayoutItemAddItemCommand;
 
  774    friend class QgsLayoutItemDeleteUndoCommand;
 
  775    friend class QgsLayoutItemUndoCommand;
 
  776    friend class QgsLayoutUndoCommand;
 
  777    friend class QgsLayoutItemGroupUndoCommand;
 
 
LayoutUnit
Layout measurement units.
 
@ 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.
 
Abstract interface for generating an expression context.
 
virtual QgsExpressionContext createExpressionContext() const =0
This method needs to be reimplemented in all classes which implement this interface and return an exp...
 
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
 
Contains settings relating to the appearance, spacing and offset for layout grids.
 
Stores and manages the snap guides used by a layout.
 
A container for grouping several QgsLayoutItems.
 
Layout graphical items for displaying a map.
 
Base class for graphical items within a QgsLayout.
 
Provides a method of storing measurements for use in QGIS layouts using a variety of different measur...
 
A model for items attached to a layout.
 
Abstract base class for layout items with the ability to distribute the content to several frames (Qg...
 
A manager for a collection of pages in a layout.
 
Provides a method of storing points, consisting of an x and y coordinate, for use in QGIS layouts.
 
Stores information relating to the current rendering settings for a layout.
 
Stores information relating to the current reporting context for a layout.
 
Provides a method of storing sizes, consisting of a width and height, for use in QGIS layouts.
 
Manages snapping grids and preset snap lines in a layout, and handles snapping points to the nearest ...
 
Interface for layout objects which support undo/redo commands.
 
virtual QgsAbstractLayoutUndoCommand * createCommand(const QString &text, int id=0, QUndoCommand *parent=nullptr)=0
Creates a new layout undo command with the specified text and parent.
 
An undo stack for QgsLayouts.
 
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.
 
QgsLayoutSnapper & snapper()
Returns a reference to the layout's snapper, which stores handles layout snap grids and lines and sna...
 
void variablesChanged()
Emitted whenever the expression variables stored in the layout have been changed.
 
void setUnits(Qgis::LayoutUnit units)
Sets the native measurement units for the layout.
 
const QgsLayoutGridSettings & gridSettings() const
Returns a reference to the layout's grid settings, which stores settings relating to grid appearance,...
 
void changed()
Emitted when properties of the layout change.
 
void layoutObjects(QList< T * > &objectList) const
Returns a list of layout objects (items and multiframes) of a specific type.
 
static const QgsSettingsEntryStringList * settingsSearchPathForTemplates
Settings entry search path for templates.
 
void selectedItemChanged(QgsLayoutItem *selected)
Emitted whenever the selected item changes.
 
const QgsLayoutSnapper & snapper() const
Returns a reference to the layout's snapper, which stores handles layout snap grids and lines and sna...
 
QgsLayoutGridSettings & gridSettings()
Returns a reference to the layout's grid settings, which stores settings relating to grid appearance,...
 
void backgroundTaskCountChanged(int total)
Emitted whenever the total number of background tasks running in items from the layout changes.
 
void refreshed()
Emitted when the layout has been refreshed and items should also be refreshed and updated.
 
ZValues
Preset item z-values, to ensure correct stacking.
 
Qgis::LayoutUnit units() const
Returns the native units for the layout.
 
void itemAdded(QgsLayoutItem *item)
Emitted when an item was added to the layout.
 
UndoCommand
Layout undo commands, used for collapsing undo commands.
 
@ UndoLayoutDpi
Change layout default DPI.
 
Simple key-value store (keys = strings, values = variants) that supports loading/saving to/from XML i...
 
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
 
A container for the context for various read/write operations on objects.
 
A string list settings entry.
 
An interface for classes which can visit style entity (e.g.