QGIS API Documentation  2.18.21-Las Palmas (9fba24a)
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Slots | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
QgsLayerTreeModel Class Reference

The QgsLayerTreeModel class is model implementation for Qt item views framework. More...

#include <qgslayertreemodel.h>

Inheritance diagram for QgsLayerTreeModel:
Inheritance graph
[legend]

Classes

struct  LayerLegendData
 Structure that stores all data associated with one map layer. More...
 
struct  LayerLegendTree
 Structure that stores tree representation of map layer's legend. More...
 

Public Types

enum  Flag {
  ShowLegend = 0x0001, ShowSymbology = 0x0001, ShowRasterPreviewIcon = 0x0002, ShowLegendAsTree = 0x0004,
  DeferredLegendInvalidation = 0x0008, UseEmbeddedWidgets = 0x0010, AllowNodeReorder = 0x1000, AllowNodeRename = 0x2000,
  AllowNodeChangeVisibility = 0x4000, AllowLegendChangeState = 0x8000, AllowSymbologyChangeState = 0x8000
}
 

Public Member Functions

 QgsLayerTreeModel (QgsLayerTreeGroup *rootNode, QObject *parent=nullptr)
 Construct a new tree model with given layer tree (root node must not be null pointer). More...
 
 ~QgsLayerTreeModel ()
 
int autoCollapseLegendNodes () const
 Return at what number of legend nodes the layer node should be collapsed. -1 means no auto-collapse (default). More...
 
Q_DECL_DEPRECATED int autoCollapseSymbologyNodes () const
 
int columnCount (const QModelIndex &parent=QModelIndex()) const override
 
QModelIndex currentIndex () const
 Get index of the item marked as current. Item marked as current is underlined. More...
 
QVariant data (const QModelIndex &index, int role=Qt::DisplayRole) const override
 
bool dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
 
QgsLayerTreeModelLegendNodefindLegendNode (const QString &layerId, const QString &ruleKey) const
 Searches through the layer tree to find a legend node with a matching layer ID and rule key. More...
 
Qt::ItemFlags flags (const QModelIndex &index) const override
 
Flags flags () const
 Return OR-ed combination of model flags. More...
 
QModelIndex index (int row, int column, const QModelIndex &parent=QModelIndex()) const override
 
QgsLayerTreeNodeindex2node (const QModelIndex &index) const
 Return layer tree node for given index. More...
 
QList< QgsLayerTreeNode * > indexes2nodes (const QModelIndexList &list, bool skipInternal=false) const
 Convert a list of indexes to a list of layer tree nodes. More...
 
Q_DECL_DEPRECATED bool isIndexSymbologyNode (const QModelIndex &index) const
 Return true if index represents a legend node (instead of layer node) More...
 
QList< QgsLayerTreeModelLegendNode * > layerLegendNodes (QgsLayerTreeLayer *nodeLayer, bool skipNodeEmbeddedInParent=false)
 Return filtered list of active legend nodes attached to a particular layer node (by default it returns also legend node embedded in parent layer node (if any) unless skipNodeEmbeddedInParent is true) More...
 
Q_DECL_DEPRECATED QgsLayerTreeLayerlayerNodeForSymbologyNode (const QModelIndex &index) const
 Return layer node to which a legend node belongs to. More...
 
QList< QgsLayerTreeModelLegendNode * > layerOriginalLegendNodes (QgsLayerTreeLayer *nodeLayer)
 Return original (unfiltered) list of legend nodes attached to a particular layer node. More...
 
QMap< QString, QStringlayerStyleOverrides () const
 Get map of map layer style overrides (key: layer ID, value: style name) where a different style should be used instead of the current one. More...
 
QFont layerTreeNodeFont (int nodeType) const
 Get font for a particular type of layer tree node. nodeType should come from QgsLayerTreeNode::NodeType enumeration. More...
 
Q_DECL_DEPRECATED const QgsMapSettingslegendFilterByMap () const
 Returns the current map settings used for legend filtering. More...
 
double legendFilterByScale () const
 
const QgsMapSettingslegendFilterMapSettings () const
 Returns the current map settings used for the current legend filter (or null if none is enabled) More...
 
void legendMapViewData (double *mapUnitsPerPixel, int *dpi, double *scale)
 Get hints about map view - to be used in legend nodes. More...
 
QModelIndex legendNode2index (QgsLayerTreeModelLegendNode *legendNode)
 Return index for a given legend node. More...
 
QgsLayerTreeModelLegendNodelegendNodeEmbeddedInParent (QgsLayerTreeLayer *nodeLayer) const
 Return legend node that may be embbeded in parent (i.e. More...
 
QMimeDatamimeData (const QModelIndexList &indexes) const override
 
QStringList mimeTypes () const override
 
QModelIndex node2index (QgsLayerTreeNode *node) const
 Return index for a given node. If the node does not belong to the layer tree, the result is undefined. More...
 
QModelIndex parent (const QModelIndex &child) const override
 
void refreshLayerLegend (QgsLayerTreeLayer *nodeLayer)
 Force a refresh of legend nodes of a layer node. More...
 
Q_DECL_DEPRECATED void refreshLayerSymbology (QgsLayerTreeLayer *nodeLayer)
 
bool removeRows (int row, int count, const QModelIndex &parent=QModelIndex()) override
 
QgsLayerTreeGrouprootGroup () const
 Return pointer to the root node of the layer tree. Always a non-null pointer. More...
 
int rowCount (const QModelIndex &parent=QModelIndex()) const override
 
void setAutoCollapseLegendNodes (int nodeCount)
 Set at what number of legend nodes the layer node should be collapsed. Setting -1 disables the auto-collapse (default). More...
 
Q_DECL_DEPRECATED void setAutoCollapseSymbologyNodes (int nodeCount)
 
void setCurrentIndex (const QModelIndex &currentIndex)
 Set index of the current item. May be used by view. Item marked as current is underlined. More...
 
bool setData (const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
 
void setFlag (Flag f, bool on=true)
 Enable or disable a model flag. More...
 
void setFlags (const QgsLayerTreeModel::Flags &f)
 Set OR-ed combination of model flags. More...
 
void setLayerStyleOverrides (const QMap< QString, QString > &overrides)
 Set map of map layer style overrides (key: layer ID, value: style name) where a different style should be used instead of the current one. More...
 
void setLayerTreeNodeFont (int nodeType, const QFont &font)
 Set font for a particular type of layer tree node. nodeType should come from QgsLayerTreeNode::NodeType enumeration. More...
 
void setLegendFilter (const QgsMapSettings *settings, bool useExtent=true, const QgsGeometry &polygon=QgsGeometry(), bool useExpressions=true)
 Filter display of legend nodes for given map settings. More...
 
void setLegendFilterByMap (const QgsMapSettings *settings)
 Force only display of legend nodes which are valid for given map settings. More...
 
void setLegendFilterByScale (double scaleDenominator)
 Force only display of legend nodes which are valid for given scale denominator. More...
 
void setLegendMapViewData (double mapUnitsPerPixel, int dpi, double scale)
 Give the layer tree model hints about the currently associated map view so that legend nodes that use map units can be scaled currectly. More...
 
void setRootGroup (QgsLayerTreeGroup *newRootGroup)
 Reset the model and use a new root group node. More...
 
Qt::DropActions supportedDropActions () const override
 
bool testFlag (Flag f) const
 Check whether a flag is enabled. More...
 
- Public Member Functions inherited from QAbstractItemModel
 QAbstractItemModel (QObject *parent)
 
virtual ~QAbstractItemModel ()
 
virtual QModelIndex buddy (const QModelIndex &index) const
 
virtual bool canFetchMore (const QModelIndex &parent) const
 
virtual int columnCount (const QModelIndex &parent) const=0
 
void columnsAboutToBeInserted (const QModelIndex &parent, int start, int end)
 
void columnsAboutToBeMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationColumn)
 
void columnsAboutToBeRemoved (const QModelIndex &parent, int start, int end)
 
void columnsInserted (const QModelIndex &parent, int start, int end)
 
void columnsMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationColumn)
 
void columnsRemoved (const QModelIndex &parent, int start, int end)
 
virtual QVariant data (const QModelIndex &index, int role) const=0
 
void dataChanged (const QModelIndex &topLeft, const QModelIndex &bottomRight)
 
virtual void fetchMore (const QModelIndex &parent)
 
virtual bool hasChildren (const QModelIndex &parent) const
 
bool hasIndex (int row, int column, const QModelIndex &parent) const
 
virtual QVariant headerData (int section, Qt::Orientation orientation, int role) const
 
void headerDataChanged (Qt::Orientation orientation, int first, int last)
 
virtual QModelIndex index (int row, int column, const QModelIndex &parent) const=0
 
bool insertColumn (int column, const QModelIndex &parent)
 
virtual bool insertColumns (int column, int count, const QModelIndex &parent)
 
bool insertRow (int row, const QModelIndex &parent)
 
virtual bool insertRows (int row, int count, const QModelIndex &parent)
 
virtual QMap< int, QVariantitemData (const QModelIndex &index) const
 
void layoutAboutToBeChanged ()
 
void layoutChanged ()
 
virtual QModelIndexList match (const QModelIndex &start, int role, const QVariant &value, int hits, QFlags< Qt::MatchFlag > flags) const
 
void modelAboutToBeReset ()
 
void modelReset ()
 
virtual QModelIndex parent (const QModelIndex &index) const=0
 
bool removeColumn (int column, const QModelIndex &parent)
 
virtual bool removeColumns (int column, int count, const QModelIndex &parent)
 
bool removeRow (int row, const QModelIndex &parent)
 
virtual void revert ()
 
const QHash< int, QByteArray > & roleNames () const
 
virtual int rowCount (const QModelIndex &parent) const=0
 
void rowsAboutToBeInserted (const QModelIndex &parent, int start, int end)
 
void rowsAboutToBeMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow)
 
void rowsAboutToBeRemoved (const QModelIndex &parent, int start, int end)
 
void rowsInserted (const QModelIndex &parent, int start, int end)
 
void rowsMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow)
 
void rowsRemoved (const QModelIndex &parent, int start, int end)
 
virtual bool setHeaderData (int section, Qt::Orientation orientation, const QVariant &value, int role)
 
virtual bool setItemData (const QModelIndex &index, const QMap< int, QVariant > &roles)
 
void setSupportedDragActions (QFlags< Qt::DropAction > actions)
 
QModelIndex sibling (int row, int column, const QModelIndex &index) const
 
virtual void sort (int column, Qt::SortOrder order)
 
virtual QSize span (const QModelIndex &index) const
 
virtual bool submit ()
 
Qt::DropActions supportedDragActions () const
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
 QObject (QObject *parent, const char *name)
 
virtual ~QObject ()
 
bool blockSignals (bool block)
 
QObjectchild (const char *objName, const char *inheritsClass, bool recursiveSearch) const
 
const QObjectList & children () const
 
const char * className () const
 
bool connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const
 
void deleteLater ()
 
void destroyed (QObject *obj)
 
bool disconnect (const QObject *receiver, const char *method)
 
bool disconnect (const char *signal, const QObject *receiver, const char *method)
 
void dumpObjectInfo ()
 
void dumpObjectTree ()
 
QList< QByteArraydynamicPropertyNames () const
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
findChild (const QString &name) const
 
QList< T > findChildren (const QRegExp &regExp) const
 
QList< T > findChildren (const QString &name) const
 
bool inherits (const char *className) const
 
void insertChild (QObject *object)
 
void installEventFilter (QObject *filterObj)
 
bool isA (const char *className) const
 
bool isWidgetType () const
 
void killTimer (int id)
 
virtual const QMetaObjectmetaObject () const
 
void moveToThread (QThread *targetThread)
 
const char * name () const
 
const char * name (const char *defaultName) const
 
QString objectName () const
 
QObjectparent () const
 
QVariant property (const char *name) const
 
void removeChild (QObject *object)
 
void removeEventFilter (QObject *obj)
 
void setName (const char *name)
 
void setObjectName (const QString &name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool signalsBlocked () const
 
int startTimer (int interval)
 
QThreadthread () const
 

Static Public Member Functions

static QgsLayerTreeModelLegendNodeindex2legendNode (const QModelIndex &index)
 Return legend node for given index. More...
 
- Static Public Member Functions inherited from QObject
bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method)
 
bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 

Protected Slots

void invalidateLegendMapBasedData ()
 
void layerLegendChanged ()
 
void layerNeedsUpdate ()
 
void legendNodeDataChanged ()
 
void nodeAddedChildren (QgsLayerTreeNode *node, int indexFrom, int indexTo)
 
void nodeCustomPropertyChanged (QgsLayerTreeNode *node, const QString &key)
 
void nodeLayerLoaded ()
 
void nodeLayerWillBeUnloaded ()
 
void nodeNameChanged (QgsLayerTreeNode *node, const QString &name)
 Updates model when node's name has changed. More...
 
void nodeRemovedChildren ()
 
void nodeVisibilityChanged (QgsLayerTreeNode *node)
 
void nodeWillAddChildren (QgsLayerTreeNode *node, int indexFrom, int indexTo)
 
void nodeWillRemoveChildren (QgsLayerTreeNode *node, int indexFrom, int indexTo)
 

Protected Member Functions

void addLegendToLayer (QgsLayerTreeLayer *nodeL)
 
void connectToLayer (QgsLayerTreeLayer *nodeLayer)
 
void connectToLayers (QgsLayerTreeGroup *parentGroup)
 
void connectToRootNode ()
 
void disconnectFromLayer (QgsLayerTreeLayer *nodeLayer)
 
void disconnectFromLayers (QgsLayerTreeGroup *parentGroup)
 
void disconnectFromRootNode ()
 
QList< QgsLayerTreeModelLegendNode * > filterLegendNodes (const QList< QgsLayerTreeModelLegendNode *> &nodes)
 Filter nodes from QgsMapLayerLegend according to the current filtering rules. More...
 
QModelIndex indexOfParentLayerTreeNode (QgsLayerTreeNode *parentNode) const
 
void legendCleanup ()
 
bool legendEmbeddedInParent (QgsLayerTreeLayer *nodeLayer) const
 
QIcon legendIconEmbeddedInParent (QgsLayerTreeLayer *nodeLayer) const
 
void legendInvalidateMapBasedData ()
 
QVariant legendNodeData (QgsLayerTreeModelLegendNode *node, int role) const
 
Qt::ItemFlags legendNodeFlags (QgsLayerTreeModelLegendNode *node) const
 
QModelIndex legendNodeIndex (int row, int column, QgsLayerTreeModelLegendNode *node) const
 
int legendNodeRowCount (QgsLayerTreeModelLegendNode *node) const
 
QModelIndex legendParent (QgsLayerTreeModelLegendNode *legendNode) const
 
QModelIndex legendRootIndex (int row, int column, QgsLayerTreeLayer *nL) const
 
int legendRootRowCount (QgsLayerTreeLayer *nL) const
 
void recursivelyEmitDataChanged (const QModelIndex &index=QModelIndex())
 emit dataChanged() for layer tree node items More...
 
void refreshScaleBasedLayers (const QModelIndex &index=QModelIndex())
 Updates layer data for scale dependent layers, should be called when map scale changes. More...
 
void removeLegendFromLayer (QgsLayerTreeLayer *nodeLayer)
 
LayerLegendTreetryBuildLegendTree (const QList< QgsLayerTreeModelLegendNode *> &nodes)
 
- Protected Member Functions inherited from QAbstractItemModel
void beginInsertColumns (const QModelIndex &parent, int first, int last)
 
void beginInsertRows (const QModelIndex &parent, int first, int last)
 
bool beginMoveColumns (const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationChild)
 
bool beginMoveRows (const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationChild)
 
void beginRemoveColumns (const QModelIndex &parent, int first, int last)
 
void beginRemoveRows (const QModelIndex &parent, int first, int last)
 
void beginResetModel ()
 
void changePersistentIndex (const QModelIndex &from, const QModelIndex &to)
 
void changePersistentIndexList (const QModelIndexList &from, const QModelIndexList &to)
 
QModelIndex createIndex (int row, int column, void *ptr) const
 
QModelIndex createIndex (int row, int column, int id) const
 
QModelIndex createIndex (int row, int column, quint32 id) const
 
void endInsertColumns ()
 
void endInsertRows ()
 
void endMoveColumns ()
 
void endMoveRows ()
 
void endRemoveColumns ()
 
void endRemoveRows ()
 
void endResetModel ()
 
QModelIndexList persistentIndexList () const
 
void reset ()
 
void resetInternalData ()
 
void setRoleNames (const QHash< int, QByteArray > &roleNames)
 
- Protected Member Functions inherited from QObject
bool checkConnectArgs (const char *signal, const QObject *object, const char *method)
 
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const char *signal)
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const char *signal)
 
int receivers (const char *signal) const
 
QObjectsender () const
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *event)
 

Static Protected Member Functions

static const QIconiconGroup ()
 
- Static Protected Member Functions inherited from QObject
QByteArray normalizeSignalSlot (const char *signalSlot)
 

Protected Attributes

int mAutoCollapseLegendNodesCount
 Minimal number of nodes when legend should be automatically collapsed. -1 = disabled. More...
 
QPersistentModelIndex mCurrentIndex
 Current index - will be underlined. More...
 
QTimer mDeferLegendInvalidationTimer
 
Flags mFlags
 Set of flags for the model. More...
 
QFont mFontGroup
 
QFont mFontLayer
 
QMap< QString, QStringmLayerStyleOverrides
 Overrides of map layers' styles: key = layer ID, value = style XML. More...
 
QMap< QgsLayerTreeLayer *, LayerLegendDatamLegend
 Per layer data about layer's legend nodes. More...
 
double mLegendFilterByScale
 scale denominator for filtering of legend nodes (<= 0 means no filtering) More...
 
QScopedPointer< QgsMapHitTestmLegendFilterHitTest
 
QScopedPointer< QgsMapSettingsmLegendFilterMapSettings
 
bool mLegendFilterUsesExtent
 whether to use map filtering More...
 
int mLegendMapViewDpi
 
double mLegendMapViewMupp
 
double mLegendMapViewScale
 
QgsLayerTreeGroupmRootNode
 Pointer to the root node of the layer tree. Not owned by the model. More...
 

Additional Inherited Members

- Properties inherited from QObject
 objectName
 

Detailed Description

The QgsLayerTreeModel class is model implementation for Qt item views framework.

The model can be used in any QTreeView, it is however recommended to use it with QgsLayerTreeView which brings additional functionality specific to layer tree handling.

The model listens to the changes in the layer tree and signals the changes as appropriate, so that any view that uses the model is updated accordingly.

Behavior of the model can be customized with flags. For example, whether to show legend or whether to allow changes to the layer tree.

See also
QgsLayerTreeView
Note
added in 2.4

Definition at line 49 of file qgslayertreemodel.h.

Member Enumeration Documentation

◆ Flag

Enumerator
ShowLegend 

Add legend nodes for layer nodes.

ShowSymbology 

deprecated - use ShowLegend

ShowRasterPreviewIcon 

Will use real preview of raster layer as icon (may be slow)

ShowLegendAsTree 

For legends that support it, will show them in a tree instead of a list (needs also ShowLegend). Added in 2.8.

DeferredLegendInvalidation 

defer legend model invalidation

UseEmbeddedWidgets 

Layer nodes may optionally include extra embedded widgets (if used in QgsLayerTreeView). Added in 2.16.

AllowNodeReorder 

Allow reordering with drag'n'drop.

AllowNodeRename 

Allow renaming of groups and layers.

AllowNodeChangeVisibility 

Allow user to set node visibility with a check box.

AllowLegendChangeState 

Allow check boxes for legend nodes (if supported by layer's legend)

AllowSymbologyChangeState 

deprecated - use AllowLegendChangeState

Definition at line 75 of file qgslayertreemodel.h.

Constructor & Destructor Documentation

◆ QgsLayerTreeModel()

QgsLayerTreeModel::QgsLayerTreeModel ( QgsLayerTreeGroup rootNode,
QObject parent = nullptr 
)
explicit

Construct a new tree model with given layer tree (root node must not be null pointer).

The root node is not transferred by the model.

Definition at line 65 of file qgslayertreemodel.cpp.

◆ ~QgsLayerTreeModel()

QgsLayerTreeModel::~QgsLayerTreeModel ( )

Definition at line 84 of file qgslayertreemodel.cpp.

Member Function Documentation

◆ addLegendToLayer()

void QgsLayerTreeModel::addLegendToLayer ( QgsLayerTreeLayer nodeL)
protected

Definition at line 1208 of file qgslayertreemodel.cpp.

◆ autoCollapseLegendNodes()

int QgsLayerTreeModel::autoCollapseLegendNodes ( ) const
inline

Return at what number of legend nodes the layer node should be collapsed. -1 means no auto-collapse (default).

Definition at line 169 of file qgslayertreemodel.h.

◆ autoCollapseSymbologyNodes()

Q_DECL_DEPRECATED int QgsLayerTreeModel::autoCollapseSymbologyNodes ( ) const
inline

◆ columnCount()

int QgsLayerTreeModel::columnCount ( const QModelIndex parent = QModelIndex()) const
override

Definition at line 119 of file qgslayertreemodel.cpp.

◆ connectToLayer()

void QgsLayerTreeModel::connectToLayer ( QgsLayerTreeLayer nodeLayer)
protected

Definition at line 855 of file qgslayertreemodel.cpp.

◆ connectToLayers()

void QgsLayerTreeModel::connectToLayers ( QgsLayerTreeGroup parentGroup)
protected

Definition at line 932 of file qgslayertreemodel.cpp.

◆ connectToRootNode()

void QgsLayerTreeModel::connectToRootNode ( )
protected

Definition at line 954 of file qgslayertreemodel.cpp.

◆ currentIndex()

QModelIndex QgsLayerTreeModel::currentIndex ( ) const

Get index of the item marked as current. Item marked as current is underlined.

Definition at line 560 of file qgslayertreemodel.cpp.

◆ data()

QVariant QgsLayerTreeModel::data ( const QModelIndex index,
int  role = Qt::DisplayRole 
) const
override

Definition at line 184 of file qgslayertreemodel.cpp.

◆ disconnectFromLayer()

void QgsLayerTreeModel::disconnectFromLayer ( QgsLayerTreeLayer nodeLayer)
protected

Definition at line 913 of file qgslayertreemodel.cpp.

◆ disconnectFromLayers()

void QgsLayerTreeModel::disconnectFromLayers ( QgsLayerTreeGroup parentGroup)
protected

Definition at line 943 of file qgslayertreemodel.cpp.

◆ disconnectFromRootNode()

void QgsLayerTreeModel::disconnectFromRootNode ( )
protected

Definition at line 970 of file qgslayertreemodel.cpp.

◆ dropMimeData()

bool QgsLayerTreeModel::dropMimeData ( const QMimeData data,
Qt::DropAction  action,
int  row,
int  column,
const QModelIndex parent 
)
overridevirtual

Reimplemented from QAbstractItemModel.

Definition at line 1047 of file qgslayertreemodel.cpp.

◆ filterLegendNodes()

QList< QgsLayerTreeModelLegendNode * > QgsLayerTreeModel::filterLegendNodes ( const QList< QgsLayerTreeModelLegendNode *> &  nodes)
protected

Filter nodes from QgsMapLayerLegend according to the current filtering rules.

Definition at line 1139 of file qgslayertreemodel.cpp.

◆ findLegendNode()

QgsLayerTreeModelLegendNode * QgsLayerTreeModel::findLegendNode ( const QString layerId,
const QString ruleKey 
) const

Searches through the layer tree to find a legend node with a matching layer ID and rule key.

Parameters
layerIdmap layer ID
ruleKeylegend node rule key
Returns
QgsLayerTreeModelLegendNode if found
Note
added in QGIS 2.14

Definition at line 1484 of file qgslayertreemodel.cpp.

◆ flags() [1/2]

Qt::ItemFlags QgsLayerTreeModel::flags ( const QModelIndex index) const
overridevirtual

Reimplemented from QAbstractItemModel.

Definition at line 351 of file qgslayertreemodel.cpp.

◆ flags() [2/2]

QgsLayerTreeModel::Flags QgsLayerTreeModel::flags ( ) const

Return OR-ed combination of model flags.

Definition at line 1119 of file qgslayertreemodel.cpp.

◆ iconGroup()

const QIcon & QgsLayerTreeModel::iconGroup ( )
staticprotected

Definition at line 1129 of file qgslayertreemodel.cpp.

◆ index()

QModelIndex QgsLayerTreeModel::index ( int  row,
int  column,
const QModelIndex parent = QModelIndex() 
) const
override

Definition at line 125 of file qgslayertreemodel.cpp.

◆ index2legendNode()

QgsLayerTreeModelLegendNode * QgsLayerTreeModel::index2legendNode ( const QModelIndex index)
static

Return legend node for given index.

Returns null for invalid index

Note
added in 2.6

Definition at line 1330 of file qgslayertreemodel.cpp.

◆ index2node()

QgsLayerTreeNode * QgsLayerTreeModel::index2node ( const QModelIndex index) const

Return layer tree node for given index.

Returns root node for invalid index. Returns null pointer if index does not refer to a layer tree node (e.g. it is a legend node)

Definition at line 89 of file qgslayertreemodel.cpp.

◆ indexes2nodes()

QList< QgsLayerTreeNode * > QgsLayerTreeModel::indexes2nodes ( const QModelIndexList &  list,
bool  skipInternal = false 
) const

Convert a list of indexes to a list of layer tree nodes.

Indices that do not represent layer tree nodes are skipped.

  • skipInternal If true, a node is included in the output list only if no parent node is in the list

Definition at line 483 of file qgslayertreemodel.cpp.

◆ indexOfParentLayerTreeNode()

QModelIndex QgsLayerTreeModel::indexOfParentLayerTreeNode ( QgsLayerTreeNode parentNode) const
protected

Definition at line 169 of file qgslayertreemodel.cpp.

◆ invalidateLegendMapBasedData

void QgsLayerTreeModel::invalidateLegendMapBasedData ( )
protectedslot

Definition at line 1514 of file qgslayertreemodel.cpp.

◆ isIndexSymbologyNode()

bool QgsLayerTreeModel::isIndexSymbologyNode ( const QModelIndex index) const

Return true if index represents a legend node (instead of layer node)

Deprecated:
use index2legendNode()

Definition at line 509 of file qgslayertreemodel.cpp.

◆ layerLegendChanged

void QgsLayerTreeModel::layerLegendChanged ( )
protectedslot

Definition at line 809 of file qgslayertreemodel.cpp.

◆ layerLegendNodes()

QList< QgsLayerTreeModelLegendNode * > QgsLayerTreeModel::layerLegendNodes ( QgsLayerTreeLayer nodeLayer,
bool  skipNodeEmbeddedInParent = false 
)

Return filtered list of active legend nodes attached to a particular layer node (by default it returns also legend node embedded in parent layer node (if any) unless skipNodeEmbeddedInParent is true)

Note
added in 2.6
skipNodeEmbeddedInParent added in 2.18
See also
layerOriginalLegendNodes()

Definition at line 1467 of file qgslayertreemodel.cpp.

◆ layerNeedsUpdate

void QgsLayerTreeModel::layerNeedsUpdate ( )
protectedslot

Definition at line 825 of file qgslayertreemodel.cpp.

◆ layerNodeForSymbologyNode()

QgsLayerTreeLayer * QgsLayerTreeModel::layerNodeForSymbologyNode ( const QModelIndex index) const

Return layer node to which a legend node belongs to.

Returns null pointer if index is not a legend node.

Deprecated:
use index2legendNode()->parent()

Definition at line 514 of file qgslayertreemodel.cpp.

◆ layerOriginalLegendNodes()

QList< QgsLayerTreeModelLegendNode * > QgsLayerTreeModel::layerOriginalLegendNodes ( QgsLayerTreeLayer nodeLayer)

Return original (unfiltered) list of legend nodes attached to a particular layer node.

Note
added in 2.14
See also
layerLegendNodes()

Definition at line 1479 of file qgslayertreemodel.cpp.

◆ layerStyleOverrides()

QMap< QString, QString > QgsLayerTreeModel::layerStyleOverrides ( ) const

Get map of map layer style overrides (key: layer ID, value: style name) where a different style should be used instead of the current one.

Note
added in 2.10

Definition at line 705 of file qgslayertreemodel.cpp.

◆ layerTreeNodeFont()

QFont QgsLayerTreeModel::layerTreeNodeFont ( int  nodeType) const

Get font for a particular type of layer tree node. nodeType should come from QgsLayerTreeNode::NodeType enumeration.

Definition at line 602 of file qgslayertreemodel.cpp.

◆ legendCleanup()

void QgsLayerTreeModel::legendCleanup ( )
protected

Definition at line 1186 of file qgslayertreemodel.cpp.

◆ legendEmbeddedInParent()

bool QgsLayerTreeModel::legendEmbeddedInParent ( QgsLayerTreeLayer nodeLayer) const
protected

Definition at line 1447 of file qgslayertreemodel.cpp.

◆ legendFilterByMap()

Q_DECL_DEPRECATED const QgsMapSettings* QgsLayerTreeModel::legendFilterByMap ( ) const
inline

Returns the current map settings used for legend filtering.

Deprecated:
It has been renamed to legendFilterMapSettings()

Definition at line 193 of file qgslayertreemodel.h.

◆ legendFilterByScale()

double QgsLayerTreeModel::legendFilterByScale ( ) const
inline

Definition at line 175 of file qgslayertreemodel.h.

◆ legendFilterMapSettings()

const QgsMapSettings* QgsLayerTreeModel::legendFilterMapSettings ( ) const
inline

Returns the current map settings used for the current legend filter (or null if none is enabled)

Note
added in 2.14

Definition at line 197 of file qgslayertreemodel.h.

◆ legendIconEmbeddedInParent()

QIcon QgsLayerTreeModel::legendIconEmbeddedInParent ( QgsLayerTreeLayer nodeLayer) const
protected

Definition at line 1458 of file qgslayertreemodel.cpp.

◆ legendInvalidateMapBasedData()

void QgsLayerTreeModel::legendInvalidateMapBasedData ( )
protected

Definition at line 1506 of file qgslayertreemodel.cpp.

◆ legendMapViewData()

void QgsLayerTreeModel::legendMapViewData ( double *  mapUnitsPerPixel,
int *  dpi,
double *  scale 
)

Get hints about map view - to be used in legend nodes.

Arguments that are not null will receive values. If there are no valid map view data (from previous call to setLegendMapViewData()), returned values are zeros.

Note
added in 2.6

Definition at line 698 of file qgslayertreemodel.cpp.

◆ legendNode2index()

QModelIndex QgsLayerTreeModel::legendNode2index ( QgsLayerTreeModelLegendNode legendNode)

Return index for a given legend node.

If the legend node does not belong to the layer tree, the result is undefined. If the legend node is belongs to the tree but it is filtered out, invalid model index is returned.

Note
added in 2.6

Definition at line 1336 of file qgslayertreemodel.cpp.

◆ legendNodeData()

QVariant QgsLayerTreeModel::legendNodeData ( QgsLayerTreeModelLegendNode node,
int  role 
) const
protected

Definition at line 1430 of file qgslayertreemodel.cpp.

◆ legendNodeDataChanged

void QgsLayerTreeModel::legendNodeDataChanged ( )
protectedslot

Definition at line 843 of file qgslayertreemodel.cpp.

◆ legendNodeEmbeddedInParent()

QgsLayerTreeModelLegendNode * QgsLayerTreeModel::legendNodeEmbeddedInParent ( QgsLayerTreeLayer nodeLayer) const

Return legend node that may be embbeded in parent (i.e.

its icon will be used for layer's icon).

Note
added in 2.18

Definition at line 1452 of file qgslayertreemodel.cpp.

◆ legendNodeFlags()

Qt::ItemFlags QgsLayerTreeModel::legendNodeFlags ( QgsLayerTreeModelLegendNode node) const
protected

Definition at line 1438 of file qgslayertreemodel.cpp.

◆ legendNodeIndex()

QModelIndex QgsLayerTreeModel::legendNodeIndex ( int  row,
int  column,
QgsLayerTreeModelLegendNode node 
) const
protected

Definition at line 1400 of file qgslayertreemodel.cpp.

◆ legendNodeRowCount()

int QgsLayerTreeModel::legendNodeRowCount ( QgsLayerTreeModelLegendNode node) const
protected

Definition at line 1365 of file qgslayertreemodel.cpp.

◆ legendParent()

QModelIndex QgsLayerTreeModel::legendParent ( QgsLayerTreeModelLegendNode legendNode) const
protected

Definition at line 1410 of file qgslayertreemodel.cpp.

◆ legendRootIndex()

QModelIndex QgsLayerTreeModel::legendRootIndex ( int  row,
int  column,
QgsLayerTreeLayer nL 
) const
protected

Definition at line 1389 of file qgslayertreemodel.cpp.

◆ legendRootRowCount()

int QgsLayerTreeModel::legendRootRowCount ( QgsLayerTreeLayer nL) const
protected

Definition at line 1375 of file qgslayertreemodel.cpp.

◆ mimeData()

QMimeData * QgsLayerTreeModel::mimeData ( const QModelIndexList &  indexes) const
overridevirtual

Reimplemented from QAbstractItemModel.

Definition at line 1023 of file qgslayertreemodel.cpp.

◆ mimeTypes()

QStringList QgsLayerTreeModel::mimeTypes ( ) const
overridevirtual

Reimplemented from QAbstractItemModel.

Definition at line 1015 of file qgslayertreemodel.cpp.

◆ node2index()

QModelIndex QgsLayerTreeModel::node2index ( QgsLayerTreeNode node) const

Return index for a given node. If the node does not belong to the layer tree, the result is undefined.

Definition at line 447 of file qgslayertreemodel.cpp.

◆ nodeAddedChildren

void QgsLayerTreeModel::nodeAddedChildren ( QgsLayerTreeNode node,
int  indexFrom,
int  indexTo 
)
protectedslot

Definition at line 736 of file qgslayertreemodel.cpp.

◆ nodeCustomPropertyChanged

void QgsLayerTreeModel::nodeCustomPropertyChanged ( QgsLayerTreeNode node,
const QString key 
)
protectedslot

Definition at line 780 of file qgslayertreemodel.cpp.

◆ nodeLayerLoaded

void QgsLayerTreeModel::nodeLayerLoaded ( )
protectedslot

Definition at line 787 of file qgslayertreemodel.cpp.

◆ nodeLayerWillBeUnloaded

void QgsLayerTreeModel::nodeLayerWillBeUnloaded ( )
protectedslot

Definition at line 797 of file qgslayertreemodel.cpp.

◆ nodeNameChanged

void QgsLayerTreeModel::nodeNameChanged ( QgsLayerTreeNode node,
const QString name 
)
protectedslot

Updates model when node's name has changed.

Note
added in 2.18.1

Definition at line 770 of file qgslayertreemodel.cpp.

◆ nodeRemovedChildren

void QgsLayerTreeModel::nodeRemovedChildren ( )
protectedslot

Definition at line 757 of file qgslayertreemodel.cpp.

◆ nodeVisibilityChanged

void QgsLayerTreeModel::nodeVisibilityChanged ( QgsLayerTreeNode node)
protectedslot

Definition at line 762 of file qgslayertreemodel.cpp.

◆ nodeWillAddChildren

void QgsLayerTreeModel::nodeWillAddChildren ( QgsLayerTreeNode node,
int  indexFrom,
int  indexTo 
)
protectedslot

Definition at line 715 of file qgslayertreemodel.cpp.

◆ nodeWillRemoveChildren

void QgsLayerTreeModel::nodeWillRemoveChildren ( QgsLayerTreeNode node,
int  indexFrom,
int  indexTo 
)
protectedslot

Definition at line 746 of file qgslayertreemodel.cpp.

◆ parent()

QModelIndex QgsLayerTreeModel::parent ( const QModelIndex child) const
override

Definition at line 147 of file qgslayertreemodel.cpp.

◆ recursivelyEmitDataChanged()

void QgsLayerTreeModel::recursivelyEmitDataChanged ( const QModelIndex index = QModelIndex())
protected

emit dataChanged() for layer tree node items

Definition at line 977 of file qgslayertreemodel.cpp.

◆ refreshLayerLegend()

void QgsLayerTreeModel::refreshLayerLegend ( QgsLayerTreeLayer nodeLayer)

Force a refresh of legend nodes of a layer node.

Not necessary to call when layer's renderer is changed as the model listens to these events.

Definition at line 540 of file qgslayertreemodel.cpp.

◆ refreshLayerSymbology()

Q_DECL_DEPRECATED void QgsLayerTreeModel::refreshLayerSymbology ( QgsLayerTreeLayer nodeLayer)
inline
Deprecated:
use refreshLayerLegend()

Definition at line 222 of file qgslayertreemodel.h.

◆ refreshScaleBasedLayers()

void QgsLayerTreeModel::refreshScaleBasedLayers ( const QModelIndex index = QModelIndex())
protected

Updates layer data for scale dependent layers, should be called when map scale changes.

Emits dataChanged() for all scale dependent layers.

Note
added in QGIS 2.16

Definition at line 991 of file qgslayertreemodel.cpp.

◆ removeLegendFromLayer()

void QgsLayerTreeModel::removeLegendFromLayer ( QgsLayerTreeLayer nodeLayer)
protected

Definition at line 1197 of file qgslayertreemodel.cpp.

◆ removeRows()

bool QgsLayerTreeModel::removeRows ( int  row,
int  count,
const QModelIndex parent = QModelIndex() 
)
overridevirtual

Reimplemented from QAbstractItemModel.

Definition at line 1095 of file qgslayertreemodel.cpp.

◆ rootGroup()

QgsLayerTreeGroup * QgsLayerTreeModel::rootGroup ( ) const

Return pointer to the root node of the layer tree. Always a non-null pointer.

Definition at line 520 of file qgslayertreemodel.cpp.

◆ rowCount()

int QgsLayerTreeModel::rowCount ( const QModelIndex parent = QModelIndex()) const
override

Definition at line 99 of file qgslayertreemodel.cpp.

◆ setAutoCollapseLegendNodes()

void QgsLayerTreeModel::setAutoCollapseLegendNodes ( int  nodeCount)
inline

Set at what number of legend nodes the layer node should be collapsed. Setting -1 disables the auto-collapse (default).

Definition at line 167 of file qgslayertreemodel.h.

◆ setAutoCollapseSymbologyNodes()

Q_DECL_DEPRECATED void QgsLayerTreeModel::setAutoCollapseSymbologyNodes ( int  nodeCount)
inline

◆ setCurrentIndex()

void QgsLayerTreeModel::setCurrentIndex ( const QModelIndex currentIndex)

Set index of the current item. May be used by view. Item marked as current is underlined.

Definition at line 565 of file qgslayertreemodel.cpp.

◆ setData()

bool QgsLayerTreeModel::setData ( const QModelIndex index,
const QVariant value,
int  role = Qt::EditRole 
)
overridevirtual

Reimplemented from QAbstractItemModel.

Definition at line 388 of file qgslayertreemodel.cpp.

◆ setFlag()

void QgsLayerTreeModel::setFlag ( QgsLayerTreeModel::Flag  f,
bool  on = true 
)

Enable or disable a model flag.

Definition at line 1111 of file qgslayertreemodel.cpp.

◆ setFlags()

void QgsLayerTreeModel::setFlags ( const QgsLayerTreeModel::Flags &  f)

Set OR-ed combination of model flags.

Definition at line 1106 of file qgslayertreemodel.cpp.

◆ setLayerStyleOverrides()

void QgsLayerTreeModel::setLayerStyleOverrides ( const QMap< QString, QString > &  overrides)

Set map of map layer style overrides (key: layer ID, value: style name) where a different style should be used instead of the current one.

Note
added in 2.10

Definition at line 710 of file qgslayertreemodel.cpp.

◆ setLayerTreeNodeFont()

void QgsLayerTreeModel::setLayerTreeNodeFont ( int  nodeType,
const QFont font 
)

Set font for a particular type of layer tree node. nodeType should come from QgsLayerTreeNode::NodeType enumeration.

Definition at line 577 of file qgslayertreemodel.cpp.

◆ setLegendFilter()

void QgsLayerTreeModel::setLegendFilter ( const QgsMapSettings settings,
bool  useExtent = true,
const QgsGeometry polygon = QgsGeometry(),
bool  useExpressions = true 
)

Filter display of legend nodes for given map settings.

Parameters
settingsMap settings. Setting a null pointer or invalid settings will disable any filter. Ownership is not changed, a copy is made
useExtentWhether to use the extent of the map settings as a first spatial filter on legend nodes
polygonIf not empty, this polygon will be used instead of the map extent to filter legend nodes
useExpressionsWhether to use legend node filter expressions
Note
added in 2.14

Definition at line 630 of file qgslayertreemodel.cpp.

◆ setLegendFilterByMap()

void QgsLayerTreeModel::setLegendFilterByMap ( const QgsMapSettings settings)

Force only display of legend nodes which are valid for given map settings.

Setting null pointer or invalid map settings will disable the functionality. Ownership of map settings pointer does not change, a copy is made.

Note
added in 2.6

Definition at line 625 of file qgslayertreemodel.cpp.

◆ setLegendFilterByScale()

void QgsLayerTreeModel::setLegendFilterByScale ( double  scaleDenominator)

Force only display of legend nodes which are valid for given scale denominator.

Setting value <= 0 will disable the functionality

Note
added in 2.6

Definition at line 615 of file qgslayertreemodel.cpp.

◆ setLegendMapViewData()

void QgsLayerTreeModel::setLegendMapViewData ( double  mapUnitsPerPixel,
int  dpi,
double  scale 
)

Give the layer tree model hints about the currently associated map view so that legend nodes that use map units can be scaled currectly.

Note
added in 2.6

Definition at line 683 of file qgslayertreemodel.cpp.

◆ setRootGroup()

void QgsLayerTreeModel::setRootGroup ( QgsLayerTreeGroup newRootGroup)

Reset the model and use a new root group node.

Note
added in 2.6

Definition at line 525 of file qgslayertreemodel.cpp.

◆ supportedDropActions()

Qt::DropActions QgsLayerTreeModel::supportedDropActions ( ) const
overridevirtual

Reimplemented from QAbstractItemModel.

Definition at line 1010 of file qgslayertreemodel.cpp.

◆ testFlag()

bool QgsLayerTreeModel::testFlag ( QgsLayerTreeModel::Flag  f) const

Check whether a flag is enabled.

Definition at line 1124 of file qgslayertreemodel.cpp.

◆ tryBuildLegendTree()

QgsLayerTreeModel::LayerLegendTree * QgsLayerTreeModel::tryBuildLegendTree ( const QList< QgsLayerTreeModelLegendNode *> &  nodes)
protected
Note
not available in Python bindings

Definition at line 1289 of file qgslayertreemodel.cpp.

Member Data Documentation

◆ mAutoCollapseLegendNodesCount

int QgsLayerTreeModel::mAutoCollapseLegendNodesCount
protected

Minimal number of nodes when legend should be automatically collapsed. -1 = disabled.

Definition at line 301 of file qgslayertreemodel.h.

◆ mCurrentIndex

QPersistentModelIndex QgsLayerTreeModel::mCurrentIndex
protected

Current index - will be underlined.

Definition at line 299 of file qgslayertreemodel.h.

◆ mDeferLegendInvalidationTimer

QTimer QgsLayerTreeModel::mDeferLegendInvalidationTimer
protected

Definition at line 366 of file qgslayertreemodel.h.

◆ mFlags

Flags QgsLayerTreeModel::mFlags
protected

Set of flags for the model.

Definition at line 297 of file qgslayertreemodel.h.

◆ mFontGroup

QFont QgsLayerTreeModel::mFontGroup
protected

Definition at line 352 of file qgslayertreemodel.h.

◆ mFontLayer

QFont QgsLayerTreeModel::mFontLayer
protected

Definition at line 351 of file qgslayertreemodel.h.

◆ mLayerStyleOverrides

QMap<QString, QString> QgsLayerTreeModel::mLayerStyleOverrides
protected

Overrides of map layers' styles: key = layer ID, value = style XML.

This allows to show legend that is different from the current style of layers

Definition at line 346 of file qgslayertreemodel.h.

◆ mLegend

QMap<QgsLayerTreeLayer*, LayerLegendData> QgsLayerTreeModel::mLegend
protected

Per layer data about layer's legend nodes.

Definition at line 349 of file qgslayertreemodel.h.

◆ mLegendFilterByScale

double QgsLayerTreeModel::mLegendFilterByScale
protected

scale denominator for filtering of legend nodes (<= 0 means no filtering)

Definition at line 355 of file qgslayertreemodel.h.

◆ mLegendFilterHitTest

QScopedPointer<QgsMapHitTest> QgsLayerTreeModel::mLegendFilterHitTest
protected

Definition at line 358 of file qgslayertreemodel.h.

◆ mLegendFilterMapSettings

QScopedPointer<QgsMapSettings> QgsLayerTreeModel::mLegendFilterMapSettings
protected

Definition at line 357 of file qgslayertreemodel.h.

◆ mLegendFilterUsesExtent

bool QgsLayerTreeModel::mLegendFilterUsesExtent
protected

whether to use map filtering

Definition at line 361 of file qgslayertreemodel.h.

◆ mLegendMapViewDpi

int QgsLayerTreeModel::mLegendMapViewDpi
protected

Definition at line 364 of file qgslayertreemodel.h.

◆ mLegendMapViewMupp

double QgsLayerTreeModel::mLegendMapViewMupp
protected

Definition at line 363 of file qgslayertreemodel.h.

◆ mLegendMapViewScale

double QgsLayerTreeModel::mLegendMapViewScale
protected

Definition at line 365 of file qgslayertreemodel.h.

◆ mRootNode

QgsLayerTreeGroup* QgsLayerTreeModel::mRootNode
protected

Pointer to the root node of the layer tree. Not owned by the model.

Definition at line 295 of file qgslayertreemodel.h.


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