QGIS API Documentation 3.99.0-Master (21b3aa880ba)
Loading...
Searching...
No Matches
qgsgrouplayer.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsgrouplayer.h
3 ----------------
4 Date : September 2021
5 Copyright : (C) 2021 by Nyall Dawson
6 Email : nyall dot dawson at gmail dot com
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef QGSGROUPLAYER_H
19#define QGSGROUPLAYER_H
20
21#include "qgis_core.h"
22#include "qgis_sip.h"
23#include "qgsmaplayer.h"
24#include "qgsmaplayerref.h"
25#include "qgsmaplayerrenderer.h"
26
27class QgsGroupLayerDataProvider;
28class QgsPaintEffect;
29
41class CORE_EXPORT QgsGroupLayer : public QgsMapLayer
42{
43 Q_OBJECT
44
45 public:
46
67
73 QgsGroupLayer( const QString &name, const QgsGroupLayer::LayerOptions &options );
74 ~QgsGroupLayer() override;
75
76#ifdef SIP_RUN
77 SIP_PYOBJECT __repr__();
78 % MethodCode
79 QString str = QStringLiteral( "<QgsGroupLayer: '%1'>" ).arg( sipCpp->name() );
80 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
81 % End
82#endif
83
84 QgsGroupLayer *clone() const override SIP_FACTORY;
86 QgsRectangle extent() const override;
87 void setTransformContext( const QgsCoordinateTransformContext &context ) override;
88 bool readXml( const QDomNode &layerNode, QgsReadWriteContext &context ) override;
89 bool writeXml( QDomNode &layer_node, QDomDocument &doc, const QgsReadWriteContext &context ) const override;
90 bool writeSymbology( QDomNode &node, QDomDocument &doc, QString &errorMessage, const QgsReadWriteContext &, StyleCategories categories = AllStyleCategories ) const override;
91 bool readSymbology( const QDomNode &node, QString &errorMessage, QgsReadWriteContext &context, StyleCategories categories = AllStyleCategories ) override;
92 QgsDataProvider *dataProvider() override;
93 const QgsDataProvider *dataProvider() const override SIP_SKIP;
94 QString htmlMetadata() const override;
95 void resolveReferences( QgsProject *project ) override;
96
105 void setChildLayers( const QList< QgsMapLayer * > &layers );
106
112 QList< QgsMapLayer * > childLayers() const;
113
119
128
139
140 private:
141
142 std::unique_ptr<QgsGroupLayerDataProvider> mDataProvider;
143 QgsCoordinateTransformContext mTransformContext;
144
145 QList< QgsMapLayerRef > mChildren;
146 std::unique_ptr< QgsPaintEffect > mPaintEffect;
147
148};
149
150#ifndef SIP_RUN
152
158class QgsGroupLayerDataProvider : public QgsDataProvider
159{
160 Q_OBJECT
161
162 public:
163 QgsGroupLayerDataProvider( const QgsDataProvider::ProviderOptions &providerOptions,
166 QgsCoordinateReferenceSystem crs() const override;
167 QString name() const override;
168 QString description() const override;
169 QgsRectangle extent() const override;
170 bool isValid() const override;
171
172 private:
173
175
176};
178#endif
179
180#endif // QGSGROUPLAYER_H
QFlags< DataProviderReadFlag > DataProviderReadFlags
Flags which control data provider construction.
Definition qgis.h:486
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.
void setPaintEffect(QgsPaintEffect *effect)
Sets the current paint effect for the renderer.
void resolveReferences(QgsProject *project) override
Resolve references to other layers (kept as layer IDs after reading XML) into layer objects.
bool readSymbology(const QDomNode &node, QString &errorMessage, QgsReadWriteContext &context, StyleCategories categories=AllStyleCategories) override
Read the symbology for the current layer from the DOM node supplied.
QgsGroupLayer(const QString &name, const QgsGroupLayer::LayerOptions &options)
Constructor for a new QgsGroupLayer with the specified layer name.
void prepareLayersForRemovalFromGroup()
Prepares all child layers in the group prior to removal from the group.
QgsPaintEffect * paintEffect() const
Returns the current paint effect for the group layer.
QList< QgsMapLayer * > childLayers() const
Returns the child layers contained by the group.
QgsMapLayerRenderer * createMapRenderer(QgsRenderContext &rendererContext) override
Returns new instance of QgsMapLayerRenderer that will be used for rendering of given context.
QgsDataProvider * dataProvider() override
Returns the layer's data provider, it may be nullptr.
void setChildLayers(const QList< QgsMapLayer * > &layers)
Sets the child layers contained by the group.
bool writeXml(QDomNode &layer_node, QDomDocument &doc, const QgsReadWriteContext &context) const override
Called by writeLayerXML(), used by children to write state specific to them to project files.
void setTransformContext(const QgsCoordinateTransformContext &context) override
Sets the coordinate transform context to transformContext.
bool readXml(const QDomNode &layerNode, QgsReadWriteContext &context) override
Called by readLayerXML(), used by children to read state specific to them from project files.
bool writeSymbology(QDomNode &node, QDomDocument &doc, QString &errorMessage, const QgsReadWriteContext &, StyleCategories categories=AllStyleCategories) const override
Write the style for the layer into the document provided.
QString htmlMetadata() const override
Obtain a formatted HTML string containing assorted metadata for this layer.
QgsRectangle extent() const override
Returns the extent of the layer.
Base class for utility classes that encapsulate information necessary for rendering of map layers.
QString name
Definition qgsmaplayer.h:84
QgsCoordinateReferenceSystem crs
Definition qgsmaplayer.h:87
QgsMapLayer(Qgis::LayerType type=Qgis::LayerType::Vector, const QString &name=QString(), const QString &source=QString())
Constructor for QgsMapLayer.
QFlags< StyleCategory > StyleCategories
QgsMapLayer::LayerFlags flags
Definition qgsmaplayer.h:96
virtual QgsMapLayer * clone() const =0
Returns a new instance equivalent to this one except for the id which is still unique.
QgsProject * project() const
Returns the parent project if this map layer is added to a project.
void setCrs(const QgsCoordinateReferenceSystem &srs, bool emitSignal=true)
Sets layer's spatial reference system.
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:109
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_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 creating vector data providers.
Setting options for loading group layers.
LayerOptions(const QgsCoordinateTransformContext &transformContext)
Constructor for LayerOptions.
QgsCoordinateTransformContext transformContext
Coordinate transform context.