QGIS API Documentation  2.99.0-Master (19b062c)
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 
38 class CORE_EXPORT QgsMapLayerLegend : public QObject
39 {
40  Q_OBJECT
41  public:
42  explicit QgsMapLayerLegend( QObject *parent SIP_TRANSFERTHIS = 0 );
43 
44  // TODO: type, load/save settings
45 
50  virtual QList<QgsLayerTreeModelLegendNode *> createLayerTreeModelLegendNodes( QgsLayerTreeLayer *nodeLayer ) = 0 SIP_FACTORY;
51 
52  // TODO: support for layer tree view delegates
53 
55  static QgsMapLayerLegend *defaultVectorLegend( QgsVectorLayer *vl ) SIP_FACTORY;
56 
58  static QgsMapLayerLegend *defaultRasterLegend( QgsRasterLayer *rl ) SIP_FACTORY;
59 
60  signals:
62  void itemsChanged();
63 };
64 
65 
72 class CORE_EXPORT QgsMapLayerLegendUtils
73 {
74  public:
75  static void setLegendNodeOrder( QgsLayerTreeLayer *nodeLayer, const QList<int> &order );
76  static QList<int> legendNodeOrder( QgsLayerTreeLayer *nodeLayer );
77  static bool hasLegendNodeOrder( QgsLayerTreeLayer *nodeLayer );
78 
79  static void setLegendNodeUserLabel( QgsLayerTreeLayer *nodeLayer, int originalIndex, const QString &newLabel );
80  static QString legendNodeUserLabel( QgsLayerTreeLayer *nodeLayer, int originalIndex );
81  static bool hasLegendNodeUserLabel( QgsLayerTreeLayer *nodeLayer, int originalIndex );
82 
84  static void applyLayerNodeProperties( QgsLayerTreeLayer *nodeLayer, QList<QgsLayerTreeModelLegendNode *> &nodes );
85 };
86 
87 
88 #include <QHash>
89 
96 {
97  Q_OBJECT
98 
99  public:
101 
102  virtual QList<QgsLayerTreeModelLegendNode *> createLayerTreeModelLegendNodes( QgsLayerTreeLayer *nodeLayer ) SIP_FACTORY override;
103 
104  private:
105  QgsVectorLayer *mLayer = nullptr;
106 };
107 
108 
115 {
116  Q_OBJECT
117 
118  public:
120 
121  virtual QList<QgsLayerTreeModelLegendNode *> createLayerTreeModelLegendNodes( QgsLayerTreeLayer *nodeLayer ) SIP_FACTORY override;
122 
123  private:
124  QgsRasterLayer *mLayer = nullptr;
125 };
126 
127 
128 #endif // QGSMAPLAYERLEGEND_H
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:46
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:69
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.