QGIS API Documentation 3.99.0-Master (8e76e220402)
Loading...
Searching...
No Matches
qgsannotationlayer.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsannotationlayer.h
3 ----------------
4 copyright : (C) 2019 by Sandro Mani
5 email : smani at sourcepole dot ch
6 ***************************************************************************/
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
17#ifndef QGSANNOTATIONLAYER_H
18#define QGSANNOTATIONLAYER_H
19
20#include "qgis_core.h"
21#include "qgis_sip.h"
22#include "qgsmaplayer.h"
23#include "qgsmaplayerref.h"
24#include "qgsmaplayerrenderer.h"
25
26#include <QString>
27
28using namespace Qt::StringLiterals;
29
33class QgsPaintEffect;
34
35
37class QgsAnnotationLayerSpatialIndex;
39
51class CORE_EXPORT QgsAnnotationLayer : public QgsMapLayer
52{
53 Q_OBJECT
54
55 public:
56
77
78
84 QgsAnnotationLayer( const QString &name, const QgsAnnotationLayer::LayerOptions &options );
85 ~QgsAnnotationLayer() override;
86
87#ifdef SIP_RUN
88 SIP_PYOBJECT __repr__();
89 % MethodCode
90 QString str = u"<QgsAnnotationLayer: '%1'>"_s.arg( sipCpp->name() );
91 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
92 % End
93#endif
94
98 void reset();
99
108
116 void replaceItem( const QString &id, QgsAnnotationItem *item SIP_TRANSFER );
117
121 bool removeItem( const QString &id );
122
126 void clear();
127
131 bool isEmpty() const;
132
139 QMap<QString, QgsAnnotationItem *> items() const { return mItems; }
140
146 QgsAnnotationItem *item( const QString &id ) const;
147
156 QStringList itemsInBounds( const QgsRectangle &bounds, QgsRenderContext &context, QgsFeedback *feedback = nullptr ) const;
157
166
175
176 Qgis::MapLayerProperties properties() const override;
177 QgsAnnotationLayer *clone() const override SIP_FACTORY;
178 QgsMapLayerRenderer *createMapRenderer( QgsRenderContext &rendererContext ) override SIP_FACTORY;
179 QgsRectangle extent() const override;
180 void setTransformContext( const QgsCoordinateTransformContext &context ) override;
181 bool readXml( const QDomNode &layerNode, QgsReadWriteContext &context ) override;
182 bool writeXml( QDomNode &layer_node, QDomDocument &doc, const QgsReadWriteContext &context ) const override;
183 bool writeSymbology( QDomNode &node, QDomDocument &doc, QString &errorMessage, const QgsReadWriteContext &, StyleCategories categories = AllStyleCategories ) const override;
184 bool readSymbology( const QDomNode &node, QString &errorMessage, QgsReadWriteContext &context, StyleCategories categories = AllStyleCategories ) override;
185 bool writeStyle( QDomNode &node, QDomDocument &doc, QString &errorMessage, const QgsReadWriteContext &context, StyleCategories categories ) const override;
186 bool readStyle( const QDomNode &node, QString &errorMessage, QgsReadWriteContext &context, StyleCategories categories ) override;
187 bool isEditable() const override;
188 bool supportsEditing() const override;
189 QgsDataProvider *dataProvider() override;
190 const QgsDataProvider *dataProvider() const override SIP_SKIP;
191 QString htmlMetadata() const override;
192 void resolveReferences( QgsProject *project ) override;
193
199 QgsPaintEffect *paintEffect() const;
200
209 void setPaintEffect( QgsPaintEffect *effect SIP_TRANSFER );
210
218 QgsMapLayer *linkedVisibilityLayer();
219
227 void setLinkedVisibilityLayer( QgsMapLayer *layer );
228
229 private:
230
231 QStringList queryIndex( const QgsRectangle &bounds, QgsFeedback *feedback = nullptr ) const;
232 bool writeItems( QDomNode &node, QDomDocument &doc, QString &errorMessage, const QgsReadWriteContext &context, StyleCategories categories = AllStyleCategories ) const;
233 bool readItems( const QDomNode &node, QString &errorMessage, QgsReadWriteContext &context, StyleCategories categories = AllStyleCategories );
234
235 QMap<QString, QgsAnnotationItem *> mItems;
236 QgsCoordinateTransformContext mTransformContext;
237
238 std::unique_ptr< QgsAnnotationLayerSpatialIndex > mSpatialIndex;
239 QSet< QString > mNonIndexedItems;
240
241 std::unique_ptr<QgsDataProvider> mDataProvider;
242
243 std::unique_ptr< QgsPaintEffect > mPaintEffect;
244
245 QgsMapLayerRef mLinkedLayer;
246
249
250};
251
252#ifndef SIP_RUN
254
260class QgsAnnotationLayerDataProvider : public QgsDataProvider
261{
262 Q_OBJECT
263
264 public:
265 QgsAnnotationLayerDataProvider( const QgsDataProvider::ProviderOptions &providerOptions,
267 QgsCoordinateReferenceSystem crs() const override;
268 QString name() const override;
269 QString description() const override;
270 QgsRectangle extent() const override;
271 bool isValid() const override;
272
273};
275#endif
276
277#endif // QGSANNOTATIONLAYER_H
AnnotationItemEditOperationResult
Results from an edit operation on an annotation item.
Definition qgis.h:2577
QFlags< DataProviderReadFlag > DataProviderReadFlags
Flags which control data provider construction.
Definition qgis.h:505
QFlags< MapLayerProperty > MapLayerProperties
Map layer properties.
Definition qgis.h:2343
Abstract base class for annotation item edit operations.
Encapsulates the context for an annotation item edit operation.
Abstract base class for annotation items which are drawn with QgsAnnotationLayers.
Represents a map layer containing a set of georeferenced annotations, e.g.
QgsRectangle extent() const override
Returns the extent of the layer.
friend class QgsAnnotationLayerChunkLoader
void clear()
Removes all items from the layer.
bool removeItem(const QString &id)
Removes (and deletes) the item with matching id.
void replaceItem(const QString &id, QgsAnnotationItem *item)
Replaces the existing item with matching id with a new item.
friend class QgsAnnotationLayerRenderer
void reset()
Resets the annotation layer to a default state, and clears all items from it.
QString addItem(QgsAnnotationItem *item)
Adds an item to the layer.
bool isEmpty() const
Returns true if the annotation layer is empty and contains no annotations.
QgsAnnotationItem * item(const QString &id) const
Returns the item with the specified id, or nullptr if no matching item was found.
QgsAnnotationLayer(const QString &name, const QgsAnnotationLayer::LayerOptions &options)
Constructor for a new QgsAnnotationLayer with the specified layer name.
QMap< QString, QgsAnnotationItem * > items() const
Returns a map of items contained in the layer, by unique item ID.
Represents a coordinate reference system (CRS).
Contains information about the context in which a coordinate transform is executed.
Abstract base class for spatial data provider implementations.
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition qgsfeedback.h:44
Base class for utility classes that encapsulate information necessary for rendering of map layers.
Base class for all map layer types.
Definition qgsmaplayer.h:83
QString name
Definition qgsmaplayer.h:87
QgsCoordinateReferenceSystem crs
Definition qgsmaplayer.h:90
QgsMapLayer(Qgis::LayerType type=Qgis::LayerType::Vector, const QString &name=QString(), const QString &source=QString())
Constructor for QgsMapLayer.
virtual Qgis::MapLayerProperties properties() const
Returns the map layer properties of this layer.
QgsMapLayer::LayerFlags flags
Definition qgsmaplayer.h:99
virtual QgsMapLayer * clone() const =0
Returns a new instance equivalent to this one except for the id which is still unique.
Base class for visual effects which can be applied to QPicture drawings.
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
Definition qgsproject.h:113
A container for the context for various read/write operations on objects.
A rectangle specified with double values.
Contains information about the context of a rendering operation.
#define SIP_DEPRECATED
Definition qgis_sip.h:114
#define SIP_SKIP
Definition qgis_sip.h:134
#define SIP_TRANSFER
Definition qgis_sip.h:36
#define SIP_FACTORY
Definition qgis_sip.h:84
_LayerRef< QgsMapLayer > QgsMapLayerRef
Setting options for loading annotation layers.
LayerOptions(const QgsCoordinateTransformContext &transformContext)
Constructor for LayerOptions.
QgsCoordinateTransformContext transformContext
Coordinate transform context.
Setting options for creating vector data providers.