QGIS API Documentation  2.99.0-Master (009e47e)
qgsmaplayerlegend.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmaplayerlegend.h
3  --------------------------------------
4  Date : July 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 QGSMAPLAYERLEGEND_H
17 #define QGSMAPLAYERLEGEND_H
18 
19 #include <QObject>
20 #include "qgis.h"
21 
22 class QgsLayerTreeLayer;
24 class QgsPluginLayer;
25 class QgsRasterLayer;
26 class QgsVectorLayer;
27 
28 #include "qgis_core.h"
29 
30 
37 class CORE_EXPORT QgsMapLayerLegend : public QObject
38 {
39  Q_OBJECT
40  public:
41  explicit QgsMapLayerLegend( QObject *parent SIP_TRANSFERTHIS = 0 );
42 
43  // TODO: type, load/save settings
44 
49  virtual QList<QgsLayerTreeModelLegendNode *> createLayerTreeModelLegendNodes( QgsLayerTreeLayer *nodeLayer ) = 0 SIP_FACTORY;
50 
51  // TODO: support for layer tree view delegates
52 
54  static QgsMapLayerLegend *defaultVectorLegend( QgsVectorLayer *vl ) SIP_FACTORY;
55 
57  static QgsMapLayerLegend *defaultRasterLegend( QgsRasterLayer *rl ) SIP_FACTORY;
58 
59  signals:
61  void itemsChanged();
62 };
63 
64 
70 class CORE_EXPORT QgsMapLayerLegendUtils
71 {
72  public:
73  static void setLegendNodeOrder( QgsLayerTreeLayer *nodeLayer, const QList<int> &order );
74  static QList<int> legendNodeOrder( QgsLayerTreeLayer *nodeLayer );
75  static bool hasLegendNodeOrder( QgsLayerTreeLayer *nodeLayer );
76 
77  static void setLegendNodeUserLabel( QgsLayerTreeLayer *nodeLayer, int originalIndex, const QString &newLabel );
78  static QString legendNodeUserLabel( QgsLayerTreeLayer *nodeLayer, int originalIndex );
79  static bool hasLegendNodeUserLabel( QgsLayerTreeLayer *nodeLayer, int originalIndex );
80 
82  static void applyLayerNodeProperties( QgsLayerTreeLayer *nodeLayer, QList<QgsLayerTreeModelLegendNode *> &nodes );
83 };
84 
85 
86 #include <QHash>
87 
93 {
94  Q_OBJECT
95 
96  public:
98 
99  virtual QList<QgsLayerTreeModelLegendNode *> createLayerTreeModelLegendNodes( QgsLayerTreeLayer *nodeLayer ) SIP_FACTORY override;
100 
101  private:
102  QgsVectorLayer *mLayer = nullptr;
103 };
104 
105 
111 {
112  Q_OBJECT
113 
114  public:
116 
117  virtual QList<QgsLayerTreeModelLegendNode *> createLayerTreeModelLegendNodes( QgsLayerTreeLayer *nodeLayer ) SIP_FACTORY override;
118 
119  private:
120  QgsRasterLayer *mLayer = nullptr;
121 };
122 
123 
124 #endif // QGSMAPLAYERLEGEND_H
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:34
This class provides qgis with the ability to render raster datasets onto the mapcanvas.
Base class for plugin layers.
Default legend implementation for raster layers.
virtual QList< QgsLayerTreeModelLegendNode * > createLayerTreeModelLegendNodes(QgsLayerTreeLayer *nodeLayer)=0
Return list of legend nodes to be used for a particular layer tree layer node.
The QgsMapLayerLegend class is abstract interface for implementations of legends for one map layer...
Miscellaneous utility functions for handling of map layer legend.
#define SIP_FACTORY
Definition: qgis_sip.h:57
The QgsLegendRendererItem class is abstract interface for legend items returned from QgsMapLayerLegen...
Default legend implementation for vector layers.
Represents a vector layer which manages a vector based data sets.
Layer tree node points to a map layer.