16#ifndef QGSABSTRACTREPORTSECTION_H
17#define QGSABSTRACTREPORTSECTION_H
36class CORE_EXPORT QgsReportSectionContext
47 QVariantMap fieldFilters;
62 if (
dynamic_cast< QgsReportSectionFieldGroup *
>( sipCpp ) )
63 sipType = sipType_QgsReportSectionFieldGroup;
64 else if (
dynamic_cast< QgsReportSectionLayout *
>( sipCpp ) )
65 sipType = sipType_QgsReportSectionLayout;
77 QgsAbstractReportSection( QgsAbstractReportSection *parentSection =
nullptr );
79 ~QgsAbstractReportSection()
override;
80 QgsAbstractReportSection(
const QgsAbstractReportSection &other ) =
delete;
81 QgsAbstractReportSection &operator=(
const QgsAbstractReportSection &other ) =
delete;
86 virtual QString type()
const = 0;
91 virtual QString description()
const = 0;
96 virtual QIcon icon()
const = 0;
105 virtual QgsAbstractReportSection *clone()
const = 0
SIP_FACTORY;
110 QgsAbstractReportSection *parentSection() {
return mParent; }
118 int count()
const override {
return -1; }
120 QString filePath(
const QString &baseFilePath,
const QString &extension )
override;
122 bool beginRender()
override;
123 bool next()
override;
124 bool endRender()
override;
129 virtual void reset();
137 virtual bool prepareHeader();
145 virtual bool prepareFooter();
153 virtual QgsLayout *nextBody(
bool &ok
SIP_OUT ) { ok =
false;
return nullptr; }
161 bool headerEnabled()
const {
return mHeaderEnabled; }
169 void setHeaderEnabled(
bool enabled ) { mHeaderEnabled = enabled; }
178 QgsLayout *header() {
return mHeader.get(); }
196 bool footerEnabled()
const {
return mFooterEnabled; }
204 void setFooterEnabled(
bool enabled ) { mFooterEnabled = enabled; }
213 QgsLayout *footer() {
return mFooter.get(); }
230 int childCount()
const {
return mChildren.count(); }
246 QList< QgsAbstractReportSection * > childSections()
const {
return mChildren; }
252 QgsAbstractReportSection *childSection(
int index );
259 void appendChild( QgsAbstractReportSection *section
SIP_TRANSFER );
266 void insertChild(
int index, QgsAbstractReportSection *section
SIP_TRANSFER );
272 void removeChild( QgsAbstractReportSection *section );
278 void removeChildAt(
int index );
284 void setContext(
const QgsReportSectionContext &context );
290 const QgsReportSectionContext &context()
const {
return mContext; }
296 bool writeXml( QDomElement &parentElement, QDomDocument &document,
const QgsReadWriteContext &context )
const;
302 bool readXml(
const QDomElement §ionElement,
const QDomDocument &document,
const QgsReadWriteContext &context );
307 virtual void reloadSettings();
336 void copyCommonProperties( QgsAbstractReportSection *destination )
const;
341 virtual void setParentSection( QgsAbstractReportSection *parent ) { mParent = parent; }
348 virtual bool writePropertiesToElement( QDomElement &element, QDomDocument &document,
const QgsReadWriteContext &context )
const;
355 virtual bool readPropertiesFromElement(
const QDomElement &element,
const QDomDocument &document,
const QgsReadWriteContext &context );
359 QgsAbstractReportSection *mParent =
nullptr;
361 int mSectionNumber = 0;
362 SubSection mNextSection = Header;
366 bool mHeaderEnabled =
false;
367 bool mFooterEnabled =
false;
368 std::unique_ptr< QgsLayout > mHeader;
369 std::unique_ptr< QgsLayout > mFooter;
371 QList< QgsAbstractReportSection * > mChildren;
373 QgsReportSectionContext mContext;
376 QgsAbstractReportSection(
const QgsAbstractReportSection &other );
An abstract base class for QgsLayout based classes which can be exported by QgsLayoutExporter.
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Base class for layouts, which can contain items such as maps, labels, scalebars, etc.
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.
An interface for classes which can visit style entity (e.g.
Represents a vector layer which manages a vector based data sets.
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)