QGIS API Documentation
3.8.0-Zanzibar (11aff65)
|
Layer tree group node serves as a container for layers and further groups. More...
#include <qgslayertreegroup.h>
Public Member Functions | |
QgsLayerTreeGroup (const QString &name=QString(), bool checked=true) | |
Constructor. More... | |
QgsLayerTreeGroup (const QgsLayerTreeGroup &other) | |
void | addChildNode (QgsLayerTreeNode *node) |
Append an existing node. More... | |
QgsLayerTreeGroup * | addGroup (const QString &name) |
Append a new group node with given name. More... | |
QgsLayerTreeLayer * | addLayer (QgsMapLayer *layer) |
Append a new layer node for given map layer. More... | |
QgsLayerTreeGroup * | clone () const override |
Returns a clone of the group. More... | |
QString | dump () const override |
Returns text representation of the tree. More... | |
QgsLayerTreeGroup * | findGroup (const QString &name) |
Find group node with specified name. More... | |
QList< QgsLayerTreeGroup * > | findGroups () const |
Find all group layer nodes. More... | |
QgsLayerTreeLayer * | findLayer (QgsMapLayer *layer) const |
Find layer node representing the map layer. More... | |
QgsLayerTreeLayer * | findLayer (const QString &layerId) const |
Find layer node representing the map layer specified by its ID. More... | |
QStringList | findLayerIds () const |
Find layer IDs used in all layer nodes. More... | |
QList< QgsLayerTreeLayer * > | findLayers () const |
Find all layer nodes. More... | |
void | insertChildNode (int index, QgsLayerTreeNode *node) |
Insert existing node at specified position. More... | |
void | insertChildNodes (int index, const QList< QgsLayerTreeNode *> &nodes) |
Insert existing nodes at specified position. More... | |
QgsLayerTreeGroup * | insertGroup (int index, const QString &name) |
Insert a new group node with given name at specified position. More... | |
QgsLayerTreeLayer * | insertLayer (int index, QgsMapLayer *layer) |
Insert a new layer node for given map layer at specified position. More... | |
bool | isMutuallyExclusive () const |
Returns whether the group is mutually exclusive (only one child can be checked at a time) More... | |
QString | name () const override |
Returns the group's name. More... | |
void | readChildrenFromXml (QDomElement &element, const QgsReadWriteContext &context) |
Read children from XML and append them to the group. More... | |
void | removeAllChildren () |
Remove all child nodes. More... | |
void | removeChildNode (QgsLayerTreeNode *node) |
Remove a child node from this group. More... | |
void | removeChildren (int from, int count) |
Remove child nodes from index "from". More... | |
void | removeChildrenGroupWithoutLayers () |
Remove all child group nodes without layers. More... | |
void | removeLayer (QgsMapLayer *layer) |
Remove map layer's node from this group. More... | |
void | resolveReferences (const QgsProject *project, bool looseMatching=false) override |
Calls resolveReferences() on child tree nodes. More... | |
void | setIsMutuallyExclusive (bool enabled, int initialChildIndex=-1) |
Set whether the group is mutually exclusive (only one child can be checked at a time). More... | |
void | setItemVisibilityCheckedRecursive (bool checked) override |
Check or uncheck a node and all its children (taking into account exclusion rules) More... | |
void | setName (const QString &n) override |
Sets the group's name. More... | |
void | writeXml (QDomElement &parentElement, const QgsReadWriteContext &context) override |
Write group (tree) as XML element <layer-tree-group> and add it to the given parent element. 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... | |
QgsLayerTreeNode * | parent () |
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... | |
bool | takeChild (QgsLayerTreeNode *node) |
Remove a child from a node. More... | |
Static Public Member Functions | |
static QgsLayerTreeGroup * | readXml (QDomElement &element, const QgsReadWriteContext &context) |
Read group (tree) from XML element <layer-tree-group> and return the newly created group (or nullptr on error). More... | |
static QgsLayerTreeGroup * | readXml (QDomElement &element, const QgsProject *project, const QgsReadWriteContext &context) |
Read group (tree) from XML element <layer-tree-group> and return the newly created group (or nullptr on error). More... | |
Static Public Member Functions inherited from QgsLayerTreeNode | |
static QgsLayerTreeNode * | readXml (QDomElement &element, const QgsReadWriteContext &context) |
Read layer tree from XML. More... | |
static QgsLayerTreeNode * | readXml (QDomElement &element, const QgsProject *project) |
Read layer tree from XML. More... | |
Protected Slots | |
void | nodeVisibilityChanged (QgsLayerTreeNode *node) |
Protected Member Functions | |
void | updateChildVisibilityMutuallyExclusive () |
Set check state of children - if mutually exclusive. More... | |
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 | |
bool | mChangingChildVisibility = false |
bool | mMutuallyExclusive = false |
Whether the group is mutually exclusive (i.e. only one child can be checked at a time) More... | |
int | mMutuallyExclusiveChildIndex = -1 |
Keeps track which child has been most recently selected (so if the whole group is unchecked and checked again, we know which child to check) More... | |
QString | mName |
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... | |
QgsLayerTreeNode * | mParent = 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... | |
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... | |
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.
Definition at line 34 of file qgslayertreegroup.h.
QgsLayerTreeGroup::QgsLayerTreeGroup | ( | const QString & | name = QString() , |
bool | checked = true |
||
) |
Constructor.
Definition at line 26 of file qgslayertreegroup.cpp.
QgsLayerTreeGroup::QgsLayerTreeGroup | ( | const QgsLayerTreeGroup & | other | ) |
Definition at line 33 of file qgslayertreegroup.cpp.
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.
Definition at line 127 of file qgslayertreegroup.cpp.
QgsLayerTreeGroup * QgsLayerTreeGroup::addGroup | ( | const QString & | name | ) |
Append a new group node with given name.
Newly created node is owned by this group.
Definition at line 65 of file qgslayertreegroup.cpp.
QgsLayerTreeLayer * QgsLayerTreeGroup::addLayer | ( | QgsMapLayer * | layer | ) |
Append a new layer node for given map layer.
The newly created node is owned by this group.
Definition at line 82 of file qgslayertreegroup.cpp.
|
overridevirtual |
Returns a clone of the group.
The children are cloned too.
Implements QgsLayerTreeNode.
Definition at line 347 of file qgslayertreegroup.cpp.
|
overridevirtual |
Returns text representation of the tree.
For debugging purposes only.
Implements QgsLayerTreeNode.
Definition at line 336 of file qgslayertreegroup.cpp.
QgsLayerTreeGroup * QgsLayerTreeGroup::findGroup | ( | const QString & | name | ) |
Find group node with specified name.
Searches recursively the whole sub-tree.
Definition at line 236 of file qgslayertreegroup.cpp.
QList< QgsLayerTreeGroup * > QgsLayerTreeGroup::findGroups | ( | ) | const |
Find all group layer nodes.
Definition at line 256 of file qgslayertreegroup.cpp.
QgsLayerTreeLayer * QgsLayerTreeGroup::findLayer | ( | QgsMapLayer * | layer | ) | const |
Find layer node representing the map layer.
Searches recursively the whole sub-tree.
Definition at line 195 of file qgslayertreegroup.cpp.
QgsLayerTreeLayer * QgsLayerTreeGroup::findLayer | ( | const QString & | layerId | ) | const |
Find layer node representing the map layer specified by its ID.
Searches recursively the whole sub-tree.
Definition at line 203 of file qgslayertreegroup.cpp.
QStringList QgsLayerTreeGroup::findLayerIds | ( | ) | const |
Find layer IDs used in all layer nodes.
Searches recursively the whole sub-tree.
Definition at line 397 of file qgslayertreegroup.cpp.
QList< QgsLayerTreeLayer * > QgsLayerTreeGroup::findLayers | ( | ) | const |
Find all layer nodes.
Searches recursively the whole sub-tree.
Definition at line 223 of file qgslayertreegroup.cpp.
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.
Definition at line 92 of file qgslayertreegroup.cpp.
void QgsLayerTreeGroup::insertChildNodes | ( | int | index, |
const 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.
Definition at line 99 of file qgslayertreegroup.cpp.
QgsLayerTreeGroup * QgsLayerTreeGroup::insertGroup | ( | int | index, |
const QString & | name | ||
) |
Insert a new group node with given name at specified position.
The newly created node is owned by this group.
Definition at line 58 of file qgslayertreegroup.cpp.
QgsLayerTreeLayer * QgsLayerTreeGroup::insertLayer | ( | int | index, |
QgsMapLayer * | layer | ||
) |
Insert a new layer node for given map layer at specified position.
The newly created node is owned by this group.
Definition at line 72 of file qgslayertreegroup.cpp.
bool QgsLayerTreeGroup::isMutuallyExclusive | ( | ) | const |
Returns whether the group is mutually exclusive (only one child can be checked at a time)
Definition at line 364 of file qgslayertreegroup.cpp.
|
overridevirtual |
Returns the group's name.
Implements QgsLayerTreeNode.
Definition at line 43 of file qgslayertreegroup.cpp.
|
protectedslot |
Definition at line 410 of file qgslayertreegroup.cpp.
void QgsLayerTreeGroup::readChildrenFromXml | ( | QDomElement & | element, |
const QgsReadWriteContext & | context | ||
) |
Read children from XML and append them to the group.
Does not resolve textual references to layers. Call resolveReferences() afterwards to do it.
Definition at line 320 of file qgslayertreegroup.cpp.
|
static |
Read group (tree) from XML element <layer-tree-group> and return the newly created group (or nullptr
on error).
Does not resolve textual references to layers. Call resolveReferences() afterwards to do it.
Definition at line 268 of file qgslayertreegroup.cpp.
|
static |
Read group (tree) from XML element <layer-tree-group> and return the newly created group (or nullptr
on error).
Also resolves textual references to layers from the project (calls resolveReferences() internally).
Definition at line 291 of file qgslayertreegroup.cpp.
void QgsLayerTreeGroup::removeAllChildren | ( | ) |
Remove all child nodes.
The nodes will be deleted.
Definition at line 190 of file qgslayertreegroup.cpp.
void QgsLayerTreeGroup::removeChildNode | ( | QgsLayerTreeNode * | node | ) |
Remove a child node from this group.
The node will be deleted.
Definition at line 132 of file qgslayertreegroup.cpp.
void QgsLayerTreeGroup::removeChildren | ( | int | from, |
int | count | ||
) |
Remove child nodes from index "from".
The nodes will be deleted.
Definition at line 155 of file qgslayertreegroup.cpp.
void QgsLayerTreeGroup::removeChildrenGroupWithoutLayers | ( | ) |
Remove all child group nodes without layers.
The groupnodes will be deleted.
Definition at line 173 of file qgslayertreegroup.cpp.
void QgsLayerTreeGroup::removeLayer | ( | QgsMapLayer * | layer | ) |
Remove map layer's node from this group.
The node will be deleted.
Definition at line 139 of file qgslayertreegroup.cpp.
|
overridevirtual |
Calls resolveReferences() on child tree nodes.
Implements QgsLayerTreeNode.
Definition at line 352 of file qgslayertreegroup.cpp.
void QgsLayerTreeGroup::setIsMutuallyExclusive | ( | bool | enabled, |
int | initialChildIndex = -1 |
||
) |
Set whether the group is mutually exclusive (only one child can be checked at a time).
The initial child index determines which child should be initially checked. The default value of -1 will determine automatically (either first one currently checked or none)
Definition at line 369 of file qgslayertreegroup.cpp.
|
overridevirtual |
Check or uncheck a node and all its children (taking into account exclusion rules)
Reimplemented from QgsLayerTreeNode.
Definition at line 445 of file qgslayertreegroup.cpp.
|
overridevirtual |
Sets the group's name.
Implements QgsLayerTreeNode.
Definition at line 48 of file qgslayertreegroup.cpp.
|
protected |
Set check state of children - if mutually exclusive.
Definition at line 428 of file qgslayertreegroup.cpp.
|
overridevirtual |
Write group (tree) as XML element <layer-tree-group> and add it to the given parent element.
Implements QgsLayerTreeNode.
Definition at line 299 of file qgslayertreegroup.cpp.
|
protected |
Definition at line 220 of file qgslayertreegroup.h.
|
protected |
Whether the group is mutually exclusive (i.e. only one child can be checked at a time)
Definition at line 223 of file qgslayertreegroup.h.
|
protected |
Keeps track which child has been most recently selected (so if the whole group is unchecked and checked again, we know which child to check)
Definition at line 229 of file qgslayertreegroup.h.
|
protected |
Definition at line 218 of file qgslayertreegroup.h.