QGIS API Documentation 3.99.0-Master (21b3aa880ba)
Loading...
Searching...
No Matches
QgsLayerTreeView Class Reference

Extends QTreeView and provides additional functionality when working with a layer tree. More...

#include <qgslayertreeview.h>

Inheritance diagram for QgsLayerTreeView:

Public Slots

void refreshLayerSymbology (const QString &layerId)
 Force refresh of layer symbology. Normally not needed as the changes of layer's renderer are monitored by the model.
void setHideValidLayers (bool hideValid)
 Sets whether valid layers should be hidden (i.e.
void setLayerMarkWidth (int width)
 Set width of contextual menu mark, at right of layer node items.
void setMessageBar (QgsMessageBar *messageBar)
 Set the message bar to display messages from the layer tree.
void setShowPrivateLayers (bool showPrivate)
 Set the show private layers to showPrivate.
Public Slots inherited from QgsLayerTreeViewBase
void collapseAllNodes ()
 Enhancement of QTreeView::collapseAll() that also records expanded state in layer tree nodes.
void expandAllNodes ()
 Enhancement of QTreeView::expandAll() that also records expanded state in layer tree nodes.

Signals

void contextMenuAboutToShow (QMenu *menu)
 Emitted when the context menu is about to show.
void currentLayerChanged (QgsMapLayer *layer)
 Emitted when a current layer is changed.
void datasetsDropped (QDropEvent *event)
 Emitted when datasets are dropped onto the layer tree view.

Public Member Functions

 QgsLayerTreeView (QWidget *parent=nullptr)
 Constructor for QgsLayerTreeView.
 ~QgsLayerTreeView () override
void addIndicator (QgsLayerTreeNode *node, QgsLayerTreeViewIndicator *indicator)
 Adds an indicator to the given layer tree node.
bool hideValidLayers () const
 Returns if valid layers should be hidden (i.e.
QList< QgsLayerTreeViewIndicator * > indicators (QgsLayerTreeNode *node) const
 Returns list of indicators associated with a particular layer tree node.
int layerMarkWidth () const
 Returns width of contextual menu mark, at right of layer node items.
QgsLayerTreeViewMenuProvidermenuProvider () const
 Returns pointer to the context menu provider. May be nullptr.
QgsLayerTreeProxyModelproxyModel () const
 Returns the proxy model used by the view.
void removeIndicator (QgsLayerTreeNode *node, QgsLayerTreeViewIndicator *indicator)
 Removes a previously added indicator to a layer tree node.
void setLayerVisible (QgsMapLayer *layer, bool visible)
 Convenience methods which sets the visible state of the specified map layer.
void setMenuProvider (QgsLayerTreeViewMenuProvider *menuProvider)
 Sets provider for context menu. Takes ownership of the instance.
void setModel (QAbstractItemModel *model) override
 Overridden setModel() from base class.
void setModel (QgsLayerTreeModel *model, QgsLayerTreeProxyModel *proxyModel)
 Sets the model and proxyModel for the view.
bool showPrivateLayers () const
 Returns the show private layers status.
Public Member Functions inherited from QgsLayerTreeViewBase
 QgsLayerTreeViewBase (QWidget *parent=nullptr)
 Constructor for QgsLayerTreeViewBase.
 ~QgsLayerTreeViewBase () override
QgsLayerTreeGroupcurrentGroupNode () const
 Returns the current group node.
QgsMapLayercurrentLayer () const
 Returns the currently selected layer, or nullptr if no layers is selected.
QgsLayerTreeModelLegendNodecurrentLegendNode () const
 Gets current legend node.
QgsLayerTreeNodecurrentNode () const
 Returns the current node.
QgsLayerTreeViewDefaultActionsdefaultActions ()
 Gets access to the default actions that may be used with the tree view.
QgsLayerTreeModelLegendNodeindex2legendNode (const QModelIndex &index) const
 Returns legend node for given view index.
QgsLayerTreeNodeindex2node (const QModelIndex &index) const
 Returns the layer tree node for given view index.
QgsMapLayerlayerForIndex (const QModelIndex &index) const
 Returns the map layer corresponding to a view index.
QgsLayerTreeModellayerTreeModel () const
 Returns the associated layer tree model.
QModelIndex legendNode2index (QgsLayerTreeModelLegendNode *legendNode)
 Returns the view index for a given legend node.
QModelIndex legendNode2sourceIndex (QgsLayerTreeModelLegendNode *legendNode)
 Returns the layer tree source model index for a given legend node.
void mouseDoubleClickEvent (QMouseEvent *event) override
QModelIndex node2index (QgsLayerTreeNode *node) const
 Returns the view model index for a given node.
QModelIndex node2sourceIndex (QgsLayerTreeNode *node) const
 Returns the layer tree source model index for a given node.
QList< QgsLayerTreeLayer * > selectedLayerNodes () const
 Returns the list of selected nodes filtered to just layer nodes (QgsLayerTreeLayer).
QList< QgsMapLayer * > selectedLayers () const
 Returns the list of selected layers.
QList< QgsMapLayer * > selectedLayersRecursive () const
 Gets list of selected layers, including those that are not directly selected, but their ancestor groups is selected.
QList< QgsLayerTreeModelLegendNode * > selectedLegendNodes () const
 Returns the list of selected legend nodes.
QList< QgsLayerTreeNode * > selectedNodes (bool skipInternal=false) const
 Returns the list of selected layer tree nodes.
void setCurrentLayer (QgsMapLayer *layer)
 Sets the currently selected layer.
void setCurrentNode (QgsLayerTreeNode *node)
 Sets the currently selected node.
void setLayerTreeModel (QgsLayerTreeModel *model)
 Associates a layer tree model with the view.

Protected Slots

void modelRowsInserted (const QModelIndex &index, int start, int end)
void modelRowsRemoved ()
void onCurrentChanged ()
Protected Slots inherited from QgsLayerTreeViewBase
void onExpandedChanged (QgsLayerTreeNode *node, bool expanded)
 Called when the expanded state changes for a node.
void onModelReset ()
 Called when the model is reset.
void updateExpandedStateToNode (const QModelIndex &index)
 Stores the expanded state to a node with matching index.

Protected Member Functions

void contextMenuEvent (QContextMenuEvent *event) override
void dragEnterEvent (QDragEnterEvent *event) override
void dragMoveEvent (QDragMoveEvent *event) override
void dropEvent (QDropEvent *event) override
void keyPressEvent (QKeyEvent *event) override
void mouseReleaseEvent (QMouseEvent *event) override
void resizeEvent (QResizeEvent *event) override
Protected Member Functions inherited from QgsLayerTreeViewBase
QModelIndex layerTreeModelIndexToViewIndex (const QModelIndex &index) const
 Returns the layer tree model index corresponding with a view index.
void updateExpandedStateFromNode (QgsLayerTreeNode *node)
 Updates the expanded state from a node.
QModelIndex viewIndexToLayerTreeModelIndex (const QModelIndex &index) const
 Returns the view index corresponding with a layer tree model index.

Protected Attributes

QString mCurrentLayerID
 Keeps track of current layer ID (to check when to emit signal about change of current layer).
QHash< QgsLayerTreeNode *, QList< QgsLayerTreeViewIndicator * > > mIndicators
 Storage of indicators used with the tree view.
QPoint mLastReleaseMousePos
 Used by the item delegate for identification of which indicator has been clicked.
int mLayerMarkWidth
 Width of contextual menu mark for layer nodes.
QgsLayerTreeViewMenuProvidermMenuProvider = nullptr
 Context menu provider. Owned by the view.
Protected Attributes inherited from QgsLayerTreeViewBase
QgsLayerTreeViewDefaultActionsmDefaultActions = nullptr
 helper class with default actions. Lazily initialized.

Friends

class QgsLayerTreeViewItemDelegate

Detailed Description

Extends QTreeView and provides additional functionality when working with a layer tree.

The view updates expanded state of layer tree nodes and also listens to changes to expanded states in the layer tree.

The view keeps track of the current layer and emits a signal when the current layer has changed.

Allows the client to specify a context menu provider with custom actions. Also it comes with a set of default actions that can be used when building context menu.

See also
QgsLayerTreeModel

Definition at line 428 of file qgslayertreeview.h.

Constructor & Destructor Documentation

◆ QgsLayerTreeView()

QgsLayerTreeView::QgsLayerTreeView ( QWidget * parent = nullptr)
explicit

Constructor for QgsLayerTreeView.

Definition at line 466 of file qgslayertreeview.cpp.

◆ ~QgsLayerTreeView()

QgsLayerTreeView::~QgsLayerTreeView ( )
override

Definition at line 478 of file qgslayertreeview.cpp.

Member Function Documentation

◆ addIndicator()

void QgsLayerTreeView::addIndicator ( QgsLayerTreeNode * node,
QgsLayerTreeViewIndicator * indicator )

Adds an indicator to the given layer tree node.

Indicators are icons shown next to layer/group names in the layer tree view. They can be used to show extra information with tree nodes and they allow user interaction.

Does not take ownership of the indicator. One indicator object may be used for multiple layer tree nodes.

See also
removeIndicator
indicators
Since
QGIS 3.2

Definition at line 693 of file qgslayertreeview.cpp.

◆ contextMenuAboutToShow

void QgsLayerTreeView::contextMenuAboutToShow ( QMenu * menu)
signal

Emitted when the context menu is about to show.

Allows customization of the menu.

Since
QGIS 3.32

◆ contextMenuEvent()

void QgsLayerTreeView::contextMenuEvent ( QContextMenuEvent * event)
overrideprotected

Definition at line 541 of file qgslayertreeview.cpp.

◆ currentLayerChanged

void QgsLayerTreeView::currentLayerChanged ( QgsMapLayer * layer)
signal

Emitted when a current layer is changed.

◆ datasetsDropped

void QgsLayerTreeView::datasetsDropped ( QDropEvent * event)
signal

Emitted when datasets are dropped onto the layer tree view.

◆ dragEnterEvent()

void QgsLayerTreeView::dragEnterEvent ( QDragEnterEvent * event)
overrideprotected

Definition at line 831 of file qgslayertreeview.cpp.

◆ dragMoveEvent()

void QgsLayerTreeView::dragMoveEvent ( QDragMoveEvent * event)
overrideprotected

Definition at line 845 of file qgslayertreeview.cpp.

◆ dropEvent()

void QgsLayerTreeView::dropEvent ( QDropEvent * event)
overrideprotected

Definition at line 859 of file qgslayertreeview.cpp.

◆ hideValidLayers()

bool QgsLayerTreeView::hideValidLayers ( ) const

Returns if valid layers should be hidden (i.e.

only invalid layers are shown).

See also
setHideValidLayers()
Since
QGIS 3.38

Definition at line 776 of file qgslayertreeview.cpp.

◆ indicators()

QList< QgsLayerTreeViewIndicator * > QgsLayerTreeView::indicators ( QgsLayerTreeNode * node) const

Returns list of indicators associated with a particular layer tree node.

See also
addIndicator
removeIndicator
Since
QGIS 3.2

Definition at line 713 of file qgslayertreeview.cpp.

◆ keyPressEvent()

void QgsLayerTreeView::keyPressEvent ( QKeyEvent * event)
overrideprotected

Definition at line 800 of file qgslayertreeview.cpp.

◆ layerMarkWidth()

int QgsLayerTreeView::layerMarkWidth ( ) const
inline

Returns width of contextual menu mark, at right of layer node items.

See also
setLayerMarkWidth
Since
QGIS 3.8

Definition at line 517 of file qgslayertreeview.h.

◆ menuProvider()

QgsLayerTreeViewMenuProvider * QgsLayerTreeView::menuProvider ( ) const
inline

Returns pointer to the context menu provider. May be nullptr.

Definition at line 474 of file qgslayertreeview.h.

◆ modelRowsInserted

void QgsLayerTreeView::modelRowsInserted ( const QModelIndex & index,
int start,
int end )
protectedslot

Definition at line 562 of file qgslayertreeview.cpp.

◆ modelRowsRemoved

void QgsLayerTreeView::modelRowsRemoved ( )
protectedslot

Definition at line 634 of file qgslayertreeview.cpp.

◆ mouseReleaseEvent()

void QgsLayerTreeView::mouseReleaseEvent ( QMouseEvent * event)
overrideprotected

Definition at line 781 of file qgslayertreeview.cpp.

◆ onCurrentChanged

void QgsLayerTreeView::onCurrentChanged ( )
protectedslot

Definition at line 640 of file qgslayertreeview.cpp.

◆ proxyModel()

QgsLayerTreeProxyModel * QgsLayerTreeView::proxyModel ( ) const

Returns the proxy model used by the view.

This can be used to set filters controlling which layers are shown in the view.

Since
QGIS 3.18

Definition at line 948 of file qgslayertreeview.cpp.

◆ refreshLayerSymbology

void QgsLayerTreeView::refreshLayerSymbology ( const QString & layerId)
slot

Force refresh of layer symbology. Normally not needed as the changes of layer's renderer are monitored by the model.

Definition at line 725 of file qgslayertreeview.cpp.

◆ removeIndicator()

void QgsLayerTreeView::removeIndicator ( QgsLayerTreeNode * node,
QgsLayerTreeViewIndicator * indicator )

Removes a previously added indicator to a layer tree node.

Does not delete the indicator.

See also
addIndicator
indicators
Since
QGIS 3.2

Definition at line 707 of file qgslayertreeview.cpp.

◆ resizeEvent()

void QgsLayerTreeView::resizeEvent ( QResizeEvent * event)
overrideprotected

Definition at line 885 of file qgslayertreeview.cpp.

◆ setHideValidLayers

void QgsLayerTreeView::setHideValidLayers ( bool hideValid)
slot

Sets whether valid layers should be hidden (i.e.

only invalid layers are shown).

See also
setHideValidLayers()
Since
QGIS 3.38

Definition at line 762 of file qgslayertreeview.cpp.

◆ setLayerMarkWidth

void QgsLayerTreeView::setLayerMarkWidth ( int width)
inlineslot

Set width of contextual menu mark, at right of layer node items.

See also
layerMarkWidth
Since
QGIS 3.8

Definition at line 557 of file qgslayertreeview.h.

◆ setLayerVisible()

void QgsLayerTreeView::setLayerVisible ( QgsMapLayer * layer,
bool visible )

Convenience methods which sets the visible state of the specified map layer.

See also
QgsLayerTreeNode::setItemVisibilityChecked()
Since
QGIS 3.10

Definition at line 530 of file qgslayertreeview.cpp.

◆ setMenuProvider()

void QgsLayerTreeView::setMenuProvider ( QgsLayerTreeViewMenuProvider * menuProvider)

Sets provider for context menu. Takes ownership of the instance.

Definition at line 524 of file qgslayertreeview.cpp.

◆ setMessageBar

void QgsLayerTreeView::setMessageBar ( QgsMessageBar * messageBar)
slot

Set the message bar to display messages from the layer tree.

Since
QGIS 3.14

Definition at line 736 of file qgslayertreeview.cpp.

◆ setModel() [1/2]

void QgsLayerTreeView::setModel ( QAbstractItemModel * model)
override

Overridden setModel() from base class.

Only QgsLayerTreeModel is an acceptable model.

Note
This method automatically creates a QgsLayerTreeProxyModel to use as a proxy.

Definition at line 483 of file qgslayertreeview.cpp.

◆ setModel() [2/2]

void QgsLayerTreeView::setModel ( QgsLayerTreeModel * model,
QgsLayerTreeProxyModel * proxyModel )

Sets the model and proxyModel for the view.

Use this method when a custom proxy model is required.

Since
QGIS 4.0

Definition at line 496 of file qgslayertreeview.cpp.

◆ setShowPrivateLayers

void QgsLayerTreeView::setShowPrivateLayers ( bool showPrivate)
slot

Set the show private layers to showPrivate.

Since
QGIS 3.18

Definition at line 753 of file qgslayertreeview.cpp.

◆ showPrivateLayers()

bool QgsLayerTreeView::showPrivateLayers ( ) const

Returns the show private layers status.

Since
QGIS 3.18

Definition at line 771 of file qgslayertreeview.cpp.

◆ QgsLayerTreeViewItemDelegate

friend class QgsLayerTreeViewItemDelegate
friend

Definition at line 646 of file qgslayertreeview.h.

Member Data Documentation

◆ mCurrentLayerID

QString QgsLayerTreeView::mCurrentLayerID
protected

Keeps track of current layer ID (to check when to emit signal about change of current layer).

Definition at line 625 of file qgslayertreeview.h.

◆ mIndicators

QHash<QgsLayerTreeNode *, QList<QgsLayerTreeViewIndicator *> > QgsLayerTreeView::mIndicators
protected

Storage of indicators used with the tree view.

Definition at line 627 of file qgslayertreeview.h.

◆ mLastReleaseMousePos

QPoint QgsLayerTreeView::mLastReleaseMousePos
protected

Used by the item delegate for identification of which indicator has been clicked.

Definition at line 629 of file qgslayertreeview.h.

◆ mLayerMarkWidth

int QgsLayerTreeView::mLayerMarkWidth
protected

Width of contextual menu mark for layer nodes.

Definition at line 632 of file qgslayertreeview.h.

◆ mMenuProvider

QgsLayerTreeViewMenuProvider* QgsLayerTreeView::mMenuProvider = nullptr
protected

Context menu provider. Owned by the view.

Definition at line 623 of file qgslayertreeview.h.


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