QGIS API Documentation  3.6.0-Noosa (5873452)
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 
23 class QgsLayout;
25 
31 class CORE_EXPORT QgsLayoutFrame: public QgsLayoutItem
32 {
33  Q_OBJECT
34 
35  public:
36 
41  QgsLayoutFrame( QgsLayout *layout, QgsLayoutMultiFrame *multiFrame );
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 
114  protected:
115 
116  void draw( QgsLayoutItemRenderContext &context ) override;
117  void drawFrame( QgsRenderContext &context ) override;
118  void drawBackground( QgsRenderContext &context ) override;
119  bool writePropertiesToElement( QDomElement &parentElement, QDomDocument &document, const QgsReadWriteContext &context ) const override;
120  bool readPropertiesFromElement( const QDomElement &itemElement, const QDomDocument &document, const QgsReadWriteContext &context ) override;
121 
122  private:
123  QgsLayoutFrame() = delete;
124  QgsLayoutMultiFrame *mMultiFrame = nullptr;
125  QString mMultiFrameUuid;
126  QRectF mSection;
127 
129  bool mHidePageIfEmpty = false;
131  bool mHideBackgroundIfEmpty = false;
132 
133  friend class QgsLayoutMultiFrame;
134 
135 };
136 
137 #endif // QGSLAYOUTFRAME_H
The class is used as a container of context for various read/write operations on other objects...
QgsExpressionContext createExpressionContext() const override
This method needs to be reimplemented in all classes which implement this interface and return an exp...
virtual QIcon icon() const
Returns the item's icon.
Base class for graphical items within a QgsLayout.
int type() const override
Returns a unique graphics item type identifier.
QRectF extent() const
Returns the visible portion of the multi frame's content which is shown in this frame, in layout units.
virtual QgsLayoutSize fixedSize() const
Returns the fixed size of the item, if applicable, or an empty size if item can be freely resized...
void setContentSection(const QRectF &section)
Sets the visible part of the multiframe's content which is visible within this frame (relative to the...
Abstract base class for layout items with the ability to distribute the content to several frames (Qg...
virtual void drawFrame(QgsRenderContext &context)
Draws the frame around the 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...
virtual bool readPropertiesFromElement(const QDomElement &element, const QDomDocument &document, const QgsReadWriteContext &context)
Sets item state from a DOM element.
virtual void drawBackground(QgsRenderContext &context)
Draws the background for the item.
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
virtual void cleanup()
Called just before a batch of items are deleted, allowing them to run cleanup tasks.
#define SIP_FACTORY
Definition: qgis_sip.h:69
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.
Definition: qgslayout.h:49
Contains settings and helpers relating to a render of a QgsLayoutItem.
Definition: qgslayoutitem.h:44
virtual QString displayName() const
Gets item display name.
Contains information about the context of a rendering operation.
virtual bool writePropertiesToElement(QDomElement &element, QDomDocument &document, const QgsReadWriteContext &context) const
Stores item state within an XML DOM element.
bool hidePageIfEmpty() const
Returns whether the page should be hidden (ie, not included in layout exports) if this frame is empty...
bool hideBackgroundIfEmpty() const
Returns whether the background and frame stroke should be hidden if this frame is empty...
virtual void draw(QgsLayoutItemRenderContext &context)=0
Draws the item's contents using the specified item render context.
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 frame items, which form a layout multiframe item.