26#include <QGraphicsScene>
95 void initializeDefaults();
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,
const QgsReadWriteContext &context, QPointF *position =
nullptr,
bool pasteInPlace =
false );
722 void itemBackgroundTaskCountChanged(
int count );
726 std::unique_ptr< QgsLayoutModel > mItemsModel;
736 std::unique_ptr< QgsLayoutPageCollection > mPageCollection;
737 std::unique_ptr< QgsLayoutUndoStack > mUndoStack;
740 QList<QgsLayoutMultiFrame *> mMultiFrames;
743 QString mWorldFileMapId;
745 QHash< QgsLayoutItem *, int > mBackgroundTaskCount;
748 void writeXmlLayoutSettings( QDomElement &element, QDomDocument &document,
const QgsReadWriteContext &context )
const;
750 bool readXmlLayoutSettings(
const QDomElement &layoutElement,
const QDomDocument &document,
const QgsReadWriteContext &context );
762 void deleteAndRemoveMultiFrames();
765 QPointF minPointFromXml(
const QDomElement &elem )
const;
LayoutUnit
Layout measurement units.
@ Millimeters
Millimeters.
Base class for commands to undo/redo layout and layout object changes.
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.
friend class QgsLayoutItemDeleteUndoCommand
void updateBounds()
Updates the scene bounds of the layout.
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 layoutItems(QList< T * > &itemList) const
Returns a list of layout items of a specific type.
void setUnits(Qgis::LayoutUnit units)
Sets the native measurement units for the layout.
friend class QgsLayoutItemUndoCommand
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.
friend class QgsLayoutMultiFrame
void layoutObjects(QList< T * > &objectList) const
Returns a list of layout objects (items and multiframes) of a specific type.
friend class QgsLayoutItemAddItemCommand
friend class QgsLayoutUndoCommand
friend class QgsLayoutModel
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 refresh()
Forces the layout, and all items contained within it, to refresh.
void backgroundTaskCountChanged(int total)
Emitted whenever the total number of background tasks running in items from the layout changes.
friend class QgsCompositionConverter
void refreshed()
Emitted when the layout has been refreshed and items should also be refreshed and updated.
friend class QgsLayoutItemGroupUndoCommand
QList< QgsLayoutMultiFrame * > multiFrames() const
Returns a list of multi frames contained in the layout.
ZValues
Preset item z-values, to ensure correct stacking.
@ ZMouseHandles
Z-value for mouse handles.
@ ZSmartGuide
Z-value for smart (item bounds based) guides.
@ ZItem
Minimum z value for items.
@ ZGuide
Z-value for page guides.
@ ZPage
Z-value for page (paper) items.
@ ZSnapIndicator
Z-value for snapping indicator.
@ ZViewTool
Z-value for temporary view tool items.
@ ZGrid
Z-value for page grids.
Qgis::LayoutUnit units() const
Returns the native units for the layout.
void itemAdded(QgsLayoutItem *item)
Emitted when an item was added to the layout.
QgsLayout(QgsProject *project)
Construct a new layout linked to the specified project.
UndoCommand
Layout undo commands, used for collapsing undo commands.
@ UndoLayoutDpi
Change layout default DPI.
@ UndoNone
No command suppression.
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.