QGIS API Documentation  3.4.15-Madeira (e83d02e274)
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 QGSLEGENDSYMBOLITEMV2_H
17 #define QGSLEGENDSYMBOLITEMV2_H
18 
19 #include <memory>
20 #include <QString>
21 
22 #include "qgis.h"
23 #include "qgis_core.h"
24 
26 class QgsSymbol;
27 
36 class CORE_EXPORT QgsLegendSymbolItem
37 {
38  public:
39 
43  QgsLegendSymbolItem() = default;
44 
49  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() );
51 
53  QgsLegendSymbolItem &operator=( const QgsLegendSymbolItem &other );
54 
56  QgsSymbol *symbol() const { return mSymbol; }
58  QString label() const { return mLabel; }
60  QString ruleKey() const { return mKey; }
62  bool isCheckable() const { return mCheckable; }
63 
65  QgsSymbol *legacyRuleKey() const { return mOriginalSymbolPointer; }
66 
68  bool isScaleOK( double scale ) const;
69 
74  int scaleMinDenom() const { return mScaleMinDenom; }
75 
80  int scaleMaxDenom() const { return mScaleMaxDenom; }
81 
83  int level() const { return mLevel; }
84 
89  QString parentRuleKey() const { return mParentKey; }
90 
92  void setSymbol( QgsSymbol *s SIP_TRANSFER );
93 
101  void setDataDefinedSizeLegendSettings( QgsDataDefinedSizeLegend *settings SIP_TRANSFER );
102 
107  QgsDataDefinedSizeLegend *dataDefinedSizeLegendSettings() const;
108 
109  private:
111  QgsSymbol *mSymbol = nullptr;
113  QString mLabel;
115  QString mKey;
117  bool mCheckable = false;
118 
119  QgsSymbol *mOriginalSymbolPointer = nullptr;
120 
125  QgsDataDefinedSizeLegend *mDataDefinedSizeLegendSettings = nullptr;
126 
127  // additional data that may be used for filtering
128 
129  int mScaleMinDenom = -1;
130  int mScaleMaxDenom = -1;
131 
133  int mLevel = 0;
135  QString mParentKey;
136 };
137 
138 
139 typedef QList< QgsLegendSymbolItem > QgsLegendSymbolList;
140 
141 #endif // QGSLEGENDSYMBOLITEMV2_H
QList< QgsLegendSymbolItem > QgsLegendSymbolList
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:61
QString label() const
Returns text label.
int scaleMaxDenom() const
Max scale denominator of the scale range.
int level() const
Indentation level that tells how deep the item is in a hierarchy of items. For flat lists level is 0...
#define SIP_TRANSFER
Definition: qgis_sip.h:36
QString parentRuleKey() const
Key of the parent legend node.
int scaleMinDenom() const
Min scale denominator of the scale range.
bool isCheckable() const
Returns whether the item is user-checkable - whether renderer supports enabling/disabling it...
The class stores information about one class/rule of a vector layer renderer in a unified way that ca...
QgsSymbol * symbol() const
Returns associated symbol. May be null.
QString ruleKey() const
Returns unique identifier of the rule for identification of the item within renderer.
Object that keeps configuration of appearance of marker symbol&#39;s data-defined size in legend...