20#include <QGraphicsScene>
63 ZMouseHandles = 10000,
65 ZSnapIndicator = 10002,
96 void initializeDefaults();
121 template<class T>
void layoutItems( QList<T *> &itemList ) const
SIP_SKIP
124 QList<QGraphicsItem *> graphicsItemList = items();
125 QList<QGraphicsItem *>::iterator itemIt = graphicsItemList.begin();
126 for ( ; itemIt != graphicsItemList.end(); ++itemIt )
128 T *item =
dynamic_cast<T *
>( *itemIt );
131 itemList.push_back( item );
143 const QList<QGraphicsItem *> itemList( items() );
144 const QList<QgsLayoutMultiFrame *> frameList( multiFrames() );
145 for (
const auto &obj : itemList )
147 T *item =
dynamic_cast<T *
>( obj );
150 objectList.push_back( item );
153 for (
const auto &obj : frameList )
155 T *item =
dynamic_cast<T *
>( obj );
158 objectList.push_back( item );
169 QList<QgsLayoutItem *> selectedLayoutItems(
bool includeLockedItems =
true );
196 bool raiseItem(
QgsLayoutItem *item,
bool deferUpdate =
false );
210 bool lowerItem(
QgsLayoutItem *item,
bool deferUpdate =
false );
224 bool moveItemToTop(
QgsLayoutItem *item,
bool deferUpdate =
false );
237 bool moveItemToBottom(
QgsLayoutItem *item,
bool deferUpdate =
false );
244 void updateZValues(
bool addUndoCommands =
true );
261 QgsLayoutItem *itemByUuid(
const QString &uuid,
bool includeTemplateUuids =
false )
const;
278 QgsLayoutItem *itemByTemplateUuid(
const QString &uuid )
const;
301 QgsLayoutMultiFrame *multiFrameByUuid(
const QString &uuid,
bool includeTemplateUuids =
false )
const;
308 QgsLayoutItem *layoutItemAt( QPointF position,
bool ignoreLocked =
false,
double searchTolerance = 0 )
const;
315 QgsLayoutItem *layoutItemAt( QPointF position,
const QgsLayoutItem *belowItem,
bool ignoreLocked =
false,
double searchTolerance = 0 )
const;
346 QSizeF convertToLayoutUnits(
const QgsLayoutSize &size )
const;
354 QPointF convertToLayoutUnits(
const QgsLayoutPoint &point )
const;
431 void reloadSettings();
457 void setCustomProperty(
const QString &key,
const QVariant &value );
468 QVariant customProperty(
const QString &key,
const QVariant &defaultValue = QVariant() )
const;
477 void removeCustomProperty(
const QString &key );
485 QStringList customProperties()
const;
523 QRectF layoutBounds(
bool ignorePages =
false,
double margin = 0.0 )
const;
535 QRectF pageItemBounds(
int page,
bool visibleOnly =
false )
const;
569 QList< QgsLayoutMultiFrame * > multiFrames()
const;
589 QList< QgsLayoutItem * > loadFromTemplate(
const QDomDocument &document,
const QgsReadWriteContext &context,
bool clearExisting =
true,
bool *ok
SIP_OUT =
nullptr );
595 virtual QDomElement writeXml( QDomDocument &document,
const QgsReadWriteContext &context )
const;
601 virtual bool readXml(
const QDomElement &layoutElement,
const QDomDocument &document,
const QgsReadWriteContext &context );
615 QList< QgsLayoutItem * > addItemsFromXml(
const QDomElement &parentElement,
const QDomDocument &document,
617 QPointF *position =
nullptr,
bool pasteInPlace =
false );
725 void itemBackgroundTaskCountChanged(
int count );
730 std::unique_ptr< QgsLayoutModel > mItemsModel;
740 std::unique_ptr< QgsLayoutPageCollection > mPageCollection;
741 std::unique_ptr< QgsLayoutUndoStack > mUndoStack;
744 QList<QgsLayoutMultiFrame *> mMultiFrames;
747 QString mWorldFileMapId;
749 QHash< QgsLayoutItem *, int > mBackgroundTaskCount;
752 void writeXmlLayoutSettings( QDomElement &element, QDomDocument &document,
const QgsReadWriteContext &context )
const;
754 bool readXmlLayoutSettings(
const QDomElement &layoutElement,
const QDomDocument &document,
const QgsReadWriteContext &context );
766 void deleteAndRemoveMultiFrames();
769 QPointF minPointFromXml(
const QDomElement &elem )
const;
774 friend class QgsLayoutItemAddItemCommand;
775 friend class QgsLayoutItemDeleteUndoCommand;
776 friend class QgsLayoutItemUndoCommand;
777 friend class QgsLayoutUndoCommand;
778 friend class QgsLayoutItemGroupUndoCommand;
LayoutUnit
Layout measurement units.
@ Millimeters
Millimeters.
Base class for commands to undo/redo layout and layout object changes.
QgsCompositionConverter class 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.
This class provides a method of storing measurements for use in QGIS layouts using a variety of diffe...
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.
This class provides a method of storing points, consisting of an x and y coordinate,...
Stores information relating to the current rendering settings for a layout.
Stores information relating to the current reporting context for a layout.
This class provides a method of storing sizes, consisting of a width and height, for use in QGIS layo...
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,...
The class is used as a container of context for various read/write operations on other objects.
A string list settings entry.
An interface for classes which can visit style entity (e.g.