19#ifndef QGSLAYERTREEMODELLEGENDNODE_H
20#define QGSLAYERTREEMODELLEGENDNODE_H
56 if ( qobject_cast<QgsSymbolLegendNode *> ( sipCpp ) )
57 sipType = sipType_QgsSymbolLegendNode;
58 else if ( qobject_cast<QgsDataDefinedSizeLegendNode *> ( sipCpp ) )
59 sipType = sipType_QgsDataDefinedSizeLegendNode;
60 else if ( qobject_cast<QgsImageLegendNode *> ( sipCpp ) )
61 sipType = sipType_QgsImageLegendNode;
62 else if ( qobject_cast<QgsRasterSymbolLegendNode *> ( sipCpp ) )
63 sipType = sipType_QgsRasterSymbolLegendNode;
64 else if ( qobject_cast<QgsSimpleLegendNode *> ( sipCpp ) )
65 sipType = sipType_QgsSimpleLegendNode;
66 else if ( qobject_cast<QgsWmsLegendNode *> ( sipCpp ) )
67 sipType = sipType_QgsWmsLegendNode;
68 else if ( qobject_cast<QgsColorRampLegendNode *> ( sipCpp ) )
69 sipType = sipType_QgsColorRampLegendNode;
117 virtual Qt::ItemFlags flags()
const;
120 virtual QVariant
data(
int role )
const = 0;
123 virtual bool setData(
const QVariant &value,
int role );
128 virtual QString
userLabel()
const {
return mUserLabel; }
129 virtual void setUserLabel(
const QString &userLabel ) { mUserLabel = userLabel; }
140 virtual QSizeF userPatchSize()
const;
151 virtual void setUserPatchSize( QSizeF size );
159 virtual void setColumnBreak(
bool breakBeforeNode ) { mColumnBreakBeforeNode = breakBeforeNode; }
167 virtual bool columnBreak()
const {
return mColumnBreakBeforeNode; }
169 virtual bool isScaleOK(
double scale )
const { Q_UNUSED( scale )
return true; }
186 QPainter *painter =
nullptr;
198 Q_DECL_DEPRECATED
double labelXOffset = 0.0;
212 double columnLeft = 0.0;
220 double columnRight = 0.0;
227 double maxSiblingSymbolWidth = 0.0;
318 SIP_PYOBJECT __repr__();
320 QString str = QStringLiteral(
"<QgsLayerTreeModelLegendNode: \"%1\">" ).arg( sipCpp->data( Qt::DisplayRole ).toString() );
321 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
333 void checkAllItems();
341 void uncheckAllItems();
349 void toggleAllItems();
371 bool mEmbeddedInParent;
375 bool mColumnBreakBeforeNode = false;
383 void checkAll(
bool state );
387#include "qgslegendsymbolitem.h"
414 Qt::ItemFlags flags()
const override;
415 QVariant data(
int role )
const override;
416 bool setData(
const QVariant &value,
int role )
override;
422 void setEmbeddedInParent(
bool embedded )
override;
424 void setUserLabel(
const QString &userLabel )
override { mUserLabel = userLabel; updateLabel(); }
426 bool isScaleOK(
double scale )
const override {
return mItem.isScaleOK( scale ); }
428 void invalidateMapBasedData()
override;
433 void setIconSize( QSize sz );
442 QSize minimumIconSize()
const;
493 QString symbolLabel()
const;
553 SIP_PYOBJECT __repr__();
555 QString str = QStringLiteral(
"<QgsSymbolLegendNode: %1 \"%2\"" ).arg(
557 sipCpp->data( Qt::DisplayRole ).toString() );
558 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
567 mutable QPixmap mPixmap;
569 bool mSymbolUsesMapUnits;
573 QString mTextOnSymbolLabel;
576 std::unique_ptr< QgsSymbol > mCustomSymbol;
579 static const int INDENT_SIZE = 20;
605 QVariant data(
int role )
const override;
608 SIP_PYOBJECT __repr__();
610 QString str = QStringLiteral(
"<QgsSimpleLegendNode: \"%1\">" ).arg( sipCpp->data( Qt::DisplayRole ).toString() );
611 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
641 QVariant data(
int role )
const override;
648 SIP_PYOBJECT __repr__();
650 QString str = QStringLiteral(
"<QgsImageLegendNode: \"%1\">" ).arg( sipCpp->data( Qt::DisplayRole ).toString() );
651 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
681 bool isCheckable =
false,
const QString &ruleKey = QString(),
const QString &parentRuleKey = QString() );
683 Qt::ItemFlags flags()
const override;
684 QVariant data(
int role )
const override;
685 bool setData(
const QVariant &value,
int role )
override;
704 SIP_PYOBJECT __repr__();
706 QString str = QStringLiteral(
"<QgsRasterSymbolLegendNode: \"%1\">" ).arg( sipCpp->data( Qt::DisplayRole ).toString() );
707 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
714 bool mCheckable =
false;
716 QString mParentRuleKey;
741 QVariant data(
int role )
const override;
747 void invalidateMapBasedData()
override;
753 QImage getLegendGraphicBlocking( )
const;
757 SIP_PYOBJECT __repr__();
759 QString str = QStringLiteral(
"<QgsWmsLegendNode: \"%1\">" ).arg( sipCpp->data( Qt::DisplayRole ).toString() );
760 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
766 void getLegendGraphicFinished(
const QImage & );
767 void getLegendGraphicErrored(
const QString & );
768 void getLegendGraphicProgress( qint64, qint64 );
773 QImage getLegendGraphic(
bool synchronous =
false )
const;
775 QImage renderMessage(
const QString &msg )
const;
781 mutable std::unique_ptr<QgsImageFetcher> mFetcher;
798 QVariant data(
int role )
const override;
803 SIP_PYOBJECT __repr__();
805 QString str = QStringLiteral(
"<QgsDataDefinedSizeLegendNode: \"%1\">" ).arg( sipCpp->data( Qt::DisplayRole ).toString() );
806 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
811 void cacheImage()
const;
813 mutable QImage mImage;
840 QVariant data(
int role )
const override;
860 SIP_PYOBJECT __repr__();
862 QString str = QStringLiteral(
"<QgsVectorLabelLegendNode: \"%1\">" ).arg( sipCpp->data( Qt::DisplayRole ).toString() );
863 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
870 void textWidthHeight(
double &width,
double &height,
QgsRenderContext &ctx,
const QgsTextFormat &textFormat,
const QStringList &textLines )
const;
A legend node with a marker symbol.
Object that keeps configuration of appearance of marker symbol's data-defined size in legend.
Single scope for storing variables and functions for use within a QgsExpressionContext.
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
Handles asynchronous download of images.
Implementation of legend node interface for displaying arbitrary raster images.
Layer tree node points to a map layer.
An abstract interface for legend items returned from QgsMapLayerLegend implementation.
virtual QVariant data(int role) const =0
Returns data associated with the item. Must be implemented in derived class.
virtual bool columnBreak() const
Returns whether a forced column break should occur before the node.
NodeTypes
Types of legend nodes.
@ SimpleLegend
Simple label with icon legend node type.
@ RasterSymbolLegend
Raster symbol legend node type.
@ ImageLegend
Raster image legend node type.
@ DataDefinedSizeLegend
Marker symbol legend node type.
@ WmsLegend
WMS legend node type.
@ EmbeddedWidget
Embedded widget placeholder node type.
@ ColorRampLegend
Color ramp legend.
@ SymbolLegend
Vector symbol legend node type.
CustomRole
Legend node data roles.
@ RuleKey
Rule key of the node (QString)
virtual QString userLabel() const
virtual bool isScaleOK(double scale) const
virtual void setColumnBreak(bool breakBeforeNode)
Sets whether a forced column break should occur before the node.
virtual void invalidateMapBasedData()
Notification from model that information from associated map view has changed.
void sizeChanged()
Emitted when the size of this node changes.
void dataChanged()
Emitted on internal data change so the layer tree model can forward the signal to views.
virtual bool isEmbeddedInParent() const
QgsLayerTreeLayer * layerNode() const
Returns pointer to the parent layer node.
virtual void setEmbeddedInParent(bool embedded)
virtual void setUserLabel(const QString &userLabel)
A model representing the layer tree, including layers and groups of layers.
Represents a patch shape for use in map legends.
Stores the appearance and layout settings for legend drawing with QgsLegendRenderer.
Stores information about one class/rule of a vector layer renderer in a unified way that can be used ...
Contains configuration for rendering maps.
Contains settings for how a map layer will be labeled.
Implementation of legend node interface for displaying raster legend entries.
QString ruleKey() const
Returns the unique identifier of node for identification of the item within renderer.
bool isCheckable() const
Returns whether the item is user-checkable - whether renderer supports enabling/disabling it.
Contains information about the context of a rendering operation.
Stores properties relating to a screen.
Implementation of legend node interface for displaying arbitrary labels with icons.
Implementation of legend node interface for displaying preview of vector symbols and their labels and...
static double MAXIMUM_SIZE
QString textOnSymbolLabel() const
Returns label of text to be shown on top of the symbol.
void setUserLabel(const QString &userLabel) override
void setTextOnSymbolTextFormat(const QgsTextFormat &format)
Sets format of text to be shown on top of the symbol.
void setTextOnSymbolLabel(const QString &label)
Sets label of text to be shown on top of the symbol.
bool isScaleOK(double scale) const override
static double MINIMUM_SIZE
QgsTextFormat textOnSymbolTextFormat() const
Returns text format of the label to be shown on top of the symbol.
Abstract base class for all rendered symbols.
Contains pre-calculated metrics of a QgsTextDocument.
Represents a document consisting of one or more QgsTextBlock objects.
Container for all settings relating to text rendering.
A legend node for a labeling text symbol.
Implementation of legend node interface for displaying WMS legend entries.
~QgsWmsLegendNode() override
#define Q_NOWARN_DEPRECATED_POP
#define Q_NOWARN_DEPRECATED_PUSH
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
#define SIP_MONKEYPATCH_SCOPEENUM_UNNEST(OUTSIDE_CLASS, FORMERNAME)
#define SIP_MONKEYPATCH_COMPAT_NAME(FORMERNAME)
Q_DECLARE_METATYPE(QgsDatabaseQueryLogEntry)
Q_NOWARN_DEPRECATED_PUSH ItemContext()=default
QgsLegendPatchShape patchShape
The patch shape to render for the node.
QgsScreenProperties screenProperties
Destination screen properties.
QSizeF patchSize
Symbol patch size to render for the node.
Q_DECL_DEPRECATED QPointF point
Top-left corner of the legend item.