QgsNullSymbolRenderer class

Null symbol renderer.

Renderer which draws no symbols for features by default, but allows for labeling and diagrams for the layer. Selected features will also be drawn with a default symbol.

Public static functions

static auto convertFromRenderer(const QgsFeatureRenderer* renderer) -> QgsNullSymbolRenderer*
Creates a QgsNullSymbolRenderer from an existing renderer.
static auto create(QDomElement& element, const QgsReadWriteContext& context) -> QgsFeatureRenderer*
Creates a null renderer from XML element.

Public functions

auto clone() const -> QgsFeatureRenderer* override
Create a deep copy of this renderer.
auto dump() const -> QString override
Returns debug information about this renderer.
auto originalSymbolForFeature(const QgsFeature& feature, QgsRenderContext& context) const -> QgsSymbol* override
Returns symbol for feature.
auto renderFeature(const QgsFeature& feature, QgsRenderContext& context, int layer = -1, bool selected = false, bool drawVertexMarker = false) -> bool override
Render a feature using this renderer in the given context.
auto save(QDomDocument& doc, const QgsReadWriteContext& context) -> QDomElement override
store renderer info to XML element
void stopRender(QgsRenderContext& context) override
Must be called when a render cycle has finished, to allow the renderer to clean up.
auto symbolForFeature(const QgsFeature& feature, QgsRenderContext& context) const -> QgsSymbol* override
To be overridden.
auto symbols(QgsRenderContext& context) const -> QgsSymbolList override
Returns list of symbols used by the renderer.
auto usedAttributes(const QgsRenderContext& context) const -> QSet<QString> override
Returns a list of attributes required by this renderer.
auto willRenderFeature(const QgsFeature& feature, QgsRenderContext& context) const -> bool override
Returns whether the renderer will render a feature or not.

Function documentation

static QgsNullSymbolRenderer* QgsNullSymbolRenderer::convertFromRenderer(const QgsFeatureRenderer* renderer)

Creates a QgsNullSymbolRenderer from an existing renderer.

Parameters
renderer renderer to convert from
Returns a new renderer if the conversion was possible, otherwise nullptr.

static QgsFeatureRenderer* QgsNullSymbolRenderer::create(QDomElement& element, const QgsReadWriteContext& context)

Creates a null renderer from XML element.

Parameters
element DOM element
context reading context
Returns new null symbol renderer

QgsFeatureRenderer* QgsNullSymbolRenderer::clone() const override

Create a deep copy of this renderer.

Returns A copy of this renderer

Should be implemented by all subclasses and generate a proper subclass.

QgsSymbol* QgsNullSymbolRenderer::originalSymbolForFeature(const QgsFeature& feature, QgsRenderContext& context) const override

Returns symbol for feature.

The difference compared to symbolForFeature() is that it returns original symbol which can be used as an identifier for renderer's rule - the former may return a temporary replacement of a symbol for use in rendering.

bool QgsNullSymbolRenderer::renderFeature(const QgsFeature& feature, QgsRenderContext& context, int layer = -1, bool selected = false, bool drawVertexMarker = false) override

Render a feature using this renderer in the given context.

Must be called between startRender() and stopRender() calls. Default implementation renders a symbol as determined by symbolForFeature() call. Returns true if the feature has been returned (this is used for example to determine whether the feature may be labelled).

If layer is not -1, the renderer should draw only a particula layer from symbols (in order to support symbol level rendering).

void QgsNullSymbolRenderer::stopRender(QgsRenderContext& context) override

Must be called when a render cycle has finished, to allow the renderer to clean up.

Calls to stopRender() must always be preceded by a call to startRender().

QgsSymbol* QgsNullSymbolRenderer::symbolForFeature(const QgsFeature& feature, QgsRenderContext& context) const override

To be overridden.

Parameters
feature feature
context render context
Returns returns pointer to symbol or 0 if symbol was not found

Must be called between startRender() and stopRender() calls.

QgsSymbolList QgsNullSymbolRenderer::symbols(QgsRenderContext& context) const override

Returns list of symbols used by the renderer.

Parameters
context render context

QSet<QString> QgsNullSymbolRenderer::usedAttributes(const QgsRenderContext& context) const override

Returns a list of attributes required by this renderer.

Returns A set of attributes

Attributes not listed in here may not have been requested from the provider at rendering time.

bool QgsNullSymbolRenderer::willRenderFeature(const QgsFeature& feature, QgsRenderContext& context) const override

Returns whether the renderer will render a feature or not.

Must be called between startRender() and stopRender() calls. Default implementation uses symbolForFeature().