Skip to content

Commit 89941f6

Browse files
committed
Moved QgsLayerTreeModelLegendNode (+derived classes) to a new file
1 parent 6891aae commit 89941f6

12 files changed

+701
-650
lines changed

python/core/core.sip

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@
168168
%Include layertree/qgslayertreegroup.sip
169169
%Include layertree/qgslayertreelayer.sip
170170
%Include layertree/qgslayertreemodel.sip
171+
%Include layertree/qgslayertreemodellegendnode.sip
171172
%Include layertree/qgslayertreenode.sip
172173
%Include layertree/qgslayertreeregistrybridge.sip
173174
%Include layertree/qgslayertreeutils.sip
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
2+
/**
3+
* The QgsLegendRendererItem class is abstract interface for legend items
4+
* returned from QgsMapLayerLegend implementation.
5+
*
6+
* The objects are used in QgsLayerTreeModel. Custom implementations may offer additional interactivity
7+
* and customized look.
8+
*
9+
* @note added in 2.6
10+
*/
11+
class QgsLayerTreeModelLegendNode : QObject
12+
{
13+
%TypeHeaderCode
14+
#include <qgslayertreemodellegendnode.h>
15+
%End
16+
17+
public:
18+
19+
/** Return pointer to the parent layer node */
20+
QgsLayerTreeLayer* parent() const;
21+
22+
/** Return item flags associated with the item. Default implementation returns Qt::ItemIsEnabled. */
23+
virtual Qt::ItemFlags flags() const;
24+
25+
/** Return data associated with the item. Must be implemented in derived class. */
26+
virtual QVariant data( int role ) const = 0;
27+
28+
/** Set some data associated with the item. Default implementation does nothing and returns false. */
29+
virtual bool setData( const QVariant& value, int role );
30+
31+
protected:
32+
/** Construct the node with pointer to its parent layer node */
33+
explicit QgsLayerTreeModelLegendNode( QgsLayerTreeLayer* nodeL );
34+
};
35+
36+
37+
38+
/**
39+
* Implementation of legend node interface for displaying preview of vector symbols and their labels
40+
* and allowing interaction with the symbol / renderer.
41+
*
42+
* @note added in 2.6
43+
*/
44+
/*
45+
class QgsSymbolV2LegendNode : QgsLayerTreeModelLegendNode
46+
{
47+
%TypeHeaderCode
48+
#include <qgslayertreemodellegendnode.h>
49+
%End
50+
public:
51+
QgsSymbolV2LegendNode( QgsLayerTreeLayer* nodeLayer, const QgsLegendSymbolItemV2& item );
52+
53+
virtual Qt::ItemFlags flags() const;
54+
virtual QVariant data( int role ) const;
55+
virtual bool setData( const QVariant& value, int role );
56+
};*/
57+
58+
59+
/**
60+
* Implementation of legend node interface for displaying arbitrary label with icon.
61+
*
62+
* @note added in 2.6
63+
*/
64+
class QgsSimpleLegendNode : QgsLayerTreeModelLegendNode
65+
{
66+
%TypeHeaderCode
67+
#include <qgslayertreemodellegendnode.h>
68+
%End
69+
public:
70+
QgsSimpleLegendNode( QgsLayerTreeLayer* nodeLayer, const QString& label, const QIcon& icon = QIcon() );
71+
72+
virtual QVariant data( int role ) const;
73+
};
74+

python/core/qgsmaplayerlegend.sip

Lines changed: 0 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,78 +1,4 @@
11

2-
/**
3-
* The QgsLegendRendererItem class is abstract interface for legend items
4-
* returned from QgsMapLayerLegend implementation.
5-
*
6-
* The objects are used in QgsLayerTreeModel. Custom implementations may offer additional interactivity
7-
* and customized look.
8-
*
9-
* @note added in 2.6
10-
*/
11-
class QgsLayerTreeModelLegendNode : QObject
12-
{
13-
%TypeHeaderCode
14-
#include <qgsmaplayerlegend.h>
15-
%End
16-
17-
public:
18-
19-
/** Return pointer to the parent layer node */
20-
QgsLayerTreeLayer* parent() const;
21-
22-
/** Return item flags associated with the item. Default implementation returns Qt::ItemIsEnabled. */
23-
virtual Qt::ItemFlags flags() const;
24-
25-
/** Return data associated with the item. Must be implemented in derived class. */
26-
virtual QVariant data( int role ) const = 0;
27-
28-
/** Set some data associated with the item. Default implementation does nothing and returns false. */
29-
virtual bool setData( const QVariant& value, int role );
30-
31-
protected:
32-
/** Construct the node with pointer to its parent layer node */
33-
explicit QgsLayerTreeModelLegendNode( QgsLayerTreeLayer* nodeL );
34-
};
35-
36-
37-
38-
/**
39-
* Implementation of legend node interface for displaying preview of vector symbols and their labels
40-
* and allowing interaction with the symbol / renderer.
41-
*
42-
* @note added in 2.6
43-
*/
44-
/*
45-
class QgsSymbolV2LegendNode : QgsLayerTreeModelLegendNode
46-
{
47-
%TypeHeaderCode
48-
#include <qgsmaplayerlegend.h>
49-
%End
50-
public:
51-
QgsSymbolV2LegendNode( QgsLayerTreeLayer* nodeLayer, const QgsLegendSymbolItemV2& item );
52-
53-
virtual Qt::ItemFlags flags() const;
54-
virtual QVariant data( int role ) const;
55-
virtual bool setData( const QVariant& value, int role );
56-
};*/
57-
58-
59-
/**
60-
* Implementation of legend node interface for displaying arbitrary label with icon.
61-
*
62-
* @note added in 2.6
63-
*/
64-
class QgsSimpleLegendNode : QgsLayerTreeModelLegendNode
65-
{
66-
%TypeHeaderCode
67-
#include <qgsmaplayerlegend.h>
68-
%End
69-
public:
70-
QgsSimpleLegendNode( QgsLayerTreeLayer* nodeLayer, const QString& label, const QIcon& icon = QIcon() );
71-
72-
virtual QVariant data( int role ) const;
73-
};
74-
75-
762
/**
773
* The QgsMapLayerLegend class is abstract interface for implementations
784
* of legends for one map layer.
@@ -98,9 +24,6 @@ class QgsMapLayerLegend : QObject
9824

9925
// TODO: support for layer tree view delegates
10026

101-
// TODO: support for legend renderer
102-
103-
10427
//! Create new legend implementation for vector layer
10528
static QgsMapLayerLegend* defaultVectorLegend( QgsVectorLayer* vl ) /Factory/;
10629

src/core/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ SET(QGIS_CORE_SRCS
4949
layertree/qgslayertreegroup.cpp
5050
layertree/qgslayertreelayer.cpp
5151
layertree/qgslayertreemodel.cpp
52+
layertree/qgslayertreemodellegendnode.cpp
5253
layertree/qgslayertreenode.cpp
5354
layertree/qgslayertreeregistrybridge.cpp
5455
layertree/qgslayertreeutils.cpp
@@ -409,6 +410,7 @@ SET(QGIS_CORE_MOC_HDRS
409410
layertree/qgslayertreegroup.h
410411
layertree/qgslayertreelayer.h
411412
layertree/qgslayertreemodel.h
413+
layertree/qgslayertreemodellegendnode.h
412414
layertree/qgslayertreenode.h
413415
layertree/qgslayertreeregistrybridge.h
414416
)
@@ -639,6 +641,7 @@ SET(QGIS_CORE_HDRS
639641
layertree/qgslayertreegroup.h
640642
layertree/qgslayertreelayer.h
641643
layertree/qgslayertreemodel.h
644+
layertree/qgslayertreemodellegendnode.h
642645
layertree/qgslayertreenode.h
643646
layertree/qgslayertreeregistrybridge.h
644647
layertree/qgslayertreeutils.h

src/core/layertree/qgslayertreemodel.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include "qgslayertreemodel.h"
1717

1818
#include "qgslayertree.h"
19+
#include "qgslayertreemodellegendnode.h"
1920

2021
#include <QMimeData>
2122
#include <QTextStream>

0 commit comments

Comments
 (0)