QGIS API Documentation  3.9.0-Master (3ff8ca5736)
Classes | Public Types | Signals | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
QgsLayerTreeModelLegendNode Class Referenceabstract

The QgsLegendRendererItem class is abstract interface for legend items returned from QgsMapLayerLegend implementation. More...

#include <qgslayertreemodellegendnode.h>

Inheritance diagram for QgsLayerTreeModelLegendNode:
Inheritance graph
[legend]

Classes

struct  ItemContext
 
struct  ItemMetrics
 

Public Types

enum  LegendNodeRoles { RuleKeyRole = Qt::UserRole, ParentRuleKeyRole }
 

Signals

void dataChanged ()
 Emitted on internal data change so the layer tree model can forward the signal to views. More...
 

Public Member Functions

virtual QVariant data (int role) const =0
 Returns data associated with the item. Must be implemented in derived class. More...
 
virtual ItemMetrics draw (const QgsLegendSettings &settings, ItemContext *ctx)
 Entry point called from QgsLegendRenderer to do the rendering. More...
 
virtual QSizeF drawSymbol (const QgsLegendSettings &settings, ItemContext *ctx, double itemHeight) const
 Draws symbol on the left side of the item. More...
 
virtual QSizeF drawSymbolText (const QgsLegendSettings &settings, ItemContext *ctx, QSizeF symbolSize) const
 Draws label on the right side of the item. More...
 
void exportSymbolTextToJson (const QgsLegendSettings &settings, QJsonObject &json) const
 Adds a label in a JSON object with the key "title". More...
 
virtual void exportSymbolToJson (const QgsLegendSettings &settings, const QgsRenderContext &context, QJsonObject &json) const
 Adds a symbol in base64 string within a JSON object with the key "icon". More...
 
void exportToJson (const QgsLegendSettings &settings, const QgsRenderContext &context, QJsonObject &json)
 Entry point called from QgsLegendRenderer to do the rendering in a JSON object. More...
 
virtual Qt::ItemFlags flags () const
 Returns item flags associated with the item. Default implementation returns Qt::ItemIsEnabled. More...
 
virtual void invalidateMapBasedData ()
 Notification from model that information from associated map view has changed. More...
 
virtual bool isEmbeddedInParent () const
 
virtual bool isScaleOK (double scale) const
 
QgsLayerTreeLayerlayerNode () const
 Returns pointer to the parent layer node. More...
 
QgsLayerTreeModelmodel () const
 Returns pointer to model owning this legend node. More...
 
virtual bool setData (const QVariant &value, int role)
 Sets some data associated with the item. Default implementation does nothing and returns false. More...
 
virtual void setEmbeddedInParent (bool embedded)
 
virtual void setUserLabel (const QString &userLabel)
 
virtual QString userLabel () const
 

Protected Member Functions

 QgsLayerTreeModelLegendNode (QgsLayerTreeLayer *nodeL, QObject *parent=nullptr)
 Construct the node with pointer to its parent layer node. More...
 
QgsRenderContextcreateTemporaryRenderContext () const
 Returns a temporary context or nullptr if legendMapViewData are not valid. More...
 

Protected Attributes

bool mEmbeddedInParent
 
QgsLayerTreeLayermLayerNode = nullptr
 
QString mUserLabel
 

Detailed Description

The QgsLegendRendererItem class is abstract interface for legend items returned from QgsMapLayerLegend implementation.

The objects are used in QgsLayerTreeModel. Custom implementations may offer additional interactivity and customized look.

Since
QGIS 2.6

Definition at line 49 of file qgslayertreemodellegendnode.h.

Member Enumeration Documentation

◆ LegendNodeRoles

Enumerator
RuleKeyRole 

Rule key of the node (QString)

ParentRuleKeyRole 

Rule key of the parent legend node - for legends with tree hierarchy (QString). Added in 2.8.

Definition at line 62 of file qgslayertreemodellegendnode.h.

Constructor & Destructor Documentation

◆ QgsLayerTreeModelLegendNode()

QgsLayerTreeModelLegendNode::QgsLayerTreeModelLegendNode ( QgsLayerTreeLayer nodeL,
QObject *  parent = nullptr 
)
explicitprotected

Construct the node with pointer to its parent layer node.

Definition at line 38 of file qgslayertreemodellegendnode.cpp.

Member Function Documentation

◆ createTemporaryRenderContext()

QgsRenderContext * QgsLayerTreeModelLegendNode::createTemporaryRenderContext ( ) const
protected

Returns a temporary context or nullptr if legendMapViewData are not valid.

Definition at line 351 of file qgslayertreemodellegendnode.cpp.

◆ data()

virtual QVariant QgsLayerTreeModelLegendNode::data ( int  role) const
pure virtual

Returns data associated with the item. Must be implemented in derived class.

Implemented in QgsDataDefinedSizeLegendNode, QgsWmsLegendNode, QgsRasterSymbolLegendNode, QgsImageLegendNode, QgsSimpleLegendNode, and QgsSymbolLegendNode.

◆ dataChanged

void QgsLayerTreeModelLegendNode::dataChanged ( )
signal

Emitted on internal data change so the layer tree model can forward the signal to views.

◆ draw()

QgsLayerTreeModelLegendNode::ItemMetrics QgsLayerTreeModelLegendNode::draw ( const QgsLegendSettings settings,
ItemContext ctx 
)
virtual

Entry point called from QgsLegendRenderer to do the rendering.

Default implementation calls drawSymbol() and drawSymbolText() methods.

If ctx is nullptr, this is just first stage when preparing layout - without actual rendering.

Reimplemented in QgsDataDefinedSizeLegendNode.

Definition at line 63 of file qgslayertreemodellegendnode.cpp.

◆ drawSymbol()

QSizeF QgsLayerTreeModelLegendNode::drawSymbol ( const QgsLegendSettings settings,
ItemContext ctx,
double  itemHeight 
) const
virtual

Draws symbol on the left side of the item.

Parameters
settingsLegend layout configuration
ctxContext for rendering - may be nullptr if only doing layout without actual rendering
itemHeightMinimal height of the legend item - used for correct positioning when rendering
Returns
Real size of the symbol (may be bigger than "normal" symbol size from settings)

Reimplemented in QgsWmsLegendNode, QgsRasterSymbolLegendNode, QgsImageLegendNode, and QgsSymbolLegendNode.

Definition at line 85 of file qgslayertreemodellegendnode.cpp.

◆ drawSymbolText()

QSizeF QgsLayerTreeModelLegendNode::drawSymbolText ( const QgsLegendSettings settings,
ItemContext ctx,
QSizeF  symbolSize 
) const
virtual

Draws label on the right side of the item.

Parameters
settingsLegend layout configuration
ctxContext for rendering - may be nullptr if only doing layout without actual rendering
symbolSizeReal size of the associated symbol - used for correct positioning when rendering
Returns
Size of the label (may span multiple lines)

Definition at line 130 of file qgslayertreemodellegendnode.cpp.

◆ exportSymbolTextToJson()

void QgsLayerTreeModelLegendNode::exportSymbolTextToJson ( const QgsLegendSettings settings,
QJsonObject &  json 
) const

Adds a label in a JSON object with the key "title".

Parameters
settingsLegend layout configuration
jsonThe json object to update
Since
QGIS 3.8

Definition at line 211 of file qgslayertreemodellegendnode.cpp.

◆ exportSymbolToJson()

void QgsLayerTreeModelLegendNode::exportSymbolToJson ( const QgsLegendSettings settings,
const QgsRenderContext context,
QJsonObject &  json 
) const
virtual

Adds a symbol in base64 string within a JSON object with the key "icon".

Parameters
settingsLegend layout configuration
contextRendering context
jsonThe json object to update
Since
QGIS 3.8

Reimplemented in QgsWmsLegendNode, QgsRasterSymbolLegendNode, QgsImageLegendNode, and QgsSymbolLegendNode.

Definition at line 116 of file qgslayertreemodellegendnode.cpp.

◆ exportToJson()

void QgsLayerTreeModelLegendNode::exportToJson ( const QgsLegendSettings settings,
const QgsRenderContext context,
QJsonObject &  json 
)

Entry point called from QgsLegendRenderer to do the rendering in a JSON object.

Parameters
settingsLegend layout configuration
contextRendering context
jsonThe json object to update
Since
QGIS 3.8

Definition at line 79 of file qgslayertreemodellegendnode.cpp.

◆ flags()

Qt::ItemFlags QgsLayerTreeModelLegendNode::flags ( ) const
virtual

Returns item flags associated with the item. Default implementation returns Qt::ItemIsEnabled.

Reimplemented in QgsSymbolLegendNode.

Definition at line 50 of file qgslayertreemodellegendnode.cpp.

◆ invalidateMapBasedData()

virtual void QgsLayerTreeModelLegendNode::invalidateMapBasedData ( )
inlinevirtual

Notification from model that information from associated map view has changed.

Default implementation does nothing.

Reimplemented in QgsWmsLegendNode, and QgsSymbolLegendNode.

Definition at line 94 of file qgslayertreemodellegendnode.h.

◆ isEmbeddedInParent()

virtual bool QgsLayerTreeModelLegendNode::isEmbeddedInParent ( ) const
inlinevirtual

Definition at line 83 of file qgslayertreemodellegendnode.h.

◆ isScaleOK()

virtual bool QgsLayerTreeModelLegendNode::isScaleOK ( double  scale) const
inlinevirtual

Reimplemented in QgsSymbolLegendNode.

Definition at line 89 of file qgslayertreemodellegendnode.h.

◆ layerNode()

QgsLayerTreeLayer* QgsLayerTreeModelLegendNode::layerNode ( ) const
inline

Returns pointer to the parent layer node.

Definition at line 69 of file qgslayertreemodellegendnode.h.

◆ model()

QgsLayerTreeModel * QgsLayerTreeModelLegendNode::model ( ) const

Returns pointer to model owning this legend node.

Definition at line 45 of file qgslayertreemodellegendnode.cpp.

◆ setData()

bool QgsLayerTreeModelLegendNode::setData ( const QVariant &  value,
int  role 
)
virtual

Sets some data associated with the item. Default implementation does nothing and returns false.

Reimplemented in QgsSymbolLegendNode.

Definition at line 55 of file qgslayertreemodellegendnode.cpp.

◆ setEmbeddedInParent()

virtual void QgsLayerTreeModelLegendNode::setEmbeddedInParent ( bool  embedded)
inlinevirtual

Reimplemented in QgsSymbolLegendNode.

Definition at line 84 of file qgslayertreemodellegendnode.h.

◆ setUserLabel()

virtual void QgsLayerTreeModelLegendNode::setUserLabel ( const QString &  userLabel)
inlinevirtual

Reimplemented in QgsSymbolLegendNode.

Definition at line 87 of file qgslayertreemodellegendnode.h.

◆ userLabel()

virtual QString QgsLayerTreeModelLegendNode::userLabel ( ) const
inlinevirtual

Definition at line 86 of file qgslayertreemodellegendnode.h.

Member Data Documentation

◆ mEmbeddedInParent

bool QgsLayerTreeModelLegendNode::mEmbeddedInParent
protected

Definition at line 222 of file qgslayertreemodellegendnode.h.

◆ mLayerNode

QgsLayerTreeLayer* QgsLayerTreeModelLegendNode::mLayerNode = nullptr
protected

Definition at line 221 of file qgslayertreemodellegendnode.h.

◆ mUserLabel

QString QgsLayerTreeModelLegendNode::mUserLabel
protected

Definition at line 223 of file qgslayertreemodellegendnode.h.


The documentation for this class was generated from the following files: