QGIS API Documentation
2.8.2-Wien
|
The QgsLayerTreeModel class is model implementation for Qt item views framework. More...
#include <qgslayertreemodel.h>
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, AllowNodeReorder = 0x1000, AllowNodeRename = 0x2000, AllowNodeChangeVisibility = 0x4000, AllowLegendChangeState = 0x8000, AllowSymbologyChangeState = 0x8000 } |
Public Member Functions | |
QgsLayerTreeModel (QgsLayerTreeGroup *rootNode, QObject *parent=0) | |
Construct a new tree model with given layer tree (root node must not be null pointer). | |
~QgsLayerTreeModel () | |
int | autoCollapseLegendNodes () const |
Return at what number of legend nodes the layer node should be collapsed. -1 means no auto-collapse (default). | |
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. | |
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 |
Qt::ItemFlags | flags (const QModelIndex &index) const override |
Flags | flags () const |
Return OR-ed combination of model flags. | |
QModelIndex | index (int row, int column, const QModelIndex &parent=QModelIndex()) const override |
QgsLayerTreeNode * | index2node (const QModelIndex &index) const |
Return layer tree node for given index. | |
QList< QgsLayerTreeNode * > | indexes2nodes (const QModelIndexList &list, bool skipInternal=false) const |
Convert a list of indexes to a list of layer tree nodes. | |
Q_DECL_DEPRECATED bool | isIndexSymbologyNode (const QModelIndex &index) const |
Return true if index represents a legend node (instead of layer node) | |
QList < QgsLayerTreeModelLegendNode * > | layerLegendNodes (QgsLayerTreeLayer *nodeLayer) |
Return list of legend nodes attached to a particular layer node. | |
Q_DECL_DEPRECATED QgsLayerTreeLayer * | layerNodeForSymbologyNode (const QModelIndex &index) const |
Return layer node to which a legend node belongs to. | |
QFont | layerTreeNodeFont (int nodeType) const |
Get font for a particular type of layer tree node. nodeType should come from QgsLayerTreeNode::NodeType enumeration. | |
const QgsMapSettings * | legendFilterByMap () const |
double | legendFilterByScale () const |
void | legendMapViewData (double *mapUnitsPerPixel, int *dpi, double *scale) |
Get hints about map view - to be used in legend nodes. | |
QModelIndex | legendNode2index (QgsLayerTreeModelLegendNode *legendNode) |
Return index for a given legend node. | |
QMimeData * | mimeData (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. | |
QModelIndex | parent (const QModelIndex &child) const override |
void | refreshLayerLegend (QgsLayerTreeLayer *nodeLayer) |
Force a refresh of legend nodes of a layer node. | |
Q_DECL_DEPRECATED void | refreshLayerSymbology (QgsLayerTreeLayer *nodeLayer) |
bool | removeRows (int row, int count, const QModelIndex &parent=QModelIndex()) override |
QgsLayerTreeGroup * | rootGroup () const |
Return pointer to the root node of the layer tree. Always a non-null pointer. | |
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). | |
Q_DECL_DEPRECATED void | setAutoCollapseSymbologyNodes (int nodeCount) |
void | setCurrentIndex (const QModelIndex ¤tIndex) |
Set index of the current item. May be used by view. Item marked as current is underlined. | |
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. | |
void | setFlags (Flags f) |
Set OR-ed combination of model flags. | |
void | setLayerTreeNodeFont (int nodeType, const QFont &font) |
Set font for a particular type of layer tree node. nodeType should come from QgsLayerTreeNode::NodeType enumeration. | |
void | setLegendFilterByMap (const QgsMapSettings *settings) |
Force only display of legend nodes which are valid for given map settings. | |
void | setLegendFilterByScale (double scaleDenominator) |
Force only display of legend nodes which are valid for given scale denominator. | |
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. | |
void | setRootGroup (QgsLayerTreeGroup *newRootGroup) |
Reset the model and use a new root group node. | |
Qt::DropActions | supportedDropActions () const override |
bool | testFlag (Flag f) const |
Check whether a flag is enabled. |
Static Public Member Functions | |
static QgsLayerTreeModelLegendNode * | index2legendNode (const QModelIndex &index) |
Return legend node for given index. |
Protected Slots | |
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 | nodeRemovedChildren () |
void | nodeVisibilityChanged (QgsLayerTreeNode *node) |
void | nodeWillAddChildren (QgsLayerTreeNode *node, int indexFrom, int indexTo) |
void | nodeWillRemoveChildren (QgsLayerTreeNode *node, int indexFrom, int indexTo) |
Static Protected Member Functions | |
static const QIcon & | iconGroup () |
Protected Attributes | |
int | mAutoCollapseLegendNodesCount |
Minimal number of nodes when legend should be automatically collapsed. -1 = disabled. | |
QPersistentModelIndex | mCurrentIndex |
Current index - will be underlined. | |
Flags | mFlags |
Set of flags for the model. | |
QFont | mFontGroup |
QFont | mFontLayer |
QMap< QgsLayerTreeLayer *, LayerLegendData > | mLegend |
Per layer data about layer's legend nodes. | |
QScopedPointer< QgsMapHitTest > | mLegendFilterByMapHitTest |
QScopedPointer< QgsMapSettings > | mLegendFilterByMapSettings |
double | mLegendFilterByScale |
scale denominator for filtering of legend nodes (<= 0 means no filtering) | |
int | mLegendMapViewDpi |
double | mLegendMapViewMupp |
double | mLegendMapViewScale |
QgsLayerTreeGroup * | mRootNode |
Pointer to the root node of the layer tree. Not owned by the model. |
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.
Definition at line 46 of file qgslayertreemodel.h.
Definition at line 72 of file qgslayertreemodel.h.
|
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 34 of file qgslayertreemodel.cpp.
QgsLayerTreeModel::~QgsLayerTreeModel | ( | ) |
Definition at line 49 of file qgslayertreemodel.cpp.
|
protected |
Definition at line 1062 of file qgslayertreemodel.cpp.
|
inline |
Return at what number of legend nodes the layer node should be collapsed. -1 means no auto-collapse (default).
Definition at line 143 of file qgslayertreemodel.h.
|
inline |
Definition at line 178 of file qgslayertreemodel.h.
|
override |
Definition at line 84 of file qgslayertreemodel.cpp.
|
protected |
Definition at line 736 of file qgslayertreemodel.cpp.
|
protected |
Definition at line 814 of file qgslayertreemodel.cpp.
|
protected |
Definition at line 836 of file qgslayertreemodel.cpp.
QModelIndex QgsLayerTreeModel::currentIndex | ( | ) | const |
Get index of the item marked as current. Item marked as current is underlined.
Definition at line 491 of file qgslayertreemodel.cpp.
|
override |
Reimplemented in QgsLegendModelV2.
Definition at line 149 of file qgslayertreemodel.cpp.
|
protected |
Definition at line 795 of file qgslayertreemodel.cpp.
|
protected |
Definition at line 825 of file qgslayertreemodel.cpp.
|
protected |
Definition at line 851 of file qgslayertreemodel.cpp.
|
override |
Definition at line 906 of file qgslayertreemodel.cpp.
|
protected |
Filter nodes from QgsMapLayerLegend according to the current filtering rules.
Definition at line 998 of file qgslayertreemodel.cpp.
|
override |
Reimplemented in QgsLegendModelV2.
Definition at line 282 of file qgslayertreemodel.cpp.
QgsLayerTreeModel::Flags QgsLayerTreeModel::flags | ( | ) | const |
Return OR-ed combination of model flags.
Definition at line 978 of file qgslayertreemodel.cpp.
|
staticprotected |
Definition at line 988 of file qgslayertreemodel.cpp.
|
override |
Definition at line 90 of file qgslayertreemodel.cpp.
|
static |
Return legend node for given index.
Returns null for invalid index
Definition at line 1145 of file qgslayertreemodel.cpp.
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 54 of file qgslayertreemodel.cpp.
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.
Definition at line 414 of file qgslayertreemodel.cpp.
|
protected |
Definition at line 134 of file qgslayertreemodel.cpp.
bool QgsLayerTreeModel::isIndexSymbologyNode | ( | const QModelIndex & | index | ) | const |
Return true if index represents a legend node (instead of layer node)
Definition at line 440 of file qgslayertreemodel.cpp.
|
protectedslot |
Definition at line 690 of file qgslayertreemodel.cpp.
QList< QgsLayerTreeModelLegendNode * > QgsLayerTreeModel::layerLegendNodes | ( | QgsLayerTreeLayer * | nodeLayer | ) |
Return list of legend nodes attached to a particular layer node.
Definition at line 1276 of file qgslayertreemodel.cpp.
|
protectedslot |
Definition at line 706 of file qgslayertreemodel.cpp.
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.
Definition at line 445 of file qgslayertreemodel.cpp.
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 533 of file qgslayertreemodel.cpp.
|
protected |
Definition at line 1040 of file qgslayertreemodel.cpp.
|
protected |
Definition at line 1263 of file qgslayertreemodel.cpp.
|
inline |
Definition at line 156 of file qgslayertreemodel.h.
|
inline |
Definition at line 149 of file qgslayertreemodel.h.
|
protected |
Definition at line 1270 of file qgslayertreemodel.cpp.
|
protected |
Definition at line 1281 of file qgslayertreemodel.cpp.
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.
Definition at line 598 of file qgslayertreemodel.cpp.
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.
Definition at line 1151 of file qgslayertreemodel.cpp.
|
protected |
Definition at line 1246 of file qgslayertreemodel.cpp.
|
protectedslot |
Definition at line 724 of file qgslayertreemodel.cpp.
|
protected |
Definition at line 1254 of file qgslayertreemodel.cpp.
|
protected |
Definition at line 1216 of file qgslayertreemodel.cpp.
|
protected |
Definition at line 1179 of file qgslayertreemodel.cpp.
|
protected |
Definition at line 1226 of file qgslayertreemodel.cpp.
|
protected |
Definition at line 1205 of file qgslayertreemodel.cpp.
|
protected |
Definition at line 1189 of file qgslayertreemodel.cpp.
|
override |
Definition at line 886 of file qgslayertreemodel.cpp.
|
override |
Definition at line 878 of file qgslayertreemodel.cpp.
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 378 of file qgslayertreemodel.cpp.
|
protectedslot |
Definition at line 626 of file qgslayertreemodel.cpp.
|
protectedslot |
Definition at line 661 of file qgslayertreemodel.cpp.
|
protectedslot |
Definition at line 668 of file qgslayertreemodel.cpp.
|
protectedslot |
Definition at line 678 of file qgslayertreemodel.cpp.
|
protectedslot |
Definition at line 647 of file qgslayertreemodel.cpp.
|
protectedslot |
Definition at line 652 of file qgslayertreemodel.cpp.
|
protectedslot |
Definition at line 605 of file qgslayertreemodel.cpp.
|
protectedslot |
Definition at line 636 of file qgslayertreemodel.cpp.
|
override |
Definition at line 112 of file qgslayertreemodel.cpp.
|
protected |
emit dataChanged() for layer tree node items
Definition at line 858 of file qgslayertreemodel.cpp.
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 471 of file qgslayertreemodel.cpp.
|
inline |
Definition at line 174 of file qgslayertreemodel.h.
|
protected |
Definition at line 1051 of file qgslayertreemodel.cpp.
|
override |
Definition at line 954 of file qgslayertreemodel.cpp.
QgsLayerTreeGroup * QgsLayerTreeModel::rootGroup | ( | ) | const |
Return pointer to the root node of the layer tree. Always a non-null pointer.
Definition at line 451 of file qgslayertreemodel.cpp.
|
override |
Definition at line 64 of file qgslayertreemodel.cpp.
|
inline |
Set at what number of legend nodes the layer node should be collapsed. Setting -1 disables the auto-collapse (default).
Definition at line 141 of file qgslayertreemodel.h.
|
inline |
Definition at line 176 of file qgslayertreemodel.h.
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 496 of file qgslayertreemodel.cpp.
|
override |
Definition at line 319 of file qgslayertreemodel.cpp.
void QgsLayerTreeModel::setFlag | ( | QgsLayerTreeModel::Flag | f, |
bool | on = true |
||
) |
Enable or disable a model flag.
Definition at line 970 of file qgslayertreemodel.cpp.
void QgsLayerTreeModel::setFlags | ( | Flags | f | ) |
Set OR-ed combination of model flags.
Definition at line 965 of file qgslayertreemodel.cpp.
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 508 of file qgslayertreemodel.cpp.
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.
Definition at line 556 of file qgslayertreemodel.cpp.
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
Definition at line 546 of file qgslayertreemodel.cpp.
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.
Definition at line 585 of file qgslayertreemodel.cpp.
void QgsLayerTreeModel::setRootGroup | ( | QgsLayerTreeGroup * | newRootGroup | ) |
Reset the model and use a new root group node.
Definition at line 456 of file qgslayertreemodel.cpp.
|
override |
Definition at line 873 of file qgslayertreemodel.cpp.
bool QgsLayerTreeModel::testFlag | ( | QgsLayerTreeModel::Flag | f | ) | const |
Check whether a flag is enabled.
Definition at line 983 of file qgslayertreemodel.cpp.
|
protected |
Definition at line 1105 of file qgslayertreemodel.cpp.
|
protected |
Minimal number of nodes when legend should be automatically collapsed. -1 = disabled.
Definition at line 242 of file qgslayertreemodel.h.
|
protected |
Current index - will be underlined.
Definition at line 240 of file qgslayertreemodel.h.
|
protected |
Set of flags for the model.
Definition at line 238 of file qgslayertreemodel.h.
|
protected |
Definition at line 276 of file qgslayertreemodel.h.
|
protected |
Definition at line 275 of file qgslayertreemodel.h.
|
protected |
Per layer data about layer's legend nodes.
Definition at line 273 of file qgslayertreemodel.h.
|
protected |
Definition at line 282 of file qgslayertreemodel.h.
|
protected |
Definition at line 281 of file qgslayertreemodel.h.
|
protected |
scale denominator for filtering of legend nodes (<= 0 means no filtering)
Definition at line 279 of file qgslayertreemodel.h.
|
protected |
Definition at line 285 of file qgslayertreemodel.h.
|
protected |
Definition at line 284 of file qgslayertreemodel.h.
|
protected |
Definition at line 286 of file qgslayertreemodel.h.
|
protected |
Pointer to the root node of the layer tree. Not owned by the model.
Definition at line 236 of file qgslayertreemodel.h.