29#include <QDomDocument>
33using namespace Qt::StringLiterals;
49 return u
"INVERTED: NULL"_s;
74 QDomElement embeddedRendererElem = element.firstChildElement( u
"renderer-v2"_s );
75 if ( !embeddedRendererElem.isNull() )
89 rendererElem.setAttribute( u
"type"_s, u
"invertedPolygonRenderer"_s );
94 const QDomElement embeddedRendererElem =
mSubRenderer->save( doc, context );
95 rendererElem.appendChild( embeddedRendererElem );
105 if ( renderer->
type() ==
"invertedPolygonRenderer"_L1 )
109 else if ( renderer->
type() ==
"singleSymbol"_L1 ||
110 renderer->
type() ==
"categorizedSymbol"_L1 ||
111 renderer->
type() ==
"graduatedSymbol"_L1 ||
112 renderer->
type() ==
"RuleRenderer"_L1 )
114 auto res = std::make_unique< QgsInvertedPolygonRenderer >( renderer->
clone() );
116 return res.release();
118 else if ( renderer->
type() ==
"mergedFeatureRenderer"_L1 )
122 return res.release();
QgsFeatureRenderer(const QString &type)
static QgsFeatureRenderer * defaultRenderer(Qgis::GeometryType geomType)
Returns a new renderer - used by default in vector layers.
void copyRendererData(QgsFeatureRenderer *destRenderer) const
Clones generic renderer data to another renderer.
static QgsFeatureRenderer * load(QDomElement &symbologyElem, const QgsReadWriteContext &context)
create a renderer from XML element
void saveRendererData(QDomDocument &doc, QDomElement &element, const QgsReadWriteContext &context)
Saves generic renderer data into the specified element.
virtual const QgsFeatureRenderer * embeddedRenderer() const
Returns the current embedded renderer (subrenderer) for this feature renderer.
virtual QgsFeatureRenderer * clone() const =0
Create a deep copy of this renderer.
bool preprocessingEnabled() const
Returns true if the geometries are to be preprocessed (merged with an union) before rendering.
static QgsInvertedPolygonRenderer * convertFromRenderer(const QgsFeatureRenderer *renderer)
Creates a QgsInvertedPolygonRenderer by a conversion from an existing renderer.
static QgsFeatureRenderer * create(QDomElement &element, const QgsReadWriteContext &context)
Creates a renderer out of an XML, for loading.
void setPreprocessingEnabled(bool enabled)
Sets whether geometries preprocessing is enabled.
QString dump() const override
Returns debug information about this renderer.
QgsInvertedPolygonRenderer * clone() const override
Create a deep copy of this renderer.
QDomElement save(QDomDocument &doc, const QgsReadWriteContext &context) override
Stores renderer properties to an XML element.
QgsInvertedPolygonRenderer(QgsFeatureRenderer *embeddedRenderer=nullptr)
Constructor.
QgsMergedFeatureRenderer(QgsFeatureRenderer *embeddedRenderer)
Constructor for QgsMergedFeatureRenderer.
@ InvertOnly
Invert features only (polygons only).
GeometryOperation mOperation
Operation to apply to collected geometries.
void setEmbeddedRenderer(QgsFeatureRenderer *subRenderer) override
Sets an embedded renderer (subrenderer) for this feature renderer.
std::unique_ptr< QgsFeatureRenderer > mSubRenderer
Embedded renderer.
A container for the context for various read/write operations on objects.
#define RENDERER_TAG_NAME