QGIS API Documentation 3.36.0-Maidenhead (09951dc0acf)
|
Item model implementation based on layer tree model for layout legend. More...
#include <qgslayoutitemlegend.h>
Signals | |
void | refreshLegend () |
Emitted to refresh the legend. | |
Signals inherited from QgsLayerTreeModel | |
void | hitTestCompleted () |
Emitted when a hit test for visible legend items completes. | |
void | hitTestStarted () |
Emitted when a hit test for visible legend items starts. | |
void | messageEmitted (const QString &message, Qgis::MessageLevel level=Qgis::MessageLevel::Info, int duration=5) |
Emits a message than can be displayed to the user in a GUI class. | |
Public Member Functions | |
QgsLegendModel (QgsLayerTree *rootNode, QgsLayoutItemLegend *layout) | |
Alternative constructor. | |
QgsLegendModel (QgsLayerTree *rootNode, QObject *parent=nullptr, QgsLayoutItemLegend *layout=nullptr) | |
Construct the model based on the given layer tree. | |
void | clearCachedData (QgsLayerTreeNode *node) const |
Clears any previously cached data for the specified node. | |
QVariant | data (const QModelIndex &index, int role) const override |
Qt::ItemFlags | flags (const QModelIndex &index) const override |
QList< QgsLayerTreeModelLegendNode * > | layerLegendNodes (QgsLayerTreeLayer *nodeLayer, bool skipNodeEmbeddedInParent=false) const |
Returns 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 ) | |
Public Member Functions inherited from QgsLayerTreeModel | |
QgsLayerTreeModel (QgsLayerTree *rootNode, QObject *parent=nullptr) | |
Construct a new tree model with given layer tree (root node must not be nullptr ). | |
~QgsLayerTreeModel () override | |
void | addTargetScreenProperties (const QgsScreenProperties &properties) |
Adds additional target screen properties to use when generating icons for Qt::DecorationRole data. | |
int | autoCollapseLegendNodes () const |
Returns at what number of legend nodes the layer node should be collapsed. -1 means no auto-collapse (default). | |
int | columnCount (const QModelIndex &parent=QModelIndex()) const override |
QModelIndex | currentIndex () const |
Gets 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 |
const QgsLayerTreeFilterSettings * | filterSettings () const |
Returns the filter settings to use to filter legend nodes. | |
QgsLayerTreeModelLegendNode * | 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. | |
Flags | flags () const |
Returns OR-ed combination of model flags. | |
Qt::ItemFlags | flags (const QModelIndex &index) const override |
bool | hitTestInProgress () const |
Returns true if a hit test for visible legend items is currently in progress. | |
QModelIndex | index (int row, int column, const QModelIndex &parent=QModelIndex()) const override |
QgsLayerTreeNode * | index2node (const QModelIndex &index) const |
Returns 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. | |
QList< QgsLayerTreeModelLegendNode * > | layerLegendNodes (QgsLayerTreeLayer *nodeLayer, bool skipNodeEmbeddedInParent=false) |
Returns 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 ) | |
QList< QgsLayerTreeModelLegendNode * > | layerOriginalLegendNodes (QgsLayerTreeLayer *nodeLayer) |
Returns original (unfiltered) list of legend nodes attached to a particular layer node. | |
QMap< QString, QString > | layerStyleOverrides () const |
Gets map of map layer style overrides (key: layer ID, value: style name) where a different style should be used instead of the current one. | |
QFont | layerTreeNodeFont (int nodeType) const |
Gets font for a particular type of layer tree node. nodeType should come from QgsLayerTreeNode::NodeType enumeration. | |
double | legendFilterByScale () const |
Returns the scale which restricts the legend nodes which are visible. | |
const QgsMapSettings * | legendFilterMapSettings () const |
Returns the current map settings used for the current legend filter (or nullptr if none is enabled) | |
void | legendMapViewData (double *mapUnitsPerPixel, int *dpi, double *scale) const |
Gets hints about map view - to be used in legend nodes. | |
QModelIndex | legendNode2index (QgsLayerTreeModelLegendNode *legendNode) |
Returns index for a given legend node. | |
QgsLayerTreeModelLegendNode * | legendNodeEmbeddedInParent (QgsLayerTreeLayer *nodeLayer) const |
Returns legend node that may be embedded in parent (i.e. | |
QMimeData * | mimeData (const QModelIndexList &indexes) const override |
QStringList | mimeTypes () const override |
QModelIndex | node2index (QgsLayerTreeNode *node) const |
Returns 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. | |
bool | removeRows (int row, int count, const QModelIndex &parent=QModelIndex()) override |
QgsLayerTree * | rootGroup () const |
Returns pointer to the root node of the layer tree. Always a non nullptr value. | |
int | rowCount (const QModelIndex &parent=QModelIndex()) const override |
void | setAutoCollapseLegendNodes (int nodeCount) |
Sets at what number of legend nodes the layer node should be collapsed. Setting -1 disables the auto-collapse (default). | |
void | setCurrentIndex (const QModelIndex ¤tIndex) |
Sets 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 | setFilterSettings (const QgsLayerTreeFilterSettings *settings=nullptr) |
Sets the filter settings to use to filter legend nodes. | |
void | setFlag (Flag f, bool on=true) |
Enable or disable a model flag. | |
void | setFlags (QgsLayerTreeModel::Flags f) |
Sets OR-ed combination of model flags. | |
void | setLayerStyleOverrides (const QMap< QString, QString > &overrides) |
Sets map of map layer style overrides (key: layer ID, value: style name) where a different style should be used instead of the current one. | |
void | setLayerTreeNodeFont (int nodeType, const QFont &font) |
Sets font for a particular type of layer tree node. nodeType should come from QgsLayerTreeNode::NodeType enumeration. | |
Q_DECL_DEPRECATED void | setLegendFilter (const QgsMapSettings *settings, bool useExtent=true, const QgsGeometry &polygon=QgsGeometry(), bool useExpressions=true) |
Filter display of legend nodes for given map settings. | |
Q_DECL_DEPRECATED void | setLegendFilterByMap (const QgsMapSettings *settings) |
Force only display of legend nodes which are valid for given map settings. | |
void | setLegendFilterByScale (double scale) |
Force only display of legend nodes which are valid for a given scale. | |
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 correctly. | |
void | setRootGroup (QgsLayerTree *newRootGroup) |
Reset the model and use a new root group node. | |
Qt::DropActions | supportedDropActions () const override |
QSet< QgsScreenProperties > | targetScreenProperties () const |
Returns the target screen properties to use when generating icons. | |
bool | testFlag (Flag f) const |
Check whether a flag is enabled. | |
void | waitForHitTestBlocking () |
When a current hit test for visible legend items is in progress, calling this method will block until that hit test is complete. | |
Additional Inherited Members | |
Public Types inherited from QgsLayerTreeModel | |
enum | Flag { ShowLegend = 0x0001 , ShowLegendAsTree = 0x0004 , DeferredLegendInvalidation = 0x0008 , UseEmbeddedWidgets = 0x0010 , UseTextFormatting = 0x0020 , AllowNodeReorder = 0x1000 , AllowNodeRename = 0x2000 , AllowNodeChangeVisibility = 0x4000 , AllowLegendChangeState = 0x8000 , ActionHierarchical = 0x10000 , UseThreadedHitTest = 0x20000 } |
Static Public Member Functions inherited from QgsLayerTreeModel | |
static QgsLayerTreeModelLegendNode * | index2legendNode (const QModelIndex &index) |
Returns legend node for given index. | |
static int | scaleIconSize (int standardSize) |
Scales an layer tree model icon size to compensate for display pixel density, making the icon size hi-dpi friendly, whilst still resulting in pixel-perfect sizes for low-dpi displays. | |
Protected Slots inherited from QgsLayerTreeModel | |
void | invalidateLegendMapBasedData () |
void | layerFlagsChanged () |
Emitted when layer flags have changed. | |
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. | |
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 inherited from QgsLayerTreeModel | |
void | addLegendToLayer (QgsLayerTreeLayer *nodeL) |
void | connectToLayer (QgsLayerTreeLayer *nodeLayer) |
void | connectToLayers (QgsLayerTreeGroup *parentGroup) |
void | connectToRootNode () |
QgsRenderContext * | createTemporaryRenderContext () const |
Returns a temporary render context. | |
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. | |
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 | |
void | refreshScaleBasedLayers (const QModelIndex &index=QModelIndex(), double previousScale=0.0) |
Updates layer data for scale dependent layers, should be called when map scale changes. | |
void | removeLegendFromLayer (QgsLayerTreeLayer *nodeLayer) |
LayerLegendTree * | tryBuildLegendTree (const QList< QgsLayerTreeModelLegendNode * > &nodes) |
Static Protected Member Functions inherited from QgsLayerTreeModel | |
static QIcon | iconGroup () |
Protected Attributes inherited from QgsLayerTreeModel | |
int | mAutoCollapseLegendNodesCount = -1 |
Minimal number of nodes when legend should be automatically collapsed. -1 = disabled. | |
QPersistentModelIndex | mCurrentIndex |
Current index - will be underlined. | |
QTimer | mDeferLegendInvalidationTimer |
std::unique_ptr< QgsLayerTreeFilterSettings > | mFilterSettings |
Flags | mFlags |
Sets of flags for the model. | |
QFont | mFontGroup |
QFont | mFontLayer |
QMap< QString, QSet< QString > > | mHitTestResults |
QPointer< QgsMapHitTestTask > | mHitTestTask |
QSet< QgsLayerTreeLayer * > | mInvalidatedNodes |
Keep track of layer nodes for which the legend size needs to be recalculated. | |
QMap< QString, QString > | mLayerStyleOverrides |
Overrides of map layers' styles: key = layer ID, value = style XML. | |
QHash< QgsLayerTreeLayer *, LayerLegendData > | mLegend |
Per layer data about layer's legend nodes. | |
double | mLegendFilterByScale = 0 |
scale denominator for filtering of legend nodes (<= 0 means no filtering) | |
int | mLegendMapViewDpi = 0 |
double | mLegendMapViewMupp = 0 |
double | mLegendMapViewScale = 0 |
QgsLayerTree * | mRootNode = nullptr |
Pointer to the root node of the layer tree. Not owned by the model. | |
QSet< QgsScreenProperties > | mTargetScreenProperties |
Item model implementation based on layer tree model for layout legend.
Overrides some functionality of QgsLayerTreeModel to better fit the needs of layout legends.
Definition at line 42 of file qgslayoutitemlegend.h.
QgsLegendModel::QgsLegendModel | ( | QgsLayerTree * | rootNode, |
QObject * | parent = nullptr , |
||
QgsLayoutItemLegend * | layout = nullptr |
||
) |
Construct the model based on the given layer tree.
Definition at line 1335 of file qgslayoutitemlegend.cpp.
QgsLegendModel::QgsLegendModel | ( | QgsLayerTree * | rootNode, |
QgsLayoutItemLegend * | layout | ||
) |
Alternative constructor.
Definition at line 1345 of file qgslayoutitemlegend.cpp.
void QgsLegendModel::clearCachedData | ( | QgsLayerTreeNode * | node | ) | const |
Clears any previously cached data for the specified node.
Definition at line 1443 of file qgslayoutitemlegend.cpp.
|
override |
Definition at line 1355 of file qgslayoutitemlegend.cpp.
|
override |
Definition at line 1422 of file qgslayoutitemlegend.cpp.
QList< QgsLayerTreeModelLegendNode * > QgsLegendModel::layerLegendNodes | ( | QgsLayerTreeLayer * | nodeLayer, |
bool | skipNodeEmbeddedInParent = false |
||
) | const |
Returns 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
)
Definition at line 1431 of file qgslayoutitemlegend.cpp.
|
signal |
Emitted to refresh the legend.