QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgslayoutframe.h
Go to the documentation of this file.
1/***************************************************************************
2 qgslayoutframe.cpp
3 ------------------
4 begin : October 2017
5 copyright : (C) 2017 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#ifndef QGSLAYOUTFRAME_H
17#define QGSLAYOUTFRAME_H
18
19#include "qgis_core.h"
20#include "qgis_sip.h"
21#include "qgslayoutitem.h"
22
23class QgsLayout;
25
30class CORE_EXPORT QgsLayoutFrame: public QgsLayoutItem
31{
32 Q_OBJECT
33
34 public:
35
40 QgsLayoutFrame( QgsLayout *layout, QgsLayoutMultiFrame *multiFrame );
41 ~QgsLayoutFrame() override;
42
46 static QgsLayoutFrame *create( QgsLayout *layout ) SIP_FACTORY;
47
48 int type() const override;
49 QIcon icon() const override;
50
51 //Overridden to allow multiframe to set display name
52 QString displayName() const override;
53
54 void cleanup() override;
55
61 void setContentSection( const QRectF &section ) { mSection = section; }
62
66 QgsLayoutMultiFrame *multiFrame() const;
67
68 QgsLayoutSize minimumSize() const override;
69 QgsLayoutSize fixedSize() const override;
70
76 QRectF extent() const { return mSection; }
77
83 bool hidePageIfEmpty() const { return mHidePageIfEmpty; }
84
90 void setHidePageIfEmpty( bool hidePageIfEmpty );
91
97 bool hideBackgroundIfEmpty() const { return mHideBackgroundIfEmpty; }
98
104 void setHideBackgroundIfEmpty( bool hideBackgroundIfEmpty );
105
110 bool isEmpty() const;
111
113 ExportLayerBehavior exportLayerBehavior() const override;
114
115 protected:
116
117 void draw( QgsLayoutItemRenderContext &context ) override;
118 void drawFrame( QgsRenderContext &context ) override;
119 void drawBackground( QgsRenderContext &context ) override;
120 bool writePropertiesToElement( QDomElement &parentElement, QDomDocument &document, const QgsReadWriteContext &context ) const override;
121 bool readPropertiesFromElement( const QDomElement &itemElement, const QDomDocument &document, const QgsReadWriteContext &context ) override;
122
123 private:
124 QgsLayoutFrame() = delete;
125 QgsLayoutMultiFrame *mMultiFrame = nullptr;
126 QString mMultiFrameUuid;
127 QRectF mSection;
128
130 bool mHidePageIfEmpty = false;
132 bool mHideBackgroundIfEmpty = false;
133
135
136};
137
138#endif // QGSLAYOUTFRAME_H
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
Base class for frame items, which form a layout multiframe item.
void setContentSection(const QRectF &section)
Sets the visible part of the multiframe's content which is visible within this frame (relative to the...
QRectF extent() const
Returns the visible portion of the multi frame's content which is shown in this frame,...
bool hideBackgroundIfEmpty() const
Returns whether the background and frame stroke should be hidden if this frame is empty.
bool hidePageIfEmpty() const
Returns whether the page should be hidden (ie, not included in layout exports) if this frame is empty...
Contains settings and helpers relating to a render of a QgsLayoutItem.
Definition: qgslayoutitem.h:43
Base class for graphical items within a QgsLayout.
virtual void drawFrame(QgsRenderContext &context)
Draws the frame around the item.
virtual void cleanup()
Called just before a batch of items are deleted, allowing them to run cleanup tasks.
virtual QIcon icon() const
Returns the item's icon.
virtual bool writePropertiesToElement(QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context) const
Stores item state within an XML DOM element.
QgsExpressionContext createExpressionContext() const override
This method needs to be reimplemented in all classes which implement this interface and return an exp...
int type() const override
Returns a unique graphics item type identifier.
virtual void drawBackground(QgsRenderContext &context)
Draws the background for the item.
virtual QString displayName() const
Gets item display name.
virtual QgsLayoutSize minimumSize() const
Returns the minimum allowed size of the item, if applicable, or an empty size if item can be freely r...
virtual QgsLayoutSize fixedSize() const
Returns the fixed size of the item, if applicable, or an empty size if item can be freely resized.
virtual bool readPropertiesFromElement(const QDomElement &element, const QDomDocument &document, const QgsReadWriteContext &context)
Sets item state from a DOM element.
virtual ExportLayerBehavior exportLayerBehavior() const
Returns the behavior of this item during exporting to layered exports (e.g.
virtual void draw(QgsLayoutItemRenderContext &context)=0
Draws the item's contents using the specified item render context.
Abstract base class for layout items with the ability to distribute the content to several frames (Qg...
This class provides a method of storing sizes, consisting of a width and height, for use in QGIS layo...
Definition: qgslayoutsize.h:40
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.
Definition: qgslayout.h:49
The class is used as a container of context for various read/write operations on other objects.
Contains information about the context of a rendering operation.
#define SIP_FACTORY
Definition: qgis_sip.h:76