QGIS API Documentation 3.43.0-Master (5aa6938817f)
qgslegendsymbolitem.h
Go to the documentation of this file.
1/***************************************************************************
2 qgslegendsymbolitem.h
3 --------------------------------------
4 Date : August 2014
5 Copyright : (C) 2014 by Martin Dobias
6 Email : wonder dot sk at gmail dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#ifndef QGSLEGENDSYMBOLITEM_H
17#define QGSLEGENDSYMBOLITEM_H
18
19#include <memory>
20#include <QString>
21
22#include "qgis.h"
23#include "qgis_core.h"
24
26class QgsSymbol;
27
35class CORE_EXPORT QgsLegendSymbolItem
36{
37 public:
38
40
44 QgsLegendSymbolItem( QgsSymbol *symbol, const QString &label, const QString &ruleKey, bool checkable = false, int scaleMinDenom = -1, int scaleMaxDenom = -1, int level = 0, const QString &parentRuleKey = QString() );
46
48 QgsLegendSymbolItem &operator=( const QgsLegendSymbolItem &other );
49
51 QgsSymbol *symbol() const { return mSymbol.get(); }
53 QString label() const { return mLabel; }
55 QString ruleKey() const { return mKey; }
57 bool isCheckable() const { return mCheckable; }
58
60 QgsSymbol *legacyRuleKey() const { return mOriginalSymbolPointer; }
61
63 bool isScaleOK( double scale ) const;
64
69 int scaleMinDenom() const { return mScaleMinDenom; }
70
75 int scaleMaxDenom() const { return mScaleMaxDenom; }
76
78 int level() const { return mLevel; }
79
84 QString parentRuleKey() const { return mParentKey; }
85
93 void setSymbol( QgsSymbol *s );
94
101 void setDataDefinedSizeLegendSettings( QgsDataDefinedSizeLegend *settings SIP_TRANSFER );
102
106 QgsDataDefinedSizeLegend *dataDefinedSizeLegendSettings() const;
107
114 void setUserData( int key, QVariant &value );
115
122 QVariant userData( int key ) const;
123
124 private:
126 std::unique_ptr<QgsSymbol> mSymbol;
128 QString mLabel;
130 QString mKey;
132 bool mCheckable = false;
133
134 QgsSymbol *mOriginalSymbolPointer = nullptr;
135
140 std::unique_ptr<QgsDataDefinedSizeLegend> mDataDefinedSizeLegendSettings;
141
142 // additional data that may be used for filtering
143
144 int mScaleMinDenom = -1;
145 int mScaleMaxDenom = -1;
146
148 int mLevel = 0;
150 QString mParentKey;
151
152 QMap< int, QVariant > mUserData;
153};
154
155typedef QList< QgsLegendSymbolItem > QgsLegendSymbolList;
156
157#endif // QGSLEGENDSYMBOLITEM_H
Object that keeps configuration of appearance of marker symbol's data-defined size in legend.
Stores information about one class/rule of a vector layer renderer in a unified way that can be used ...
QString parentRuleKey() const
Key of the parent legend node.
int level() const
Indentation level that tells how deep the item is in a hierarchy of items. For flat lists level is 0.
int scaleMaxDenom() const
Max scale denominator of the scale range.
int scaleMinDenom() const
Min scale denominator of the scale range.
QgsSymbol * symbol() const
Returns associated symbol. May be nullptr.
QString ruleKey() const
Returns unique identifier of the rule for identification of the item within renderer.
bool isCheckable() const
Returns whether the item is user-checkable - whether renderer supports enabling/disabling it.
QString label() const
Returns text label.
QgsSymbol * legacyRuleKey() const
Used for older code that identifies legend entries from symbol pointer within renderer.
Abstract base class for all rendered symbols.
Definition qgssymbol.h:231
#define SIP_TRANSFER
Definition qgis_sip.h:36
QList< QgsLegendSymbolItem > QgsLegendSymbolList