QGIS API Documentation  3.4.15-Madeira (e83d02e274)
qgsprintlayout.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsprintlayout.h
3  -------------------
4  begin : December 2017
5  copyright : (C) 2017 by Nyall Dawson
6  email : nyall dot dawson at gmail dot com
7  ***************************************************************************/
8 /***************************************************************************
9  * *
10  * This program is free software; you can redistribute it and/or modify *
11  * it under the terms of the GNU General Public License as published by *
12  * the Free Software Foundation; either version 2 of the License, or *
13  * (at your option) any later version. *
14  * *
15  ***************************************************************************/
16 #ifndef QGSPRINTLAYOUT_H
17 #define QGSPRINTLAYOUT_H
18 
19 #include "qgis_core.h"
20 #include "qgslayout.h"
21 
22 class QgsLayoutAtlas;
23 
30 class CORE_EXPORT QgsPrintLayout : public QgsLayout, public QgsMasterLayoutInterface
31 {
32  Q_OBJECT
33  Q_PROPERTY( QString name READ name WRITE setName NOTIFY nameChanged )
34 
35  public:
36 
40  QgsPrintLayout( QgsProject *project );
41 
42  QgsPrintLayout *clone() const override SIP_FACTORY;
43  QgsProject *layoutProject() const override;
44  QgsMasterLayoutInterface::Type layoutType() const override;
45  QIcon icon() const override;
46 
50  QgsLayoutAtlas *atlas();
51 
52  QString name() const override { return mName; }
53  void setName( const QString &name ) override;
54 
55  QDomElement writeXml( QDomDocument &document, const QgsReadWriteContext &context ) const override;
56  bool readXml( const QDomElement &layoutElement, const QDomDocument &document, const QgsReadWriteContext &context ) override;
57 
58  // QgsLayoutInterface
59  QDomElement writeLayoutXml( QDomDocument &document, const QgsReadWriteContext &context ) const override;
60  bool readLayoutXml( const QDomElement &layoutElement, const QDomDocument &document, const QgsReadWriteContext &context ) override;
62  void updateSettings() override;
63 
64  signals:
65 
70  void nameChanged( const QString &name );
71 
72  private:
73 
74  QString mName;
75  QgsLayoutAtlas *mAtlas = nullptr;
76 
77 };
78 
79 #endif //QGSPRINTLAYOUT_H
The class is used as a container of context for various read/write operations on other objects...
virtual bool readXml(const QDomElement &layoutElement, const QDomDocument &document, const QgsReadWriteContext &context)
Sets the collection's state from a DOM element.
Definition: qgslayout.cpp:929
virtual void setName(const QString &name)=0
Sets the layout's name.
QgsLayout * clone() const
Creates a clone of the layout.
Definition: qgslayout.cpp:80
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
virtual QDomElement writeLayoutXml(QDomDocument &document, const QgsReadWriteContext &context) const =0
Returns the layout's state encapsulated in a DOM element.
virtual bool readLayoutXml(const QDomElement &layoutElement, const QDomDocument &document, const QgsReadWriteContext &context)=0
Sets the layout's state from a DOM element.
Class used to render QgsLayout as an atlas, by iterating over the features from an associated vector ...
Reads and writes project states.
Definition: qgsproject.h:89
#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
QgsExpressionContext createExpressionContext() const override
Creates an expression context relating to the layout's current state.
Definition: qgslayout.cpp:392
virtual void updateSettings()=0
Refreshes the layout when global layout related options change.
Print layout, a QgsLayout subclass for static or atlas-based layouts.
virtual QDomElement writeXml(QDomDocument &document, const QgsReadWriteContext &context) const
Returns the layout's state encapsulated in a DOM element.
Definition: qgslayout.cpp:804
Interface for master layout type objects, such as print layouts and reports.