QGIS API Documentation  3.4.15-Madeira (e83d02e274)
qgslayertreelayer.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgslayertreelayer.h
3  --------------------------------------
4  Date : May 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 QGSLAYERTREELAYER_H
17 #define QGSLAYERTREELAYER_H
18 
19 #include "qgis_core.h"
20 #include "qgis.h"
21 #include "qgslayertreenode.h"
22 #include "qgsmaplayerref.h"
23 #include "qgsreadwritecontext.h"
24 
25 class QgsMapLayer;
26 
42 class CORE_EXPORT QgsLayerTreeLayer : public QgsLayerTreeNode
43 {
44  Q_OBJECT
45  public:
46  explicit QgsLayerTreeLayer( QgsMapLayer *layer );
47 
48 #ifndef SIP_RUN
49  QgsLayerTreeLayer( const QgsLayerTreeLayer &other );
50 #endif
51 
55  explicit QgsLayerTreeLayer( const QString &layerId, const QString &name = QString(), const QString &source = QString(), const QString &provider = QString() );
56 
62  QString layerId() const { return mRef.layerId; }
63 
73  QgsMapLayer *layer() const { return mRef.get(); }
74 
82  QString name() const override;
83 
91  void setName( const QString &n ) override;
92 
97  static QgsLayerTreeLayer *readXml( QDomElement &element, const QgsReadWriteContext &context ) SIP_FACTORY;
98 
104  static QgsLayerTreeLayer *readXml( QDomElement &element, const QgsProject *project, const QgsReadWriteContext &context ) SIP_FACTORY;
105 
106  void writeXml( QDomElement &parentElement, const QgsReadWriteContext &context ) override;
107 
108  QString dump() const override;
109 
110  QgsLayerTreeLayer *clone() const override SIP_FACTORY;
111 
116  void resolveReferences( const QgsProject *project, bool looseMatching = false ) override;
117 
118  signals:
119 
123  void layerLoaded();
124 
129  void layerWillBeUnloaded();
130 
131  protected:
132  void attachToLayer();
133 
137  QString mLayerName;
138 
139  private slots:
140 
145  void layerNameChanged();
146 
151  void layerWillBeDeleted();
152 
153  private:
154 
155 #ifdef SIP_RUN
156 
160  QgsLayerTreeLayer( const QgsLayerTreeLayer &other );
161 #endif
162 };
163 
164 
165 
166 #endif // QGSLAYERTREELAYER_H
The class is used as a container of context for various read/write operations on other objects...
Base class for all map layer types.
Definition: qgsmaplayer.h:63
virtual QString name() const =0
Returns name of the node.
virtual void setName(const QString &name)=0
Set name of the node.
virtual void writeXml(QDomElement &parentElement, const QgsReadWriteContext &context)=0
Write layer tree to XML.
QgsMapLayer * layer() const
Returns the map layer associated with this node.
virtual QgsLayerTreeNode * clone() const =0
Create a copy of the node. Returns new instance.
virtual QString dump() const =0
Returns string with layer tree structure. For debug purposes only.
static QgsLayerTreeNode * readXml(QDomElement &element, const QgsReadWriteContext &context)
Read layer tree from XML.
QgsMapLayerRef mRef
Weak reference to the layer (or just it's ID if the reference is not resolved yet) ...
QString mLayerName
Layer name - only used if layer does not exist.
This class is a base class for nodes in a layer tree.
QString layerId() const
Returns the ID for the map layer associated with this node.
Reads and writes project states.
Definition: qgsproject.h:89
#define SIP_FACTORY
Definition: qgis_sip.h:69
virtual void resolveReferences(const QgsProject *project, bool looseMatching=false)=0
Turn textual references to layers into map layer object from project.
Layer tree node points to a map layer.