QGIS API Documentation  2.14.0-Essen
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 
21 class QgsLayerTreeLayer;
23 class QgsPluginLayer;
24 class QgsRasterLayer;
25 class QgsVectorLayer;
26 
27 
34 class CORE_EXPORT QgsMapLayerLegend : public QObject
35 {
36  Q_OBJECT
37  public:
38  explicit QgsMapLayerLegend( QObject *parent = nullptr );
39 
40  // TODO: type, load/save settings
41 
46  virtual QList<QgsLayerTreeModelLegendNode*> createLayerTreeModelLegendNodes( QgsLayerTreeLayer* nodeLayer ) = 0;
47 
48  // TODO: support for layer tree view delegates
49 
51  static QgsMapLayerLegend* defaultVectorLegend( QgsVectorLayer* vl );
52 
54  static QgsMapLayerLegend* defaultRasterLegend( QgsRasterLayer* rl );
55 
57  static QgsMapLayerLegend* defaultPluginLegend( QgsPluginLayer* pl );
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 
92 {
93  Q_OBJECT
94 
95  public:
97 
99 
100  private:
101  QgsVectorLayer* mLayer;
102 };
103 
104 
109 {
110  Q_OBJECT
111 
112  public:
114 
116 
117  private:
118  QgsRasterLayer* mLayer;
119 };
120 
121 
126 {
127  Q_OBJECT
128 
129  public:
131 
133 
134  private:
135  QgsPluginLayer* mLayer;
136 };
137 
138 #endif // QGSMAPLAYERLEGEND_H
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.
The QgsMapLayerLegend class is abstract interface for implementations of legends for one map layer...
Miscellaneous utility functions for handling of map layer legend.
Default legend implementation for plugin layers.
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.
virtual QList< QgsLayerTreeModelLegendNode * > createLayerTreeModelLegendNodes(QgsLayerTreeLayer *nodeLayer)=0
Return list of legend nodes to be used for a particular layer tree layer node.
Layer tree node points to a map layer.