QGIS API Documentation 3.27.0-Master (9c08adf5ef)
qgsannotationmanager.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsannotationmanager.h
3 ----------------------
4 Date : January 2017
5 Copyright : (C) 2017 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 QGSANNOTATIONMANAGER_H
17#define QGSANNOTATIONMANAGER_H
18
19#include "qgis_core.h"
20#include "qgis.h"
21#include <QObject>
22#include <QDomElement>
23
25class QgsProject;
26class QgsAnnotation;
28
44class CORE_EXPORT QgsAnnotationManager : public QObject
45{
46 Q_OBJECT
47
48 public:
49
54 explicit QgsAnnotationManager( QgsProject *project SIP_TRANSFERTHIS = nullptr );
55
56 ~QgsAnnotationManager() override;
57
64 bool addAnnotation( QgsAnnotation *annotation SIP_TRANSFER );
65
75 bool removeAnnotation( QgsAnnotation *annotation );
76
81 void clear();
82
87 QList< QgsAnnotation * > annotations() const;
88
95 QList< QgsAnnotation * > cloneAnnotations() const SIP_FACTORY;
96
102 bool readXml( const QDomElement &element, const QgsReadWriteContext &context );
103
108 QDomElement writeXml( QDomDocument &doc, const QgsReadWriteContext &context ) const;
109
119 bool accept( QgsStyleEntityVisitorInterface *visitor ) const;
120
121 signals:
122
124 void annotationAdded( QgsAnnotation *annotation );
125
128
131
132 private:
133
134 QgsProject *mProject = nullptr;
135
136 QList< QgsAnnotation * > mAnnotations;
137
138 void createAnnotationFromXml( const QDomElement &element, const QgsReadWriteContext &context );
139
140};
141
142#endif // QGSANNOTATIONMANAGER_H
Manages storage of a set of QgsAnnotation annotation objects.
void annotationRemoved()
Emitted when an annotation was removed from the manager.
void annotationAboutToBeRemoved(QgsAnnotation *annotation)
Emitted when an annotation is about to be removed from the manager.
void annotationAdded(QgsAnnotation *annotation)
Emitted when a annotation has been added to the manager.
Abstract base class for annotation items which are drawn over a map.
Definition: qgsannotation.h:54
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
Definition: qgsproject.h:104
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.
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53
#define SIP_TRANSFER
Definition: qgis_sip.h:36
#define SIP_FACTORY
Definition: qgis_sip.h:76