QGIS API Documentation  3.4.15-Madeira (e83d02e274)
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 
25 class QgsProject;
26 class QgsAnnotation;
27 
28 
44 class 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 
110  signals:
111 
113  void annotationAdded( QgsAnnotation *annotation );
114 
116  void annotationRemoved();
117 
119  void annotationAboutToBeRemoved( QgsAnnotation *annotation );
120 
121  private:
122 
123  QgsProject *mProject = nullptr;
124 
125  QList< QgsAnnotation * > mAnnotations;
126 
127  void createAnnotationFromXml( const QDomElement &element, const QgsReadWriteContext &context );
128 
129 };
130 
131 #endif // QGSANNOTATIONMANAGER_H
The class is used as a container of context for various read/write operations on other objects...
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:46
Manages storage of a set of QgsAnnotation annotation objects.
Abstract base class for annotation items which are drawn over a map.
Definition: qgsannotation.h:48
#define SIP_TRANSFER
Definition: qgis_sip.h:36
Reads and writes project states.
Definition: qgsproject.h:89
#define SIP_FACTORY
Definition: qgis_sip.h:69