QGIS API Documentation  3.9.0-Master (04f0879ed5)
Signals | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
QgsLayerTreeLayer Class Reference

Layer tree node points to a map layer. More...

#include <qgslayertreelayer.h>

Inheritance diagram for QgsLayerTreeLayer:
Inheritance graph
[legend]

Signals

void layerLoaded ()
 Emitted when a previously unavailable layer got loaded. More...
 
void layerWillBeUnloaded ()
 Emitted when a previously available layer got unloaded (from layer registry). More...
 
- Signals inherited from QgsLayerTreeNode
void addedChildren (QgsLayerTreeNode *node, int indexFrom, int indexTo)
 Emitted when one or more nodes have been added to a node within the tree. More...
 
void customPropertyChanged (QgsLayerTreeNode *node, const QString &key)
 Emitted when a custom property of a node within the tree has been changed or removed. More...
 
void expandedChanged (QgsLayerTreeNode *node, bool expanded)
 Emitted when the collapsed/expanded state of a node within the tree has been changed. More...
 
void nameChanged (QgsLayerTreeNode *node, QString name)
 Emitted when the name of the node is changed. More...
 
void removedChildren (QgsLayerTreeNode *node, int indexFrom, int indexTo)
 Emitted when one or more nodes has been removed from a node within the tree. More...
 
void visibilityChanged (QgsLayerTreeNode *node)
 Emitted when check state of a node within the tree has been changed. More...
 
void willAddChildren (QgsLayerTreeNode *node, int indexFrom, int indexTo)
 Emitted when one or more nodes will be added to a node within the tree. More...
 
void willRemoveChildren (QgsLayerTreeNode *node, int indexFrom, int indexTo)
 Emitted when one or more nodes will be removed from a node within the tree. More...
 

Public Member Functions

 QgsLayerTreeLayer (QgsMapLayer *layer)
 
 QgsLayerTreeLayer (const QgsLayerTreeLayer &other)
 
 QgsLayerTreeLayer (const QString &layerId, const QString &name=QString(), const QString &source=QString(), const QString &provider=QString())
 Constructor for QgsLayerTreeLayer using weak references to layer ID, name, public source, and provider key. More...
 
QgsLayerTreeLayerclone () const override
 Create a copy of the node. Returns new instance. More...
 
QString dump () const override
 Returns string with layer tree structure. For debug purposes only. More...
 
QString labelExpression () const
 Returns the expression member of the LayerTreeNode. More...
 
QgsMapLayerlayer () const
 Returns the map layer associated with this node. More...
 
QString layerId () const
 Returns the ID for the map layer associated with this node. More...
 
QString name () const override
 Returns the layer's name. More...
 
void resolveReferences (const QgsProject *project, bool looseMatching=false) override
 Resolves reference to layer from stored layer ID (if it has not been resolved already) More...
 
void setLabelExpression (const QString &expression)
 set the expression to evaluate More...
 
void setName (const QString &n) override
 Sets the layer's name. More...
 
void setUseLayerName (bool use=true)
 Uses the layer's name if use is true, or the name manually set if false. More...
 
bool useLayerName () const
 Returns whether the layer's name is used, or the name manually set. More...
 
void writeXml (QDomElement &parentElement, const QgsReadWriteContext &context) override
 Write layer tree to XML. More...
 
- Public Member Functions inherited from QgsLayerTreeNode
 ~QgsLayerTreeNode () override
 
QList< QgsMapLayer *> checkedLayers () const
 Returns a list of any checked layers which belong to this node or its children. More...
 
QList< QgsLayerTreeNode * > children ()
 Gets list of children of the node. Children are owned by the parent. More...
 
QList< QgsLayerTreeNode * > children () const
 Gets list of children of the node. Children are owned by the parent. More...
 
QStringList customProperties () const
 Returns list of keys stored in custom properties. More...
 
QVariant customProperty (const QString &key, const QVariant &defaultValue=QVariant()) const
 Read a custom property from layer. Properties are stored in a map and saved in project file. More...
 
bool isExpanded () const
 Returns whether the node should be shown as expanded or collapsed in GUI. More...
 
bool isItemVisibilityCheckedRecursive () const
 Returns whether this node is checked and all its children. More...
 
bool isItemVisibilityUncheckedRecursive () const
 Returns whether this node is unchecked and all its children. More...
 
bool isVisible () const
 Returns whether a node is really visible (ie checked and all its ancestors checked as well) More...
 
bool itemVisibilityChecked () const
 Returns whether a node is checked (independently of its ancestors or children) More...
 
NodeType nodeType () const
 Find out about type of the node. It is usually shorter to use convenience functions from QgsLayerTree namespace for that. More...
 
QgsLayerTreeNodeparent ()
 Gets pointer to the parent. If parent is nullptr, the node is a root node. More...
 
void removeCustomProperty (const QString &key)
 Remove a custom property from layer. Properties are stored in a map and saved in project file. More...
 
void setCustomProperty (const QString &key, const QVariant &value)
 Sets a custom property for the node. Properties are stored in a map and saved in project file. More...
 
void setExpanded (bool expanded)
 Sets whether the node should be shown as expanded or collapsed in GUI. More...
 
void setItemVisibilityChecked (bool checked)
 Check or uncheck a node (independently of its ancestors or children) More...
 
void setItemVisibilityCheckedParentRecursive (bool checked)
 Check or uncheck a node and all its parents. More...
 
virtual void setItemVisibilityCheckedRecursive (bool checked)
 Check or uncheck a node and all its children (taking into account exclusion rules) More...
 
bool takeChild (QgsLayerTreeNode *node)
 Remove a child from a node. More...
 

Static Public Member Functions

static QgsLayerTreeLayerreadXml (QDomElement &element, const QgsReadWriteContext &context)
 Read layer node from XML. More...
 
static QgsLayerTreeLayerreadXml (QDomElement &element, const QgsProject *project, const QgsReadWriteContext &context)
 Read layer node from XML. More...
 
- Static Public Member Functions inherited from QgsLayerTreeNode
static QgsLayerTreeNodereadXml (QDomElement &element, const QgsReadWriteContext &context)
 Read layer tree from XML. More...
 
static QgsLayerTreeNodereadXml (QDomElement &element, const QgsProject *project)
 Read layer tree from XML. More...
 

Protected Member Functions

void attachToLayer ()
 
- Protected Member Functions inherited from QgsLayerTreeNode
 QgsLayerTreeNode (NodeType t, bool checked=true)
 Constructor. More...
 
 QgsLayerTreeNode (const QgsLayerTreeNode &other)
 
void insertChildrenPrivate (int index, QList< QgsLayerTreeNode *> nodes)
 Low-level insertion of children to the node. The children must not have any parent yet! More...
 
void readCommonXml (QDomElement &element)
 Read common XML elements. More...
 
void removeChildrenPrivate (int from, int count, bool destroy=true)
 Low-level removal of children from the node. More...
 
void writeCommonXml (QDomElement &element)
 Write common XML elements. More...
 

Protected Attributes

QString mLabelExpression
 Expression to evaluate in the legend. More...
 
QString mLayerName
 Layer name - only used if layer does not exist or if mUseLayerName is false. More...
 
QgsMapLayerRef mRef
 Weak reference to the layer (or just it's ID if the reference is not resolved yet) More...
 
bool mUseLayerName = true
 
- Protected Attributes inherited from QgsLayerTreeNode
bool mChecked
 
QList< QgsLayerTreeNode * > mChildren
 list of children - node is responsible for their deletion More...
 
bool mExpanded
 whether the node should be shown in GUI as expanded More...
 
NodeType mNodeType
 type of the node - determines which subclass is used More...
 
QgsLayerTreeNodemParent = nullptr
 pointer to the parent node - nullptr in case of root node More...
 
QgsObjectCustomProperties mProperties
 custom properties attached to the node More...
 

Additional Inherited Members

- Public Types inherited from QgsLayerTreeNode
enum  NodeType { NodeGroup, NodeLayer }
 Enumeration of possible tree node types. More...
 

Detailed Description

Layer tree node points to a map layer.

The node can exist also without a valid instance of a layer (just ID). That means the referenced layer does not need to be loaded in order to use it in layer tree. In such case, resolveReferences() method can be called once the layer is loaded.

A map layer is supposed to be present in one layer tree just once. It is however possible that temporarily a layer exists in one tree more than just once, e.g. while reordering items with drag and drop.

Since
QGIS 2.4

Definition at line 42 of file qgslayertreelayer.h.

Constructor & Destructor Documentation

◆ QgsLayerTreeLayer() [1/3]

QgsLayerTreeLayer::QgsLayerTreeLayer ( QgsMapLayer layer)
explicit

Definition at line 23 of file qgslayertreelayer.cpp.

◆ QgsLayerTreeLayer() [2/3]

QgsLayerTreeLayer::QgsLayerTreeLayer ( const QgsLayerTreeLayer other)

Definition at line 38 of file qgslayertreelayer.cpp.

◆ QgsLayerTreeLayer() [3/3]

QgsLayerTreeLayer::QgsLayerTreeLayer ( const QString &  layerId,
const QString &  name = QString(),
const QString &  source = QString(),
const QString &  provider = QString() 
)
explicit

Constructor for QgsLayerTreeLayer using weak references to layer ID, name, public source, and provider key.

Definition at line 31 of file qgslayertreelayer.cpp.

Member Function Documentation

◆ attachToLayer()

void QgsLayerTreeLayer::attachToLayer ( )
protected

Definition at line 67 of file qgslayertreelayer.cpp.

◆ clone()

QgsLayerTreeLayer * QgsLayerTreeLayer::clone ( ) const
overridevirtual

Create a copy of the node. Returns new instance.

Implements QgsLayerTreeNode.

Definition at line 158 of file qgslayertreelayer.cpp.

◆ dump()

QString QgsLayerTreeLayer::dump ( ) const
overridevirtual

Returns string with layer tree structure. For debug purposes only.

Implements QgsLayerTreeNode.

Definition at line 153 of file qgslayertreelayer.cpp.

◆ labelExpression()

QString QgsLayerTreeLayer::labelExpression ( ) const
inline

Returns the expression member of the LayerTreeNode.

Since
QGIS 3.10

Definition at line 143 of file qgslayertreelayer.h.

◆ layer()

QgsMapLayer* QgsLayerTreeLayer::layer ( ) const
inline

Returns the map layer associated with this node.

Warning
This can be (and often is!) nullptr, e.g. in the case of a layer node representing a layer which has not yet been fully loaded into a project, or a layer node representing a layer with an invalid data source. The returned pointer must ALWAYS be checked to avoid dereferencing nullptr.
See also
layerId()

Definition at line 73 of file qgslayertreelayer.h.

◆ layerId()

QString QgsLayerTreeLayer::layerId ( ) const
inline

Returns the ID for the map layer associated with this node.

See also
layer()

Definition at line 62 of file qgslayertreelayer.h.

◆ layerLoaded

void QgsLayerTreeLayer::layerLoaded ( )
signal

Emitted when a previously unavailable layer got loaded.

◆ layerWillBeUnloaded

void QgsLayerTreeLayer::layerWillBeUnloaded ( )
signal

Emitted when a previously available layer got unloaded (from layer registry).

Since
QGIS 2.6

◆ name()

QString QgsLayerTreeLayer::name ( ) const
overridevirtual

Returns the layer's name.

See also
setName()
Since
QGIS 3.0

Implements QgsLayerTreeNode.

Definition at line 77 of file qgslayertreelayer.cpp.

◆ readXml() [1/2]

QgsLayerTreeLayer * QgsLayerTreeLayer::readXml ( QDomElement &  element,
const QgsReadWriteContext context 
)
static

Read layer node from XML.

Returns new instance. Does not resolve textual references to layers. Call resolveReferences() afterwards to do it.

Definition at line 100 of file qgslayertreelayer.cpp.

◆ readXml() [2/2]

QgsLayerTreeLayer * QgsLayerTreeLayer::readXml ( QDomElement &  element,
const QgsProject project,
const QgsReadWriteContext context 
)
static

Read layer node from XML.

Returns new instance. Also resolves textual references to layers from the project (calls resolveReferences() internally).

Since
QGIS 3.0

Definition at line 124 of file qgslayertreelayer.cpp.

◆ resolveReferences()

void QgsLayerTreeLayer::resolveReferences ( const QgsProject project,
bool  looseMatching = false 
)
overridevirtual

Resolves reference to layer from stored layer ID (if it has not been resolved already)

Since
QGIS 3.0

Implements QgsLayerTreeNode.

Definition at line 46 of file qgslayertreelayer.cpp.

◆ setLabelExpression()

void QgsLayerTreeLayer::setLabelExpression ( const QString &  expression)

set the expression to evaluate

Since
QGIS 3.10

Definition at line 192 of file qgslayertreelayer.cpp.

◆ setName()

void QgsLayerTreeLayer::setName ( const QString &  n)
overridevirtual

Sets the layer's name.

See also
name()
Since
QGIS 3.0

Implements QgsLayerTreeNode.

Definition at line 82 of file qgslayertreelayer.cpp.

◆ setUseLayerName()

void QgsLayerTreeLayer::setUseLayerName ( bool  use = true)

Uses the layer's name if use is true, or the name manually set if false.

Since
QGIS 3.8

Definition at line 176 of file qgslayertreelayer.cpp.

◆ useLayerName()

bool QgsLayerTreeLayer::useLayerName ( ) const

Returns whether the layer's name is used, or the name manually set.

Since
QGIS 3.8

Definition at line 181 of file qgslayertreelayer.cpp.

◆ writeXml()

void QgsLayerTreeLayer::writeXml ( QDomElement &  parentElement,
const QgsReadWriteContext context 
)
overridevirtual

Write layer tree to XML.

Implements QgsLayerTreeNode.

Definition at line 132 of file qgslayertreelayer.cpp.

Member Data Documentation

◆ mLabelExpression

QString QgsLayerTreeLayer::mLabelExpression
protected

Expression to evaluate in the legend.

Definition at line 166 of file qgslayertreelayer.h.

◆ mLayerName

QString QgsLayerTreeLayer::mLayerName
protected

Layer name - only used if layer does not exist or if mUseLayerName is false.

Definition at line 164 of file qgslayertreelayer.h.

◆ mRef

QgsMapLayerRef QgsLayerTreeLayer::mRef
protected

Weak reference to the layer (or just it's ID if the reference is not resolved yet)

Definition at line 162 of file qgslayertreelayer.h.

◆ mUseLayerName

bool QgsLayerTreeLayer::mUseLayerName = true
protected

Definition at line 169 of file qgslayertreelayer.h.


The documentation for this class was generated from the following files: