QGIS API Documentation  2.5.0-Master
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Static Public Member Functions | Protected Slots | Protected Member Functions | Protected Attributes | List of all members
QgsLayerTreeGroup Class Reference

Layer tree group node serves as a container for layers and further groups. More...

#include <qgslayertreegroup.h>

Inheritance diagram for QgsLayerTreeGroup:
Inheritance graph
[legend]

Public Member Functions

 QgsLayerTreeGroup (const QString &name=QString(), Qt::CheckState checked=Qt::Checked)
 
 QgsLayerTreeGroup (const QgsLayerTreeGroup &other)
 
QString name () const
 Get group's name. More...
 
void setName (const QString &n)
 Set group's name. More...
 
QgsLayerTreeGroupinsertGroup (int index, const QString &name)
 Insert a new group node with given name at specified position. Newly created node is owned by this group. More...
 
QgsLayerTreeGroupaddGroup (const QString &name)
 Append a new group node with given name. Newly created node is owned by this group. More...
 
QgsLayerTreeLayerinsertLayer (int index, QgsMapLayer *layer)
 Insert a new layer node for given map layer at specified position. Newly created node is owned by this group. More...
 
QgsLayerTreeLayeraddLayer (QgsMapLayer *layer)
 Append a new layer node for given map layer. Newly created node is owned by this group. More...
 
void insertChildNodes (int index, QList< QgsLayerTreeNode * > nodes)
 Insert existing nodes at specified position. The nodes must not have a parent yet. The nodes will be owned by this group. More...
 
void insertChildNode (int index, QgsLayerTreeNode *node)
 Insert existing node at specified position. The node must not have a parent yet. The node will be owned by this group. More...
 
void addChildNode (QgsLayerTreeNode *node)
 Append an existing node. The node must not have a parent yet. The node will be owned by this group. More...
 
void removeChildNode (QgsLayerTreeNode *node)
 Remove a child node from this group. The node will be deleted. More...
 
void removeLayer (QgsMapLayer *layer)
 Remove map layer's node from this group. The node will be deleted. More...
 
void removeChildren (int from, int count)
 Remove child nodes from index "from". The nodes will be deleted. More...
 
void removeAllChildren ()
 Remove all child nodes. The nodes will be deleted. More...
 
QgsLayerTreeLayerfindLayer (const QString &layerId)
 Find layer node representing the map layer specified by its ID. Searches recursively the whole sub-tree. More...
 
QList< QgsLayerTreeLayer * > findLayers () const
 Find all layer nodes. Searches recursively the whole sub-tree. More...
 
QStringList findLayerIds () const
 Find layer IDs used in all layer nodes. Searches recursively the whole sub-tree. More...
 
QgsLayerTreeGroupfindGroup (const QString &name)
 Find group node with specified name. Searches recursively the whole sub-tree. More...
 
virtual void writeXML (QDomElement &parentElement)
 Write group (tree) as XML element <layer-tree-group> and add it to the given parent element. More...
 
void readChildrenFromXML (QDomElement &element)
 Read children from XML and append them to the group. More...
 
virtual QString dump () const
 Return text representation of the tree. For debugging purposes only. More...
 
virtual QgsLayerTreeNodeclone () const
 Return a clone of the group. The children are cloned too. More...
 
Qt::CheckState isVisible () const
 Return the check state of the group node. More...
 
void setVisible (Qt::CheckState state)
 Set check state of the group node - will also update children. More...
 
- Public Member Functions inherited from QgsLayerTreeNode
 ~QgsLayerTreeNode ()
 
NodeType nodeType ()
 Find out about type of the node. It is usually shorter to use convenience functions from QgsLayerTree namespace for that. More...
 
QgsLayerTreeNodeparent ()
 Get pointer to the parent. If parent is a null pointer, the node is a root node. More...
 
QList< QgsLayerTreeNode * > children ()
 Get list of children of the node. Children are owned by the parent. More...
 
bool isExpanded () const
 Return whether the node should be shown as expanded or collapsed in GUI. More...
 
void setExpanded (bool expanded)
 Set whether the node should be shown as expanded or collapsed in GUI. More...
 
void setCustomProperty (const QString &key, const QVariant &value)
 Set a custom property for the node. More...
 
QVariant customProperty (const QString &key, const QVariant &defaultValue=QVariant()) const
 Read a custom property from layer. More...
 
void removeCustomProperty (const QString &key)
 Remove a custom property from layer. More...
 
QStringList customProperties () const
 Return list of keys stored in custom properties. More...
 

Static Public Member Functions

static QgsLayerTreeGroupreadXML (QDomElement &element)
 Read group (tree) from XML element <layer-tree-group> and return the newly created group (or null on error) More...
 
- Static Public Member Functions inherited from QgsLayerTreeNode
static QgsLayerTreeNodereadXML (QDomElement &element)
 Read layer tree from XML. Returns new instance. More...
 

Protected Slots

void layerDestroyed ()
 
void nodeVisibilityChanged (QgsLayerTreeNode *node)
 

Protected Member Functions

void updateVisibilityFromChildren ()
 
- Protected Member Functions inherited from QgsLayerTreeNode
 QgsLayerTreeNode (NodeType t)
 
 QgsLayerTreeNode (const QgsLayerTreeNode &other)
 
void readCommonXML (QDomElement &element)
 
void writeCommonXML (QDomElement &element)
 
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 removeChildrenPrivate (int from, int count)
 Low-level removal of children from the node. More...
 

Protected Attributes

QString mName
 
Qt::CheckState mChecked
 
bool mChangingChildVisibility
 
- Protected Attributes inherited from QgsLayerTreeNode
NodeType mNodeType
 type of the node - determines which subclass is used More...
 
QgsLayerTreeNodemParent
 pointer to the parent node - null in case of root node More...
 
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...
 
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...
 
- Signals inherited from QgsLayerTreeNode
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 addedChildren (QgsLayerTreeNode *node, int indexFrom, int indexTo)
 Emitted when one or more nodes have been 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...
 
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, Qt::CheckState state)
 Emitted when check state of a node within the tree has been changed. More...
 
void customPropertyChanged (QgsLayerTreeNode *node, 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...
 

Detailed Description

Layer tree group node serves as a container for layers and further groups.

Group names do not need to be unique within one tree nor within one parent.

Note
added in 2.4

Constructor & Destructor Documentation

QgsLayerTreeGroup::QgsLayerTreeGroup ( const QString &  name = QString(),
Qt::CheckState  checked = Qt::Checked 
)
QgsLayerTreeGroup::QgsLayerTreeGroup ( const QgsLayerTreeGroup other)

Member Function Documentation

void QgsLayerTreeGroup::addChildNode ( QgsLayerTreeNode node)

Append an existing node. The node must not have a parent yet. The node will be owned by this group.

QgsLayerTreeGroup * QgsLayerTreeGroup::addGroup ( const QString &  name)

Append a new group node with given name. Newly created node is owned by this group.

QgsLayerTreeLayer * QgsLayerTreeGroup::addLayer ( QgsMapLayer layer)

Append a new layer node for given map layer. Newly created node is owned by this group.

QgsLayerTreeNode * QgsLayerTreeGroup::clone ( ) const
virtual

Return a clone of the group. The children are cloned too.

Implements QgsLayerTreeNode.

QString QgsLayerTreeGroup::dump ( ) const
virtual

Return text representation of the tree. For debugging purposes only.

Implements QgsLayerTreeNode.

QgsLayerTreeGroup * QgsLayerTreeGroup::findGroup ( const QString &  name)

Find group node with specified name. Searches recursively the whole sub-tree.

QgsLayerTreeLayer * QgsLayerTreeGroup::findLayer ( const QString &  layerId)

Find layer node representing the map layer specified by its ID. Searches recursively the whole sub-tree.

QStringList QgsLayerTreeGroup::findLayerIds ( ) const

Find layer IDs used in all layer nodes. Searches recursively the whole sub-tree.

QList< QgsLayerTreeLayer * > QgsLayerTreeGroup::findLayers ( ) const

Find all layer nodes. Searches recursively the whole sub-tree.

void QgsLayerTreeGroup::insertChildNode ( int  index,
QgsLayerTreeNode node 
)

Insert existing node at specified position. The node must not have a parent yet. The node will be owned by this group.

void QgsLayerTreeGroup::insertChildNodes ( int  index,
QList< QgsLayerTreeNode * >  nodes 
)

Insert existing nodes at specified position. The nodes must not have a parent yet. The nodes will be owned by this group.

QgsLayerTreeGroup * QgsLayerTreeGroup::insertGroup ( int  index,
const QString &  name 
)

Insert a new group node with given name at specified position. Newly created node is owned by this group.

QgsLayerTreeLayer * QgsLayerTreeGroup::insertLayer ( int  index,
QgsMapLayer layer 
)

Insert a new layer node for given map layer at specified position. Newly created node is owned by this group.

Qt::CheckState QgsLayerTreeGroup::isVisible ( ) const
inline

Return the check state of the group node.

void QgsLayerTreeGroup::layerDestroyed ( )
protectedslot
QString QgsLayerTreeGroup::name ( ) const
inline

Get group's name.

void QgsLayerTreeGroup::nodeVisibilityChanged ( QgsLayerTreeNode node)
protectedslot
void QgsLayerTreeGroup::readChildrenFromXML ( QDomElement &  element)

Read children from XML and append them to the group.

QgsLayerTreeGroup * QgsLayerTreeGroup::readXML ( QDomElement &  element)
static

Read group (tree) from XML element <layer-tree-group> and return the newly created group (or null on error)

void QgsLayerTreeGroup::removeAllChildren ( )

Remove all child nodes. The nodes will be deleted.

void QgsLayerTreeGroup::removeChildNode ( QgsLayerTreeNode node)

Remove a child node from this group. The node will be deleted.

void QgsLayerTreeGroup::removeChildren ( int  from,
int  count 
)

Remove child nodes from index "from". The nodes will be deleted.

void QgsLayerTreeGroup::removeLayer ( QgsMapLayer layer)

Remove map layer's node from this group. The node will be deleted.

void QgsLayerTreeGroup::setName ( const QString &  n)
inline

Set group's name.

void QgsLayerTreeGroup::setVisible ( Qt::CheckState  state)

Set check state of the group node - will also update children.

void QgsLayerTreeGroup::updateVisibilityFromChildren ( )
protected
void QgsLayerTreeGroup::writeXML ( QDomElement &  parentElement)
virtual

Write group (tree) as XML element <layer-tree-group> and add it to the given parent element.

Implements QgsLayerTreeNode.

Member Data Documentation

bool QgsLayerTreeGroup::mChangingChildVisibility
protected
Qt::CheckState QgsLayerTreeGroup::mChecked
protected
QString QgsLayerTreeGroup::mName
protected

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