mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-12 00:06:43 -04:00
sipify layer tree classes
This commit is contained in:
parent
6b260ffee6
commit
157709129e
@ -200,12 +200,6 @@ core/fieldformatter/qgslistfieldformatter.sip
|
||||
core/fieldformatter/qgsrelationreferencefieldformatter.sip
|
||||
core/fieldformatter/qgsvaluemapfieldformatter.sip
|
||||
core/fieldformatter/qgsvaluerelationfieldformatter.sip
|
||||
core/layertree/qgslayertree.sip
|
||||
core/layertree/qgslayertreemodel.sip
|
||||
core/layertree/qgslayertreemodellegendnode.sip
|
||||
core/layertree/qgslayertreenode.sip
|
||||
core/layertree/qgslayertreeregistrybridge.sip
|
||||
core/layertree/qgslayertreeutils.sip
|
||||
core/raster/qgsbilinearrasterresampler.sip
|
||||
core/raster/qgsbrightnesscontrastfilter.sip
|
||||
core/raster/qgscliptominmaxenhancement.sip
|
||||
|
@ -1,61 +1,188 @@
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/core/layertree/qgslayertree.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
||||
|
||||
|
||||
|
||||
class QgsLayerTree : QgsLayerTreeGroup
|
||||
{
|
||||
%TypeHeaderCode
|
||||
#include <qgslayertree.h>
|
||||
%Docstring
|
||||
Namespace with helper functions for layer tree operations.
|
||||
|
||||
Only generally useful routines should be here. Miscellaneous utility functions for work
|
||||
with the layer tree are in QgsLayerTreeUtils class.
|
||||
|
||||
.. versionadded:: 3.0
|
||||
%End
|
||||
|
||||
%TypeHeaderCode
|
||||
#include "qgslayertree.h"
|
||||
%End
|
||||
public:
|
||||
|
||||
static bool isGroup( QgsLayerTreeNode *node );
|
||||
%Docstring
|
||||
Check whether the node is a valid group node
|
||||
|
||||
.. versionadded:: 2.4
|
||||
:rtype: bool
|
||||
%End
|
||||
|
||||
static bool isLayer( const QgsLayerTreeNode *node );
|
||||
%Docstring
|
||||
Check whether the node is a valid layer node
|
||||
|
||||
//! Cast node to a group. No type checking is done - use isGroup() to find out whether this operation is legal.
|
||||
// PYTHON: automatic cast
|
||||
//inline QgsLayerTreeGroup* toGroup( QgsLayerTreeNode* node );
|
||||
.. versionadded:: 2.4
|
||||
:rtype: bool
|
||||
%End
|
||||
|
||||
//! Cast node to a layer. No type checking is done - use isLayer() to find out whether this operation is legal.
|
||||
// PYTHON: automatic cast
|
||||
//inline QgsLayerTreeLayer* toLayer( QgsLayerTreeNode* node );
|
||||
|
||||
|
||||
|
||||
QgsLayerTree();
|
||||
%Docstring
|
||||
Create a new empty layer tree
|
||||
%End
|
||||
|
||||
QList<QgsMapLayer *> customLayerOrder() const;
|
||||
%Docstring
|
||||
The order in which layers will be rendered on the canvas.
|
||||
Will only be used if the property hasCustomLayerOrder is true.
|
||||
If you need the current layer order that is active, prefer using layerOrder().
|
||||
|
||||
\see setCustomLayerOrder
|
||||
\see layerOrder
|
||||
\see hasCustomLayerOrder
|
||||
|
||||
.. versionadded:: 3.0
|
||||
:rtype: list of QgsMapLayer
|
||||
%End
|
||||
|
||||
void setCustomLayerOrder( const QList<QgsMapLayer *> &customLayerOrder );
|
||||
%Docstring
|
||||
The order in which layers will be rendered on the canvas.
|
||||
Will only be used if the property hasCustomLayerOrder is true.
|
||||
If you need the current layer order that is active, prefer using layerOrder().
|
||||
|
||||
\see customLayerOrder
|
||||
\see layerOrder
|
||||
\see hasCustomLayerOrder
|
||||
|
||||
.. versionadded:: 3.0
|
||||
%End
|
||||
|
||||
void setCustomLayerOrder( const QStringList &customLayerOrder ) /PyName=setCustomLayerOrderByIds/;
|
||||
%Docstring
|
||||
The order in which layers will be rendered on the canvas.
|
||||
Will only be used if the property hasCustomLayerOrder is true.
|
||||
If you need the current layer order that is active, prefer using layerOrder().
|
||||
|
||||
\see customLayerOrder
|
||||
\see layerOrder
|
||||
\see hasCustomLayerOrder
|
||||
|
||||
.. versionadded:: 3.0
|
||||
%End
|
||||
|
||||
QList<QgsMapLayer *> layerOrder() const;
|
||||
%Docstring
|
||||
The order in which layers will be rendered on the canvas.
|
||||
Depending on hasCustomLayerOrder, this will return either the override
|
||||
customLayerOrder or the layer order derived from the tree.
|
||||
This property is read only.
|
||||
|
||||
\see customLayerOrder
|
||||
|
||||
.. versionadded:: 3.0
|
||||
:rtype: list of QgsMapLayer
|
||||
%End
|
||||
|
||||
bool hasCustomLayerOrder() const;
|
||||
%Docstring
|
||||
Determines if the layer order should be derived from the layer tree
|
||||
or if a custom override order shall be used instead.
|
||||
|
||||
\see customLayerOrder
|
||||
|
||||
.. versionadded:: 3.0
|
||||
:rtype: bool
|
||||
%End
|
||||
|
||||
void setHasCustomLayerOrder( bool hasCustomLayerOrder );
|
||||
%Docstring
|
||||
Determines if the layer order should be derived from the layer tree
|
||||
or if a custom override order shall be used instead.
|
||||
|
||||
\see setCustomLayerOrder
|
||||
|
||||
.. versionadded:: 3.0
|
||||
%End
|
||||
|
||||
static QgsLayerTree *readXml( QDomElement &element );
|
||||
%Docstring
|
||||
Load the layer tree from an XML element.
|
||||
It is not required that layers are loaded at this point.
|
||||
resolveReferences() needs to be called after loading the layers and
|
||||
before using the tree.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. versionadded:: 3.0
|
||||
:rtype: QgsLayerTree
|
||||
%End
|
||||
|
||||
void readLayerOrderFromXml( const QDomElement &doc );
|
||||
%Docstring
|
||||
Load the layer order from an XML element.
|
||||
Make sure that this is only called after the layers are loaded.
|
||||
|
||||
.. versionadded:: 3.0
|
||||
%End
|
||||
|
||||
virtual void writeXml( QDomElement &parentElement );
|
||||
|
||||
virtual QgsLayerTree *clone() const;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void clear();
|
||||
%Docstring
|
||||
Clear any information from this layer tree.
|
||||
|
||||
.. versionadded:: 3.0
|
||||
%End
|
||||
|
||||
signals:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void customLayerOrderChanged();
|
||||
%Docstring
|
||||
Emitted when the custom layer order has changed.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. versionadded:: 3.0
|
||||
%End
|
||||
|
||||
void layerOrderChanged();
|
||||
%Docstring
|
||||
Emitted when the layer order has changed.
|
||||
|
||||
.. versionadded:: 3.0
|
||||
%End
|
||||
|
||||
void hasCustomLayerOrderChanged( bool hasCustomLayerOrder );
|
||||
%Docstring
|
||||
Emitted when the hasCustomLayerOrder flag changes.
|
||||
|
||||
\see hasCustomLayerOrder
|
||||
|
||||
.. versionadded:: 3.0
|
||||
%End
|
||||
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/core/layertree/qgslayertree.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
||||
|
@ -1,201 +1,277 @@
|
||||
/**
|
||||
* 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 QgsLayerTreeView
|
||||
* @note added in 2.4
|
||||
*/
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/core/layertree/qgslayertreemodel.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class QgsLayerTreeModel : QAbstractItemModel
|
||||
{
|
||||
%Docstring
|
||||
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 QgsLayerTreeView
|
||||
.. versionadded:: 2.4
|
||||
%End
|
||||
|
||||
%TypeHeaderCode
|
||||
#include <qgslayertreemodel.h>
|
||||
#include "qgslayertreemodel.h"
|
||||
%End
|
||||
|
||||
%ConvertToSubClassCode
|
||||
if (sipCpp->inherits("QgsLayerTreeModel"))
|
||||
sipType = sipType_QgsLayerTreeModel;
|
||||
else
|
||||
sipType = 0;
|
||||
if ( sipCpp->inherits( "QgsLayerTreeModel" ) )
|
||||
sipType = sipType_QgsLayerTreeModel;
|
||||
else
|
||||
sipType = 0;
|
||||
%End
|
||||
public:
|
||||
explicit QgsLayerTreeModel( QgsLayerTree *rootNode, QObject *parent /TransferThis/ = 0 );
|
||||
%Docstring
|
||||
The root node is not transferred by the model.
|
||||
%End
|
||||
|
||||
public:
|
||||
//! 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.
|
||||
explicit QgsLayerTreeModel( QgsLayerTree* rootNode, QObject *parent /TransferThis/ = 0 );
|
||||
~QgsLayerTreeModel();
|
||||
|
||||
// Implementation of virtual functions from QAbstractItemModel
|
||||
|
||||
int rowCount( const QModelIndex &parent = QModelIndex() ) const;
|
||||
int columnCount( const QModelIndex &parent = QModelIndex() ) const;
|
||||
QModelIndex index( int row, int column, const QModelIndex &parent = QModelIndex() ) const;
|
||||
QModelIndex parent( const QModelIndex &child ) const;
|
||||
QVariant data( const QModelIndex &index, int role = Qt::DisplayRole ) const;
|
||||
Qt::ItemFlags flags( const QModelIndex &index ) const;
|
||||
bool setData( const QModelIndex &index, const QVariant &value, int role = Qt::EditRole );
|
||||
Qt::DropActions supportedDropActions() const;
|
||||
QStringList mimeTypes() const;
|
||||
QMimeData* mimeData( const QModelIndexList& indexes ) const;
|
||||
bool dropMimeData( const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent );
|
||||
bool removeRows( int row, int count, const QModelIndex& parent = QModelIndex() );
|
||||
virtual int rowCount( const QModelIndex &parent = QModelIndex() ) const;
|
||||
|
||||
%Docstring
|
||||
Implementation of virtual functions from QAbstractItemModel
|
||||
:rtype: int
|
||||
%End
|
||||
virtual int columnCount( const QModelIndex &parent = QModelIndex() ) const;
|
||||
|
||||
virtual QModelIndex index( int row, int column, const QModelIndex &parent = QModelIndex() ) const;
|
||||
|
||||
virtual QModelIndex parent( const QModelIndex &child ) const;
|
||||
|
||||
virtual QVariant data( const QModelIndex &index, int role = Qt::DisplayRole ) const;
|
||||
|
||||
virtual Qt::ItemFlags flags( const QModelIndex &index ) const;
|
||||
|
||||
virtual bool setData( const QModelIndex &index, const QVariant &value, int role = Qt::EditRole );
|
||||
|
||||
virtual Qt::DropActions supportedDropActions() const;
|
||||
|
||||
virtual QStringList mimeTypes() const;
|
||||
|
||||
virtual QMimeData *mimeData( const QModelIndexList &indexes ) const;
|
||||
|
||||
virtual bool dropMimeData( const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent );
|
||||
|
||||
virtual bool removeRows( int row, int count, const QModelIndex &parent = QModelIndex() );
|
||||
|
||||
|
||||
// New stuff
|
||||
|
||||
enum Flag
|
||||
{
|
||||
// display flags
|
||||
ShowLegend, //!< Add legend nodes for layer nodes
|
||||
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
|
||||
// display
|
||||
ShowLegend,
|
||||
ShowRasterPreviewIcon,
|
||||
ShowLegendAsTree,
|
||||
DeferredLegendInvalidation,
|
||||
UseEmbeddedWidgets,
|
||||
|
||||
// behavioral flags
|
||||
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)
|
||||
ActionHierarchical, //!< Check/uncheck action has consequences on children (or parents for leaf node)
|
||||
// behavioral
|
||||
AllowNodeReorder,
|
||||
AllowNodeRename,
|
||||
AllowNodeChangeVisibility,
|
||||
AllowLegendChangeState,
|
||||
ActionHierarchical,
|
||||
};
|
||||
typedef QFlags<QgsLayerTreeModel::Flag> Flags;
|
||||
|
||||
//! Set OR-ed combination of model flags
|
||||
void setFlags( Flags f );
|
||||
//! Enable or disable a model flag
|
||||
|
||||
void setFlags( QgsLayerTreeModel::Flags f );
|
||||
%Docstring
|
||||
Set OR-ed combination of model flags
|
||||
%End
|
||||
void setFlag( Flag f, bool on = true );
|
||||
//! Return OR-ed combination of model flags
|
||||
%Docstring
|
||||
Enable or disable a model flag
|
||||
%End
|
||||
Flags flags() const;
|
||||
//! Check whether a flag is enabled
|
||||
%Docstring
|
||||
Return OR-ed combination of model flags
|
||||
:rtype: Flags
|
||||
%End
|
||||
bool testFlag( Flag f ) const;
|
||||
%Docstring
|
||||
Check whether a flag is enabled
|
||||
:rtype: bool
|
||||
%End
|
||||
|
||||
//! 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)
|
||||
QgsLayerTreeNode* index2node( const QModelIndex& index ) const;
|
||||
//! Return index for a given node. If the node does not belong to the layer tree, the result is undefined
|
||||
QModelIndex node2index( QgsLayerTreeNode* node ) const;
|
||||
//! Convert a list of indexes to a list of layer tree nodes.
|
||||
//! Indices that do not represent layer tree nodes are skipped.
|
||||
//! @arg skipInternal If true, a node is included in the output list only if no parent node is in the list
|
||||
QList<QgsLayerTreeNode*> indexes2nodes( const QModelIndexList& list, bool skipInternal = false ) const;
|
||||
QgsLayerTreeNode *index2node( const QModelIndex &index ) const;
|
||||
%Docstring
|
||||
Returns null pointer if index does not refer to a layer tree node (e.g. it is a legend node)
|
||||
:rtype: QgsLayerTreeNode
|
||||
%End
|
||||
QModelIndex node2index( QgsLayerTreeNode *node ) const;
|
||||
%Docstring
|
||||
Return index for a given node. If the node does not belong to the layer tree, the result is undefined
|
||||
:rtype: QModelIndex
|
||||
%End
|
||||
QList<QgsLayerTreeNode *> indexes2nodes( const QModelIndexList &list, bool skipInternal = false ) const;
|
||||
%Docstring
|
||||
@arg skipInternal If true, a node is included in the output list only if no parent node is in the list
|
||||
:rtype: list of QgsLayerTreeNode
|
||||
%End
|
||||
|
||||
//! Return legend node for given index. Returns null for invalid index
|
||||
//! @note added in 2.6
|
||||
static QgsLayerTreeModelLegendNode* index2legendNode( const QModelIndex& index );
|
||||
//! 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
|
||||
QModelIndex legendNode2index( QgsLayerTreeModelLegendNode* legendNode );
|
||||
static QgsLayerTreeModelLegendNode *index2legendNode( const QModelIndex &index );
|
||||
%Docstring
|
||||
.. versionadded:: 2.6
|
||||
:rtype: QgsLayerTreeModelLegendNode
|
||||
%End
|
||||
QModelIndex legendNode2index( QgsLayerTreeModelLegendNode *legendNode );
|
||||
%Docstring
|
||||
.. versionadded:: 2.6
|
||||
:rtype: QModelIndex
|
||||
%End
|
||||
|
||||
//! 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
|
||||
//! @note skipNodeEmbeddedInParent added in 2.18
|
||||
//! @see layerOriginalLegendNodes()
|
||||
QList<QgsLayerTreeModelLegendNode*> layerLegendNodes( QgsLayerTreeLayer* nodeLayer, bool skipNodeEmbeddedInParent = false );
|
||||
QList<QgsLayerTreeModelLegendNode *> layerLegendNodes( QgsLayerTreeLayer *nodeLayer, bool skipNodeEmbeddedInParent = false );
|
||||
%Docstring
|
||||
\see layerOriginalLegendNodes()
|
||||
:rtype: list of QgsLayerTreeModelLegendNode
|
||||
%End
|
||||
|
||||
//! Return original (unfiltered) list of legend nodes attached to a particular layer node
|
||||
//! @note added in 2.14
|
||||
//! @see layerLegendNodes()
|
||||
QList<QgsLayerTreeModelLegendNode*> layerOriginalLegendNodes( QgsLayerTreeLayer* nodeLayer );
|
||||
QList<QgsLayerTreeModelLegendNode *> layerOriginalLegendNodes( QgsLayerTreeLayer *nodeLayer );
|
||||
%Docstring
|
||||
\see layerLegendNodes()
|
||||
:rtype: list of QgsLayerTreeModelLegendNode
|
||||
%End
|
||||
|
||||
//! Return legend node that may be embedded in parent (i.e. its icon will be used for layer's icon).
|
||||
//! @note added in 2.18
|
||||
QgsLayerTreeModelLegendNode* legendNodeEmbeddedInParent( QgsLayerTreeLayer* nodeLayer ) const;
|
||||
QgsLayerTreeModelLegendNode *legendNodeEmbeddedInParent( QgsLayerTreeLayer *nodeLayer ) const;
|
||||
%Docstring
|
||||
.. versionadded:: 2.18
|
||||
:rtype: QgsLayerTreeModelLegendNode
|
||||
%End
|
||||
|
||||
/** Searches through the layer tree to find a legend node with a matching layer ID
|
||||
* and rule key.
|
||||
* @param layerId map layer ID
|
||||
* @param ruleKey legend node rule key
|
||||
* @returns QgsLayerTreeModelLegendNode if found
|
||||
* @note added in QGIS 2.14
|
||||
*/
|
||||
QgsLayerTreeModelLegendNode* findLegendNode( const QString& layerId, const QString& ruleKey ) const;
|
||||
QgsLayerTreeModelLegendNode *findLegendNode( const QString &layerId, const QString &ruleKey ) const;
|
||||
%Docstring
|
||||
Searches through the layer tree to find a legend node with a matching layer ID
|
||||
and rule key.
|
||||
\param layerId map layer ID
|
||||
\param ruleKey legend node rule key
|
||||
:return: QgsLayerTreeModelLegendNode if found
|
||||
.. versionadded:: 2.14
|
||||
:rtype: QgsLayerTreeModelLegendNode
|
||||
%End
|
||||
|
||||
//! Return pointer to the root node of the layer tree. Always a non-null pointer.
|
||||
QgsLayerTree* rootGroup() const;
|
||||
//! Reset the model and use a new root group node
|
||||
//! @note added in 2.6
|
||||
void setRootGroup( QgsLayerTree* newRootGroup );
|
||||
QgsLayerTree *rootGroup() const;
|
||||
%Docstring
|
||||
Return pointer to the root node of the layer tree. Always a non-null pointer.
|
||||
:rtype: QgsLayerTree
|
||||
%End
|
||||
void setRootGroup( QgsLayerTree *newRootGroup );
|
||||
%Docstring
|
||||
.. versionadded:: 2.6
|
||||
%End
|
||||
|
||||
//! 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.
|
||||
void refreshLayerLegend( QgsLayerTreeLayer* nodeLayer );
|
||||
void refreshLayerLegend( QgsLayerTreeLayer *nodeLayer );
|
||||
%Docstring
|
||||
Not necessary to call when layer's renderer is changed as the model listens to these events.
|
||||
%End
|
||||
|
||||
//! Get index of the item marked as current. Item marked as current is underlined.
|
||||
QModelIndex currentIndex() const;
|
||||
//! Set index of the current item. May be used by view. Item marked as current is underlined.
|
||||
void setCurrentIndex( const QModelIndex& currentIndex );
|
||||
%Docstring
|
||||
Get index of the item marked as current. Item marked as current is underlined.
|
||||
:rtype: QModelIndex
|
||||
%End
|
||||
void setCurrentIndex( const QModelIndex ¤tIndex );
|
||||
%Docstring
|
||||
Set index of the current item. May be used by view. Item marked as current is underlined.
|
||||
%End
|
||||
|
||||
//! Set font for a particular type of layer tree node. nodeType should come from QgsLayerTreeNode::NodeType enumeration
|
||||
void setLayerTreeNodeFont( int nodeType, const QFont& font );
|
||||
//! Get font for a particular type of layer tree node. nodeType should come from QgsLayerTreeNode::NodeType enumeration
|
||||
void setLayerTreeNodeFont( int nodeType, const QFont &font );
|
||||
%Docstring
|
||||
Set font for a particular type of layer tree node. nodeType should come from QgsLayerTreeNode.NodeType enumeration
|
||||
%End
|
||||
QFont layerTreeNodeFont( int nodeType ) const;
|
||||
%Docstring
|
||||
Get font for a particular type of layer tree node. nodeType should come from QgsLayerTreeNode.NodeType enumeration
|
||||
:rtype: QFont
|
||||
%End
|
||||
|
||||
//! Set at what number of legend nodes the layer node should be collapsed. Setting -1 disables the auto-collapse (default).
|
||||
void setAutoCollapseLegendNodes( int nodeCount );
|
||||
//! Return at what number of legend nodes the layer node should be collapsed. -1 means no auto-collapse (default).
|
||||
%Docstring
|
||||
Set at what number of legend nodes the layer node should be collapsed. Setting -1 disables the auto-collapse (default).
|
||||
%End
|
||||
int autoCollapseLegendNodes() const;
|
||||
%Docstring
|
||||
Return at what number of legend nodes the layer node should be collapsed. -1 means no auto-collapse (default).
|
||||
:rtype: int
|
||||
%End
|
||||
|
||||
//! 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
|
||||
void setLegendFilterByScale( double scaleDenominator );
|
||||
%Docstring
|
||||
.. versionadded:: 2.6
|
||||
%End
|
||||
double legendFilterByScale() const;
|
||||
%Docstring
|
||||
:rtype: float
|
||||
%End
|
||||
|
||||
//! 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.
|
||||
//! @note added in 2.6
|
||||
void setLegendFilterByMap( const QgsMapSettings* settings );
|
||||
void setLegendFilterByMap( const QgsMapSettings *settings );
|
||||
%Docstring
|
||||
.. versionadded:: 2.6
|
||||
%End
|
||||
|
||||
//! Filter display of legend nodes for given map settings
|
||||
//! @param settings Map settings. Setting a null pointer or invalid settings will disable any filter. Ownership is not changed, a copy is made
|
||||
//! @param useExtent Whether to use the extent of the map settings as a first spatial filter on legend nodes
|
||||
//! @param polygon If not empty, this polygon will be used instead of the map extent to filter legend nodes
|
||||
//! @param useExpressions Whether to use legend node filter expressions
|
||||
//! @note added in 2.14
|
||||
void setLegendFilter( const QgsMapSettings* settings, bool useExtent = true, const QgsGeometry& polygon = QgsGeometry(), bool useExpressions = true );
|
||||
void setLegendFilter( const QgsMapSettings *settings, bool useExtent = true, const QgsGeometry &polygon = QgsGeometry(), bool useExpressions = true );
|
||||
%Docstring
|
||||
.. versionadded:: 2.14
|
||||
%End
|
||||
|
||||
//! Returns the current map settings used for the current legend filter (or null if none is enabled)
|
||||
//! @note added in 2.14
|
||||
const QgsMapSettings* legendFilterMapSettings() const;
|
||||
const QgsMapSettings *legendFilterMapSettings() const;
|
||||
%Docstring
|
||||
.. versionadded:: 2.14
|
||||
:rtype: QgsMapSettings
|
||||
%End
|
||||
|
||||
//! 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
|
||||
void setLegendMapViewData( 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
|
||||
void legendMapViewData( double *mapUnitsPerPixel /Out/, int *dpi /Out/, double *scale /Out/ ) const;
|
||||
%Docstring
|
||||
.. versionadded:: 2.6
|
||||
%End
|
||||
void legendMapViewData( double *mapUnitsPerPixel /Out/, int *dpi /Out/, double *scale /Out/ ) const;
|
||||
%Docstring
|
||||
.. versionadded:: 2.6
|
||||
%End
|
||||
|
||||
//! 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
|
||||
QMap<QString, QString> layerStyleOverrides() const;
|
||||
//! 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
|
||||
void setLayerStyleOverrides( const QMap<QString, QString>& overrides );
|
||||
|
||||
signals:
|
||||
%Docstring
|
||||
.. versionadded:: 2.10
|
||||
:rtype: QMap<str, QString>
|
||||
%End
|
||||
void setLayerStyleOverrides( const QMap<QString, QString> &overrides );
|
||||
%Docstring
|
||||
.. versionadded:: 2.10
|
||||
%End
|
||||
|
||||
protected slots:
|
||||
void nodeWillAddChildren( QgsLayerTreeNode* node, int indexFrom, int indexTo );
|
||||
void nodeAddedChildren( QgsLayerTreeNode* node, int indexFrom, int indexTo );
|
||||
void nodeWillRemoveChildren( QgsLayerTreeNode* node, int indexFrom, int indexTo );
|
||||
void nodeWillAddChildren( QgsLayerTreeNode *node, int indexFrom, int indexTo );
|
||||
void nodeAddedChildren( QgsLayerTreeNode *node, int indexFrom, int indexTo );
|
||||
void nodeWillRemoveChildren( QgsLayerTreeNode *node, int indexFrom, int indexTo );
|
||||
void nodeRemovedChildren();
|
||||
|
||||
void nodeVisibilityChanged( QgsLayerTreeNode* node );
|
||||
//! Updates model when node's name has changed
|
||||
//! @note added in 3.0
|
||||
void nodeNameChanged( QgsLayerTreeNode* node, const QString& name );
|
||||
void nodeVisibilityChanged( QgsLayerTreeNode *node );
|
||||
void nodeNameChanged( QgsLayerTreeNode *node, const QString &name );
|
||||
%Docstring
|
||||
.. versionadded:: 3.0
|
||||
%End
|
||||
|
||||
void nodeCustomPropertyChanged( QgsLayerTreeNode* node, const QString& key );
|
||||
void nodeCustomPropertyChanged( QgsLayerTreeNode *node, const QString &key );
|
||||
|
||||
void nodeLayerLoaded();
|
||||
void nodeLayerWillBeUnloaded();
|
||||
@ -208,43 +284,105 @@ class QgsLayerTreeModel : QAbstractItemModel
|
||||
void invalidateLegendMapBasedData();
|
||||
|
||||
protected:
|
||||
void removeLegendFromLayer( QgsLayerTreeLayer* nodeLayer );
|
||||
void addLegendToLayer( QgsLayerTreeLayer* nodeL );
|
||||
void removeLegendFromLayer( QgsLayerTreeLayer *nodeLayer );
|
||||
void addLegendToLayer( QgsLayerTreeLayer *nodeL );
|
||||
|
||||
void connectToLayer( QgsLayerTreeLayer* nodeLayer );
|
||||
void disconnectFromLayer( QgsLayerTreeLayer* nodeLayer );
|
||||
void connectToLayer( QgsLayerTreeLayer *nodeLayer );
|
||||
void disconnectFromLayer( QgsLayerTreeLayer *nodeLayer );
|
||||
|
||||
void connectToLayers( QgsLayerTreeGroup* parentGroup );
|
||||
void disconnectFromLayers( QgsLayerTreeGroup* parentGroup );
|
||||
void connectToLayers( QgsLayerTreeGroup *parentGroup );
|
||||
void disconnectFromLayers( QgsLayerTreeGroup *parentGroup );
|
||||
void connectToRootNode();
|
||||
void disconnectFromRootNode();
|
||||
|
||||
//! emit dataChanged() for layer tree node items
|
||||
void recursivelyEmitDataChanged( const QModelIndex& index = QModelIndex() );
|
||||
void recursivelyEmitDataChanged( const QModelIndex &index = QModelIndex() );
|
||||
%Docstring
|
||||
emit dataChanged() for layer tree node items
|
||||
%End
|
||||
|
||||
/** 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
|
||||
*/
|
||||
void refreshScaleBasedLayers( const QModelIndex& index = QModelIndex() );
|
||||
void refreshScaleBasedLayers( const QModelIndex &index = QModelIndex() );
|
||||
%Docstring
|
||||
Updates layer data for scale dependent layers, should be called when map scale changes.
|
||||
Emits dataChanged() for all scale dependent layers.
|
||||
.. versionadded:: 2.16
|
||||
%End
|
||||
|
||||
static QIcon iconGroup();
|
||||
%Docstring
|
||||
:rtype: QIcon
|
||||
%End
|
||||
|
||||
//! Filter nodes from QgsMapLayerLegend according to the current filtering rules
|
||||
QList<QgsLayerTreeModelLegendNode*> filterLegendNodes( const QList<QgsLayerTreeModelLegendNode*>& nodes );
|
||||
QList<QgsLayerTreeModelLegendNode *> filterLegendNodes( const QList<QgsLayerTreeModelLegendNode *> &nodes );
|
||||
%Docstring
|
||||
Filter nodes from QgsMapLayerLegend according to the current filtering rules
|
||||
:rtype: list of QgsLayerTreeModelLegendNode
|
||||
%End
|
||||
|
||||
QModelIndex indexOfParentLayerTreeNode( QgsLayerTreeNode* parentNode ) const;
|
||||
QModelIndex indexOfParentLayerTreeNode( QgsLayerTreeNode *parentNode ) const;
|
||||
%Docstring
|
||||
:rtype: QModelIndex
|
||||
%End
|
||||
|
||||
int legendRootRowCount( QgsLayerTreeLayer* nL ) const;
|
||||
int legendNodeRowCount( QgsLayerTreeModelLegendNode* node ) const;
|
||||
QModelIndex legendRootIndex( int row, int column, QgsLayerTreeLayer* nL ) const;
|
||||
QModelIndex legendNodeIndex( int row, int column, QgsLayerTreeModelLegendNode* node ) const;
|
||||
QModelIndex legendParent( QgsLayerTreeModelLegendNode* legendNode ) const;
|
||||
QVariant legendNodeData( QgsLayerTreeModelLegendNode* node, int role ) const;
|
||||
Qt::ItemFlags legendNodeFlags( QgsLayerTreeModelLegendNode* node ) const;
|
||||
bool legendEmbeddedInParent( QgsLayerTreeLayer* nodeLayer ) const;
|
||||
QIcon legendIconEmbeddedInParent( QgsLayerTreeLayer* nodeLayer ) const;
|
||||
int legendRootRowCount( QgsLayerTreeLayer *nL ) const;
|
||||
%Docstring
|
||||
:rtype: int
|
||||
%End
|
||||
int legendNodeRowCount( QgsLayerTreeModelLegendNode *node ) const;
|
||||
%Docstring
|
||||
:rtype: int
|
||||
%End
|
||||
QModelIndex legendRootIndex( int row, int column, QgsLayerTreeLayer *nL ) const;
|
||||
%Docstring
|
||||
:rtype: QModelIndex
|
||||
%End
|
||||
QModelIndex legendNodeIndex( int row, int column, QgsLayerTreeModelLegendNode *node ) const;
|
||||
%Docstring
|
||||
:rtype: QModelIndex
|
||||
%End
|
||||
QModelIndex legendParent( QgsLayerTreeModelLegendNode *legendNode ) const;
|
||||
%Docstring
|
||||
:rtype: QModelIndex
|
||||
%End
|
||||
QVariant legendNodeData( QgsLayerTreeModelLegendNode *node, int role ) const;
|
||||
%Docstring
|
||||
:rtype: QVariant
|
||||
%End
|
||||
Qt::ItemFlags legendNodeFlags( QgsLayerTreeModelLegendNode *node ) const;
|
||||
%Docstring
|
||||
:rtype: Qt.ItemFlags
|
||||
%End
|
||||
bool legendEmbeddedInParent( QgsLayerTreeLayer *nodeLayer ) const;
|
||||
%Docstring
|
||||
:rtype: bool
|
||||
%End
|
||||
QIcon legendIconEmbeddedInParent( QgsLayerTreeLayer *nodeLayer ) const;
|
||||
%Docstring
|
||||
:rtype: QIcon
|
||||
%End
|
||||
void legendCleanup();
|
||||
void legendInvalidateMapBasedData();
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
QFlags<QgsLayerTreeModel::Flag> operator|(QgsLayerTreeModel::Flag f1, QFlags<QgsLayerTreeModel::Flag> f2);
|
||||
|
||||
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/core/layertree/qgslayertreemodel.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
||||
|
@ -1,63 +1,105 @@
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/core/layertree/qgslayertreemodellegendnode.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* The QgsLegendRendererItem class is abstract interface for legend items
|
||||
* returned from QgsMapLayerLegend implementation.
|
||||
*
|
||||
* The objects are used in QgsLayerTreeModel. Custom implementations may offer additional interactivity
|
||||
* and customized look.
|
||||
*
|
||||
* @note added in 2.6
|
||||
*/
|
||||
class QgsLayerTreeModelLegendNode : QObject
|
||||
{
|
||||
%TypeHeaderCode
|
||||
#include <qgslayertreemodellegendnode.h>
|
||||
%Docstring
|
||||
The QgsLegendRendererItem class is abstract interface for legend items
|
||||
returned from QgsMapLayerLegend implementation.
|
||||
|
||||
The objects are used in QgsLayerTreeModel. Custom implementations may offer additional interactivity
|
||||
and customized look.
|
||||
|
||||
.. versionadded:: 2.6
|
||||
%End
|
||||
|
||||
%TypeHeaderCode
|
||||
#include "qgslayertreemodellegendnode.h"
|
||||
%End
|
||||
public:
|
||||
~QgsLayerTreeModelLegendNode();
|
||||
|
||||
enum LegendNodeRoles
|
||||
{
|
||||
RuleKeyRole, //!< rule key of the node (QString)
|
||||
ParentRuleKeyRole //!< rule key of the parent legend node - for legends with tree hierarchy (QString). Added in 2.8
|
||||
RuleKeyRole
|
||||
ParentRuleKeyRole
|
||||
};
|
||||
|
||||
/** Return pointer to the parent layer node */
|
||||
QgsLayerTreeLayer* layerNode() const;
|
||||
QgsLayerTreeLayer *layerNode() const;
|
||||
%Docstring
|
||||
Return pointer to the parent layer node
|
||||
:rtype: QgsLayerTreeLayer
|
||||
%End
|
||||
|
||||
/** Return pointer to model owning this legend node */
|
||||
QgsLayerTreeModel* model() const;
|
||||
QgsLayerTreeModel *model() const;
|
||||
%Docstring
|
||||
Return pointer to model owning this legend node
|
||||
:rtype: QgsLayerTreeModel
|
||||
%End
|
||||
|
||||
/** Return item flags associated with the item. Default implementation returns Qt::ItemIsEnabled. */
|
||||
virtual Qt::ItemFlags flags() const;
|
||||
%Docstring
|
||||
Return item flags associated with the item. Default implementation returns Qt.ItemIsEnabled.
|
||||
:rtype: Qt.ItemFlags
|
||||
%End
|
||||
|
||||
/** Return data associated with the item. Must be implemented in derived class. */
|
||||
virtual QVariant data( int role ) const = 0;
|
||||
%Docstring
|
||||
Return data associated with the item. Must be implemented in derived class.
|
||||
:rtype: QVariant
|
||||
%End
|
||||
|
||||
/** Set some data associated with the item. Default implementation does nothing and returns false. */
|
||||
virtual bool setData( const QVariant& value, int role );
|
||||
virtual bool setData( const QVariant &value, int role );
|
||||
%Docstring
|
||||
Set some data associated with the item. Default implementation does nothing and returns false.
|
||||
:rtype: bool
|
||||
%End
|
||||
|
||||
virtual bool isEmbeddedInParent() const;
|
||||
%Docstring
|
||||
:rtype: bool
|
||||
%End
|
||||
virtual void setEmbeddedInParent( bool embedded );
|
||||
|
||||
virtual QString userLabel() const;
|
||||
virtual void setUserLabel( const QString& userLabel );
|
||||
%Docstring
|
||||
:rtype: str
|
||||
%End
|
||||
virtual void setUserLabel( const QString &userLabel );
|
||||
|
||||
virtual bool isScaleOK( double scale ) const;
|
||||
%Docstring
|
||||
:rtype: bool
|
||||
%End
|
||||
|
||||
/** Notification from model that information from associated map view has changed.
|
||||
* Default implementation does nothing. */
|
||||
virtual void invalidateMapBasedData();
|
||||
%Docstring
|
||||
Notification from model that information from associated map view has changed.
|
||||
Default implementation does nothing. *
|
||||
%End
|
||||
|
||||
struct ItemContext
|
||||
{
|
||||
//! Painter
|
||||
QPainter* painter;
|
||||
//! Top-left corner of the legend item
|
||||
QPainter *painter;
|
||||
%Docstring
|
||||
Painter
|
||||
%End
|
||||
QPointF point;
|
||||
//! offset from the left side where label should start
|
||||
%Docstring
|
||||
Top-left corner of the legend item
|
||||
%End
|
||||
double labelXOffset;
|
||||
%Docstring
|
||||
offset from the left side where label should start
|
||||
%End
|
||||
};
|
||||
|
||||
struct ItemMetrics
|
||||
@ -66,204 +108,240 @@ class QgsLayerTreeModelLegendNode : QObject
|
||||
QSizeF labelSize;
|
||||
};
|
||||
|
||||
/** Entry point called from QgsLegendRenderer to do the rendering.
|
||||
* Default implementation calls drawSymbol() and drawSymbolText() methods.
|
||||
*
|
||||
* If ctx is null, this is just first stage when preparing layout - without actual rendering.
|
||||
*/
|
||||
virtual ItemMetrics draw( const QgsLegendSettings& settings, ItemContext* ctx );
|
||||
virtual ItemMetrics draw( const QgsLegendSettings &settings, ItemContext *ctx );
|
||||
%Docstring
|
||||
Entry point called from QgsLegendRenderer to do the rendering.
|
||||
Default implementation calls drawSymbol() and drawSymbolText() methods.
|
||||
|
||||
/**
|
||||
* Draws symbol on the left side of the item
|
||||
* @param settings Legend layout configuration
|
||||
* @param ctx Context for rendering - may be null if only doing layout without actual rendering
|
||||
* @param itemHeight Minimal height of the legend item - used for correct positioning when rendering
|
||||
* @return Real size of the symbol (may be bigger than "normal" symbol size from settings)
|
||||
*/
|
||||
virtual QSizeF drawSymbol( const QgsLegendSettings& settings, ItemContext* ctx, double itemHeight ) const;
|
||||
If ctx is null, this is just first stage when preparing layout - without actual rendering.
|
||||
:rtype: ItemMetrics
|
||||
%End
|
||||
|
||||
/**
|
||||
* Draws label on the right side of the item
|
||||
* @param settings Legend layout configuration
|
||||
* @param ctx Context for rendering - may be null if only doing layout without actual rendering
|
||||
* @param symbolSize Real size of the associated symbol - used for correct positioning when rendering
|
||||
* @return Size of the label (may span multiple lines)
|
||||
*/
|
||||
virtual QSizeF drawSymbolText( const QgsLegendSettings& settings, ItemContext* ctx, QSizeF symbolSize ) const;
|
||||
virtual QSizeF drawSymbol( const QgsLegendSettings &settings, ItemContext *ctx, double itemHeight ) const;
|
||||
%Docstring
|
||||
Draws symbol on the left side of the item
|
||||
\param settings Legend layout configuration
|
||||
\param ctx Context for rendering - may be null if only doing layout without actual rendering
|
||||
\param itemHeight Minimal height of the legend item - used for correct positioning when rendering
|
||||
:return: Real size of the symbol (may be bigger than "normal" symbol size from settings)
|
||||
:rtype: QSizeF
|
||||
%End
|
||||
|
||||
virtual QSizeF drawSymbolText( const QgsLegendSettings &settings, ItemContext *ctx, QSizeF symbolSize ) const;
|
||||
%Docstring
|
||||
Draws label on the right side of the item
|
||||
\param settings Legend layout configuration
|
||||
\param ctx Context for rendering - may be null if only doing layout without actual rendering
|
||||
\param symbolSize Real size of the associated symbol - used for correct positioning when rendering
|
||||
:return: Size of the label (may span multiple lines)
|
||||
:rtype: QSizeF
|
||||
%End
|
||||
|
||||
signals:
|
||||
//! Emitted on internal data change so the layer tree model can forward the signal to views
|
||||
void dataChanged();
|
||||
%Docstring
|
||||
Emitted on internal data change so the layer tree model can forward the signal to views
|
||||
%End
|
||||
|
||||
protected:
|
||||
/** Construct the node with pointer to its parent layer node */
|
||||
explicit QgsLayerTreeModelLegendNode( QgsLayerTreeLayer* nodeL, QObject* parent /TransferThis/ = 0 );
|
||||
explicit QgsLayerTreeModelLegendNode( QgsLayerTreeLayer *nodeL, QObject *parent /TransferThis/ = 0 );
|
||||
%Docstring
|
||||
Construct the node with pointer to its parent layer node
|
||||
%End
|
||||
|
||||
private:
|
||||
QgsLayerTreeModelLegendNode(const QgsLayerTreeModelLegendNode &);
|
||||
protected:
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Implementation of legend node interface for displaying preview of vector symbols and their labels
|
||||
* and allowing interaction with the symbol / renderer.
|
||||
*
|
||||
* @note added in 2.6
|
||||
*/
|
||||
class QgsSymbolLegendNode : QgsLayerTreeModelLegendNode
|
||||
{
|
||||
%Docstring
|
||||
Implementation of legend node interface for displaying preview of vector symbols and their labels
|
||||
and allowing interaction with the symbol / renderer.
|
||||
|
||||
.. versionadded:: 2.6
|
||||
%End
|
||||
|
||||
%TypeHeaderCode
|
||||
#include <qgslayertreemodellegendnode.h>
|
||||
#include "qgslayertreemodellegendnode.h"
|
||||
%End
|
||||
public:
|
||||
QgsSymbolLegendNode( QgsLayerTreeLayer* nodeLayer, const QgsLegendSymbolItem& item, QObject* parent /TransferThis/ = 0 );
|
||||
~QgsSymbolLegendNode();
|
||||
QgsSymbolLegendNode( QgsLayerTreeLayer *nodeLayer, const QgsLegendSymbolItem &item, QObject *parent /TransferThis/ = 0 );
|
||||
|
||||
virtual Qt::ItemFlags flags() const;
|
||||
virtual QVariant data( int role ) const;
|
||||
virtual bool setData( const QVariant& value, int role );
|
||||
virtual bool setData( const QVariant &value, int role );
|
||||
|
||||
virtual QSizeF drawSymbol( const QgsLegendSettings &settings, ItemContext *ctx, double itemHeight ) const;
|
||||
|
||||
QSizeF drawSymbol( const QgsLegendSettings& settings, ItemContext* ctx, double itemHeight ) const;
|
||||
|
||||
virtual void setEmbeddedInParent( bool embedded );
|
||||
|
||||
void setUserLabel( const QString& userLabel );
|
||||
virtual void setUserLabel( const QString &userLabel );
|
||||
|
||||
virtual bool isScaleOK( double scale ) const;
|
||||
|
||||
virtual void invalidateMapBasedData();
|
||||
|
||||
//! Set the icon size
|
||||
//! @note added in 2.10
|
||||
void setIconSize( QSize sz );
|
||||
//! @note added in 2.10
|
||||
%Docstring
|
||||
.. versionadded:: 2.10
|
||||
%End
|
||||
QSize iconSize() const;
|
||||
%Docstring
|
||||
.. versionadded:: 2.10
|
||||
:rtype: QSize
|
||||
%End
|
||||
|
||||
/**
|
||||
* Calculates the minimum icon size to prevent cropping. When evaluating
|
||||
* the size for multiple icons it is more efficient to create a single
|
||||
* render context in advance and use the variant which accepts a QgsRenderContext
|
||||
* argument.
|
||||
* @note added in 2.10
|
||||
*/
|
||||
QSize minimumIconSize() const;
|
||||
%Docstring
|
||||
Calculates the minimum icon size to prevent cropping. When evaluating
|
||||
the size for multiple icons it is more efficient to create a single
|
||||
render context in advance and use the variant which accepts a QgsRenderContext
|
||||
argument.
|
||||
.. versionadded:: 2.10
|
||||
:rtype: QSize
|
||||
%End
|
||||
|
||||
/**
|
||||
* Calculates the minimum icon size to prevent cropping. When evaluating
|
||||
* the size for multiple icons it is more efficient to create a single
|
||||
* render context in advance and call this method instead of minimumIconSize().
|
||||
* @note added in QGIS 2.18
|
||||
*/
|
||||
QSize minimumIconSize( QgsRenderContext* context ) const;
|
||||
QSize minimumIconSize( QgsRenderContext *context ) const;
|
||||
%Docstring
|
||||
Calculates the minimum icon size to prevent cropping. When evaluating
|
||||
the size for multiple icons it is more efficient to create a single
|
||||
render context in advance and call this method instead of minimumIconSize().
|
||||
.. versionadded:: 2.18
|
||||
:rtype: QSize
|
||||
%End
|
||||
|
||||
/** Returns the symbol used by the legend node.
|
||||
* @see setSymbol()
|
||||
* @note added in QGIS 2.14
|
||||
*/
|
||||
const QgsSymbol* symbol() const;
|
||||
const QgsSymbol *symbol() const;
|
||||
%Docstring
|
||||
Returns the symbol used by the legend node.
|
||||
\see setSymbol()
|
||||
.. versionadded:: 2.14
|
||||
:rtype: QgsSymbol
|
||||
%End
|
||||
|
||||
/** Sets the symbol to be used by the legend node. The symbol change is also propagated
|
||||
* to the associated vector layer's renderer.
|
||||
* @param symbol new symbol for node. Ownership is transferred.
|
||||
* @see symbol()
|
||||
* @note added in QGIS 2.14
|
||||
*/
|
||||
void setSymbol( QgsSymbol* symbol /Transfer/ );
|
||||
void setSymbol( QgsSymbol *symbol );
|
||||
%Docstring
|
||||
Sets the symbol to be used by the legend node. The symbol change is also propagated
|
||||
to the associated vector layer's renderer.
|
||||
\param symbol new symbol for node. Ownership is transferred.
|
||||
\see symbol()
|
||||
.. versionadded:: 2.14
|
||||
%End
|
||||
|
||||
public slots:
|
||||
|
||||
/** Checks all items belonging to the same layer as this node.
|
||||
* @note added in QGIS 2.14
|
||||
* @see uncheckAllItems()
|
||||
*/
|
||||
void checkAllItems();
|
||||
%Docstring
|
||||
Checks all items belonging to the same layer as this node.
|
||||
.. versionadded:: 2.14
|
||||
\see uncheckAllItems()
|
||||
%End
|
||||
|
||||
/** Unchecks all items belonging to the same layer as this node.
|
||||
* @note added in QGIS 2.14
|
||||
* @see checkAllItems()
|
||||
*/
|
||||
void uncheckAllItems();
|
||||
%Docstring
|
||||
Unchecks all items belonging to the same layer as this node.
|
||||
.. versionadded:: 2.14
|
||||
\see checkAllItems()
|
||||
%End
|
||||
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Implementation of legend node interface for displaying arbitrary label with icon.
|
||||
*
|
||||
* @note added in 2.6
|
||||
*/
|
||||
class QgsSimpleLegendNode : QgsLayerTreeModelLegendNode
|
||||
{
|
||||
%Docstring
|
||||
Implementation of legend node interface for displaying arbitrary label with icon.
|
||||
|
||||
.. versionadded:: 2.6
|
||||
%End
|
||||
|
||||
%TypeHeaderCode
|
||||
#include <qgslayertreemodellegendnode.h>
|
||||
#include "qgslayertreemodellegendnode.h"
|
||||
%End
|
||||
public:
|
||||
QgsSimpleLegendNode( QgsLayerTreeLayer* nodeLayer, const QString& label, const QIcon& icon = QIcon(), QObject* parent /TransferThis/ = 0, const QString& key = QString() );
|
||||
QgsSimpleLegendNode( QgsLayerTreeLayer *nodeLayer, const QString &label, const QIcon &icon = QIcon(), QObject *parent /TransferThis/ = 0, const QString &key = QString() );
|
||||
|
||||
virtual QVariant data( int role ) const;
|
||||
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Implementation of legend node interface for displaying arbitrary raster image
|
||||
*
|
||||
* @note added in 2.6
|
||||
*/
|
||||
class QgsImageLegendNode : QgsLayerTreeModelLegendNode
|
||||
{
|
||||
%Docstring
|
||||
Implementation of legend node interface for displaying arbitrary raster image
|
||||
|
||||
.. versionadded:: 2.6
|
||||
%End
|
||||
|
||||
%TypeHeaderCode
|
||||
#include <qgslayertreemodellegendnode.h>
|
||||
#include "qgslayertreemodellegendnode.h"
|
||||
%End
|
||||
public:
|
||||
QgsImageLegendNode( QgsLayerTreeLayer* nodeLayer, const QImage& img, QObject* parent /TransferThis/ = 0 );
|
||||
QgsImageLegendNode( QgsLayerTreeLayer *nodeLayer, const QImage &img, QObject *parent /TransferThis/ = 0 );
|
||||
|
||||
virtual QVariant data( int role ) const;
|
||||
|
||||
QSizeF drawSymbol( const QgsLegendSettings& settings, ItemContext* ctx, double itemHeight ) const;
|
||||
virtual QSizeF drawSymbol( const QgsLegendSettings &settings, ItemContext *ctx, double itemHeight ) const;
|
||||
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Implementation of legend node interface for displaying raster legend entries
|
||||
*
|
||||
* @note added in 2.6
|
||||
*/
|
||||
class QgsRasterSymbolLegendNode : QgsLayerTreeModelLegendNode
|
||||
{
|
||||
%Docstring
|
||||
Implementation of legend node interface for displaying raster legend entries
|
||||
|
||||
.. versionadded:: 2.6
|
||||
%End
|
||||
|
||||
%TypeHeaderCode
|
||||
#include <qgslayertreemodellegendnode.h>
|
||||
#include "qgslayertreemodellegendnode.h"
|
||||
%End
|
||||
public:
|
||||
QgsRasterSymbolLegendNode( QgsLayerTreeLayer* nodeLayer, const QColor& color, const QString& label, QObject* parent /TransferThis/ = 0 );
|
||||
QgsRasterSymbolLegendNode( QgsLayerTreeLayer *nodeLayer, const QColor &color, const QString &label, QObject *parent /TransferThis/ = 0 );
|
||||
|
||||
virtual QVariant data( int role ) const;
|
||||
|
||||
QSizeF drawSymbol( const QgsLegendSettings& settings, ItemContext* ctx, double itemHeight ) const;
|
||||
virtual QSizeF drawSymbol( const QgsLegendSettings &settings, ItemContext *ctx, double itemHeight ) const;
|
||||
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* Implementation of legend node interface for displaying WMS legend entries
|
||||
*
|
||||
* @note added in 2.8
|
||||
*/
|
||||
|
||||
class QgsWmsLegendNode : QgsLayerTreeModelLegendNode
|
||||
{
|
||||
%Docstring
|
||||
Implementation of legend node interface for displaying WMS legend entries
|
||||
|
||||
.. versionadded:: 2.8
|
||||
%End
|
||||
|
||||
%TypeHeaderCode
|
||||
#include <qgslayertreemodellegendnode.h>
|
||||
#include "qgslayertreemodellegendnode.h"
|
||||
%End
|
||||
public:
|
||||
|
||||
/** Constructor for QgsWmsLegendNode.
|
||||
* @param nodeLayer layer node
|
||||
* @param parent parent object
|
||||
*/
|
||||
QgsWmsLegendNode( QgsLayerTreeLayer* nodeLayer, QObject* parent /TransferThis/ = nullptr );
|
||||
QgsWmsLegendNode( QgsLayerTreeLayer *nodeLayer, QObject *parent /TransferThis/ = 0 );
|
||||
%Docstring
|
||||
Constructor for QgsWmsLegendNode.
|
||||
\param nodeLayer layer node
|
||||
\param parent parent object
|
||||
%End
|
||||
|
||||
virtual QVariant data( int role ) const;
|
||||
|
||||
virtual QSizeF drawSymbol( const QgsLegendSettings& settings, ItemContext* ctx, double itemHeight ) const;
|
||||
virtual QSizeF drawSymbol( const QgsLegendSettings &settings, ItemContext *ctx, double itemHeight ) const;
|
||||
|
||||
virtual void invalidateMapBasedData();
|
||||
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/core/layertree/qgslayertreemodellegendnode.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
||||
|
@ -1,194 +1,306 @@
|
||||
/**
|
||||
* This class is a base class for nodes in a layer tree.
|
||||
* Layer tree is a hierarchical structure consisting of group and layer nodes:
|
||||
* - group nodes are containers and may contain children (layer and group nodes)
|
||||
* - layer nodes point to map layers, they do not contain further children
|
||||
*
|
||||
* Layer trees may be used for organization of layers, typically a layer tree
|
||||
* is exposed to the user using QgsLayerTreeView widget which shows the tree
|
||||
* and allows manipulation with the tree.
|
||||
*
|
||||
* Ownership of nodes: every node is owned by its parent. Therefore once node
|
||||
* is added to a layer tree, it is the responsibility of the parent to delete it
|
||||
* when the node is not needed anymore. Deletion of root node of a tree will
|
||||
* delete all nodes of the tree.
|
||||
*
|
||||
* Signals: signals are propagated from children to parent. That means it is
|
||||
* sufficient to connect to root node in order to get signals about updates
|
||||
* in the whole layer tree. When adding or removing a node that contains further
|
||||
* children (i.e. a whole subtree), the addition/removal signals are emitted
|
||||
* only for the root node of the subtree that is being added or removed.
|
||||
*
|
||||
* Custom properties: Every node may have some custom properties assigned to it.
|
||||
* This mechanism allows third parties store additional data with the nodes.
|
||||
* The properties are used within QGIS code (whether to show layer in overview,
|
||||
* whether the node is embedded from another project etc), but may be also
|
||||
* used by third party plugins. Custom properties are stored also in the project
|
||||
* file. The storage is not efficient for large amount of data.
|
||||
*
|
||||
* Custom properties that have already been used within QGIS:
|
||||
* - "loading" - whether the project is being currently loaded (root node only)
|
||||
* - "overview" - whether to show a layer in overview
|
||||
* - "showFeatureCount" - whether to show feature counts in layer tree (vector only)
|
||||
* - "embedded" - whether the node comes from an external project
|
||||
* - "embedded_project" - path to the external project (embedded root node only)
|
||||
* - "legend/..." - properties for legend appearance customization
|
||||
* - "expandedLegendNodes" - list of layer's legend nodes' rules in expanded state
|
||||
*
|
||||
* @see also QgsLayerTree, QgsLayerTreeLayer, QgsLayerTreeGroup
|
||||
* @note added in 2.4
|
||||
*/
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/core/layertree/qgslayertreenode.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class QgsLayerTreeNode : QObject
|
||||
{
|
||||
%Docstring
|
||||
This class is a base class for nodes in a layer tree.
|
||||
Layer tree is a hierarchical structure consisting of group and layer nodes:
|
||||
- group nodes are containers and may contain children (layer and group nodes)
|
||||
- layer nodes point to map layers, they do not contain further children
|
||||
|
||||
Layer trees may be used for organization of layers, typically a layer tree
|
||||
is exposed to the user using QgsLayerTreeView widget which shows the tree
|
||||
and allows manipulation with the tree.
|
||||
|
||||
Ownership of nodes: every node is owned by its parent. Therefore once node
|
||||
is added to a layer tree, it is the responsibility of the parent to delete it
|
||||
when the node is not needed anymore. Deletion of root node of a tree will
|
||||
delete all nodes of the tree.
|
||||
|
||||
Signals: signals are propagated from children to parent. That means it is
|
||||
sufficient to connect to root node in order to get signals about updates
|
||||
in the whole layer tree. When adding or removing a node that contains further
|
||||
children (i.e. a whole subtree), the addition/removal signals are emitted
|
||||
only for the root node of the subtree that is being added or removed.
|
||||
|
||||
Custom properties: Every node may have some custom properties assigned to it.
|
||||
This mechanism allows third parties store additional data with the nodes.
|
||||
The properties are used within QGIS code (whether to show layer in overview,
|
||||
whether the node is embedded from another project etc), but may be also
|
||||
used by third party plugins. Custom properties are stored also in the project
|
||||
file. The storage is not efficient for large amount of data.
|
||||
|
||||
Custom properties that have already been used within QGIS:
|
||||
- "loading" - whether the project is being currently loaded (root node only)
|
||||
- "overview" - whether to show a layer in overview
|
||||
- "showFeatureCount" - whether to show feature counts in layer tree (vector only)
|
||||
- "embedded" - whether the node comes from an external project
|
||||
- "embedded_project" - path to the external project (embedded root node only)
|
||||
- "legend/..." - properties for legend appearance customization
|
||||
- "expandedLegendNodes" - list of layer's legend nodes' rules in expanded state
|
||||
|
||||
\see also QgsLayerTree, QgsLayerTreeLayer, QgsLayerTreeGroup
|
||||
.. versionadded:: 2.4
|
||||
%End
|
||||
|
||||
%TypeHeaderCode
|
||||
#include <qgslayertree.h>
|
||||
#include "qgslayertreenode.h"
|
||||
%End
|
||||
|
||||
%ConvertToSubClassCode
|
||||
if (sipCpp->inherits("QgsLayerTreeNode"))
|
||||
{
|
||||
sipType = sipType_QgsLayerTreeNode;
|
||||
QgsLayerTreeNode* node = qobject_cast<QgsLayerTreeNode*>(sipCpp);
|
||||
if (QgsLayerTree::isLayer(node))
|
||||
sipType = sipType_QgsLayerTreeLayer;
|
||||
else if (qobject_cast<QgsLayerTree*>(sipCpp))
|
||||
sipType = sipType_QgsLayerTree;
|
||||
else if (QgsLayerTree::isGroup(node))
|
||||
sipType = sipType_QgsLayerTreeGroup;
|
||||
}
|
||||
else
|
||||
sipType = 0;
|
||||
if ( sipCpp->inherits( "QgsLayerTreeNode" ) )
|
||||
{
|
||||
sipType = sipType_QgsLayerTreeNode;
|
||||
QgsLayerTreeNode *node = qobject_cast<QgsLayerTreeNode *>( sipCpp );
|
||||
if ( QgsLayerTree::isLayer( node ) )
|
||||
sipType = sipType_QgsLayerTreeLayer;
|
||||
else if ( qobject_cast<QgsLayerTree *>( sipCpp ) )
|
||||
sipType = sipType_QgsLayerTree;
|
||||
else if ( QgsLayerTree::isGroup( node ) )
|
||||
sipType = sipType_QgsLayerTreeGroup;
|
||||
}
|
||||
else
|
||||
sipType = 0;
|
||||
%End
|
||||
|
||||
public:
|
||||
|
||||
//! Enumeration of possible tree node types
|
||||
enum NodeType
|
||||
{
|
||||
NodeGroup, //!< container of other groups and layers
|
||||
NodeLayer //!< leaf node pointing to a layer
|
||||
NodeGroup,
|
||||
NodeLayer
|
||||
};
|
||||
|
||||
~QgsLayerTreeNode();
|
||||
|
||||
//! Find out about type of the node. It is usually shorter to use convenience functions from QgsLayerTree namespace for that
|
||||
NodeType nodeType() const;
|
||||
//! Get pointer to the parent. If parent is a null pointer, the node is a root node
|
||||
%Docstring
|
||||
Find out about type of the node. It is usually shorter to use convenience functions from QgsLayerTree namespace for that
|
||||
:rtype: NodeType
|
||||
%End
|
||||
QgsLayerTreeNode *parent();
|
||||
//! Get list of children of the node. Children are owned by the parent
|
||||
QList<QgsLayerTreeNode*> children();
|
||||
%Docstring
|
||||
Get pointer to the parent. If parent is a null pointer, the node is a root node
|
||||
:rtype: QgsLayerTreeNode
|
||||
%End
|
||||
QList<QgsLayerTreeNode *> children();
|
||||
%Docstring
|
||||
Get list of children of the node. Children are owned by the parent
|
||||
:rtype: list of QgsLayerTreeNode
|
||||
%End
|
||||
|
||||
//! Return name of the node
|
||||
//! @note added in 3.0
|
||||
virtual QString name() const = 0;
|
||||
//! Set name of the node. Emits nameChanged signal.
|
||||
//! @note added in 3.0
|
||||
virtual void setName( const QString& name ) = 0;
|
||||
%Docstring
|
||||
.. versionadded:: 3.0
|
||||
:rtype: str
|
||||
%End
|
||||
virtual void setName( const QString &name ) = 0;
|
||||
%Docstring
|
||||
.. versionadded:: 3.0
|
||||
%End
|
||||
|
||||
//! Read layer tree from XML. Returns new instance.
|
||||
//! Does not resolve textual references to layers. Call resolveReferences() afterwards to do it.
|
||||
static QgsLayerTreeNode *readXml( QDomElement &element ) /Factory/;
|
||||
//! Read layer tree from XML. Returns new instance.
|
||||
//! Also resolves textual references to layers from the project (calls resolveReferences() internally).
|
||||
//! @note added in 3.0
|
||||
static QgsLayerTreeNode* readXml( QDomElement& element, const QgsProject* project ) /Factory/;
|
||||
%Docstring
|
||||
Does not resolve textual references to layers. Call resolveReferences() afterwards to do it.
|
||||
:rtype: QgsLayerTreeNode
|
||||
%End
|
||||
static QgsLayerTreeNode *readXml( QDomElement &element, const QgsProject *project ) /Factory/;
|
||||
%Docstring
|
||||
.. versionadded:: 3.0
|
||||
:rtype: QgsLayerTreeNode
|
||||
%End
|
||||
|
||||
//! Write layer tree to XML
|
||||
virtual void writeXml( QDomElement &parentElement ) = 0;
|
||||
%Docstring
|
||||
Write layer tree to XML
|
||||
%End
|
||||
|
||||
//! Return string with layer tree structure. For debug purposes only
|
||||
virtual QString dump() const = 0;
|
||||
%Docstring
|
||||
Return string with layer tree structure. For debug purposes only
|
||||
:rtype: str
|
||||
%End
|
||||
|
||||
//! Create a copy of the node. Returns new instance
|
||||
virtual QgsLayerTreeNode *clone() const = 0 /Factory/;
|
||||
%Docstring
|
||||
Create a copy of the node. Returns new instance
|
||||
:rtype: QgsLayerTreeNode
|
||||
%End
|
||||
|
||||
/**
|
||||
* Turn textual references to layers into map layer object from project.
|
||||
* This method should be called after readXml()
|
||||
* If \a looseMatching is true then a looser match will be used, where a layer
|
||||
* will match if the name, public source, and data provider match. This can be
|
||||
* used to match legend customisation from different projects where layers
|
||||
* will have different layer IDs.
|
||||
* \since QGIS 3.0
|
||||
*/
|
||||
virtual void resolveReferences( const QgsProject *project, bool looseMatching = false ) = 0;
|
||||
%Docstring
|
||||
Turn textual references to layers into map layer object from project.
|
||||
This method should be called after readXml()
|
||||
If ``looseMatching`` is true then a looser match will be used, where a layer
|
||||
will match if the name, public source, and data provider match. This can be
|
||||
used to match legend customisation from different projects where layers
|
||||
will have different layer IDs.
|
||||
.. versionadded:: 3.0
|
||||
%End
|
||||
|
||||
//! Returns whether a node is really visible (ie checked and all its ancestors checked as well)
|
||||
//! @note added in 3.0
|
||||
bool isVisible() const;
|
||||
%Docstring
|
||||
.. versionadded:: 3.0
|
||||
:rtype: bool
|
||||
%End
|
||||
|
||||
//! Returns whether a node is checked (independently of its ancestors or children)
|
||||
//! @note added in 3.0
|
||||
bool itemVisibilityChecked() const;
|
||||
%Docstring
|
||||
.. versionadded:: 3.0
|
||||
:rtype: bool
|
||||
%End
|
||||
|
||||
//! Check or uncheck a node (independently of its ancestors or children)
|
||||
//! @note added in 3.0
|
||||
void setItemVisibilityChecked( bool checked );
|
||||
%Docstring
|
||||
.. versionadded:: 3.0
|
||||
%End
|
||||
|
||||
//! Check or uncheck a node and all its children (taking into account exclusion rules)
|
||||
//! @note added in 3.0
|
||||
virtual void setItemVisibilityCheckedRecursive( bool checked );
|
||||
%Docstring
|
||||
.. versionadded:: 3.0
|
||||
%End
|
||||
|
||||
//! Check or uncheck a node and all its parents
|
||||
//! @note added in 3.0
|
||||
void setItemVisibilityCheckedParentRecursive( bool checked );
|
||||
%Docstring
|
||||
.. versionadded:: 3.0
|
||||
%End
|
||||
|
||||
//! Return whether this node is checked and all its children.
|
||||
//! @note added in 3.0
|
||||
bool isItemVisibilityCheckedRecursive() const;
|
||||
%Docstring
|
||||
.. versionadded:: 3.0
|
||||
:rtype: bool
|
||||
%End
|
||||
|
||||
//! Return whether this node is unchecked and all its children.
|
||||
//! @note added in 3.0
|
||||
bool isItemVisibilityUncheckedRecursive() const;
|
||||
QList< QgsMapLayer * > checkedLayers() const;
|
||||
bool isExpanded() const;
|
||||
//! Set whether the node should be shown as expanded or collapsed in GUI
|
||||
void setExpanded( bool expanded );
|
||||
%Docstring
|
||||
.. versionadded:: 3.0
|
||||
:rtype: bool
|
||||
%End
|
||||
|
||||
QList< QgsMapLayer * > checkedLayers() const;
|
||||
%Docstring
|
||||
Returns a list of any checked layers which belong to this node or its
|
||||
children.
|
||||
.. versionadded:: 3.0
|
||||
:rtype: list of QgsMapLayer
|
||||
%End
|
||||
|
||||
bool isExpanded() const;
|
||||
%Docstring
|
||||
Return whether the node should be shown as expanded or collapsed in GUI
|
||||
:rtype: bool
|
||||
%End
|
||||
void setExpanded( bool expanded );
|
||||
%Docstring
|
||||
Set whether the node should be shown as expanded or collapsed in GUI
|
||||
%End
|
||||
|
||||
/** Set a custom property for the node. Properties are stored in a map and saved in project file. */
|
||||
void setCustomProperty( const QString &key, const QVariant &value );
|
||||
/** Read a custom property from layer. Properties are stored in a map and saved in project file. */
|
||||
%Docstring
|
||||
Set a custom property for the node. Properties are stored in a map and saved in project file.
|
||||
%End
|
||||
QVariant customProperty( const QString &key, const QVariant &defaultValue = QVariant() ) const;
|
||||
/** Remove a custom property from layer. Properties are stored in a map and saved in project file. */
|
||||
%Docstring
|
||||
Read a custom property from layer. Properties are stored in a map and saved in project file.
|
||||
:rtype: QVariant
|
||||
%End
|
||||
void removeCustomProperty( const QString &key );
|
||||
/** Return list of keys stored in custom properties */
|
||||
%Docstring
|
||||
Remove a custom property from layer. Properties are stored in a map and saved in project file.
|
||||
%End
|
||||
QStringList customProperties() const;
|
||||
/** Remove a child from a node */
|
||||
%Docstring
|
||||
Return list of keys stored in custom properties
|
||||
:rtype: list of str
|
||||
%End
|
||||
bool takeChild( QgsLayerTreeNode *node );
|
||||
%Docstring
|
||||
Remove a child from a node
|
||||
:rtype: bool
|
||||
%End
|
||||
|
||||
signals:
|
||||
|
||||
//! Emitted when one or more nodes will be added to a node within the tree
|
||||
void willAddChildren( QgsLayerTreeNode *node, int indexFrom, int indexTo );
|
||||
//! Emitted when one or more nodes have been added to a node within the tree
|
||||
%Docstring
|
||||
Emitted when one or more nodes will be added to a node within the tree
|
||||
%End
|
||||
void addedChildren( QgsLayerTreeNode *node, int indexFrom, int indexTo );
|
||||
//! Emitted when one or more nodes will be removed from a node within the tree
|
||||
%Docstring
|
||||
Emitted when one or more nodes have been added to a node within the tree
|
||||
%End
|
||||
void willRemoveChildren( QgsLayerTreeNode *node, int indexFrom, int indexTo );
|
||||
//! Emitted when one or more nodes has been removed from a node within the tree
|
||||
%Docstring
|
||||
Emitted when one or more nodes will be removed from a node within the tree
|
||||
%End
|
||||
void removedChildren( QgsLayerTreeNode *node, int indexFrom, int indexTo );
|
||||
//! Emitted when check state of a node within the tree has been changed
|
||||
%Docstring
|
||||
Emitted when one or more nodes has been removed from a node within the tree
|
||||
%End
|
||||
void visibilityChanged( QgsLayerTreeNode *node );
|
||||
//! Emitted when a custom property of a node within the tree has been changed or removed
|
||||
void customPropertyChanged( QgsLayerTreeNode *node, const QString& key );
|
||||
//! Emitted when the collapsed/expanded state of a node within the tree has been changed
|
||||
%Docstring
|
||||
Emitted when check state of a node within the tree has been changed
|
||||
%End
|
||||
void customPropertyChanged( QgsLayerTreeNode *node, const QString &key );
|
||||
%Docstring
|
||||
Emitted when a custom property of a node within the tree has been changed or removed
|
||||
%End
|
||||
void expandedChanged( QgsLayerTreeNode *node, bool expanded );
|
||||
//! Emitted when the name of the node is changed
|
||||
//! @note added in 3.0
|
||||
void nameChanged( QgsLayerTreeNode* node, QString name );
|
||||
%Docstring
|
||||
Emitted when the collapsed/expanded state of a node within the tree has been changed
|
||||
%End
|
||||
void nameChanged( QgsLayerTreeNode *node, QString name );
|
||||
%Docstring
|
||||
.. versionadded:: 3.0
|
||||
%End
|
||||
|
||||
protected:
|
||||
|
||||
QgsLayerTreeNode( NodeType t );
|
||||
QgsLayerTreeNode( NodeType t, bool checked = true );
|
||||
%Docstring
|
||||
Constructor
|
||||
%End
|
||||
QgsLayerTreeNode( const QgsLayerTreeNode &other );
|
||||
|
||||
|
||||
void readCommonXml( QDomElement &element );
|
||||
%Docstring
|
||||
Read common XML elements.
|
||||
%End
|
||||
void writeCommonXml( QDomElement &element );
|
||||
%Docstring
|
||||
Write common XML elements.
|
||||
%End
|
||||
|
||||
//! Low-level insertion of children to the node. The children must not have any parent yet!
|
||||
void insertChildrenPrivate( int index, QList<QgsLayerTreeNode*> nodes );
|
||||
//! Low-level removal of children from the node.
|
||||
void insertChildrenPrivate( int index, QList<QgsLayerTreeNode *> nodes );
|
||||
%Docstring
|
||||
Low-level insertion of children to the node. The children must not have any parent yet!
|
||||
%End
|
||||
void removeChildrenPrivate( int from, int count, bool destroy = true );
|
||||
%Docstring
|
||||
Low-level removal of children from the node.
|
||||
%End
|
||||
|
||||
private:
|
||||
QgsLayerTreeNode( const QgsLayerTreeNode& other );
|
||||
|
||||
protected:
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/core/layertree/qgslayertreenode.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
||||
|
@ -1,47 +1,80 @@
|
||||
/**
|
||||
* Listens to the updates in map layer registry and does changes in layer tree.
|
||||
*
|
||||
* When connected to a layer tree, any layers added to the map layer registry
|
||||
* will be also added to the layer tree. Similarly, map layers that are removed
|
||||
* from registry will be removed from the layer tree.
|
||||
*
|
||||
* If a layer is completely removed from the layer tree, it will be also removed
|
||||
* from the map layer registry.
|
||||
*
|
||||
* @note added in 2.4
|
||||
*/
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/core/layertree/qgslayertreeregistrybridge.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class QgsLayerTreeRegistryBridge : QObject
|
||||
{
|
||||
%TypeHeaderCode
|
||||
#include <qgslayertreeregistrybridge.h>
|
||||
%Docstring
|
||||
Listens to the updates in map layer registry and does changes in layer tree.
|
||||
|
||||
When connected to a layer tree, any layers added to the map layer registry
|
||||
will be also added to the layer tree. Similarly, map layers that are removed
|
||||
from registry will be removed from the layer tree.
|
||||
|
||||
If a layer is completely removed from the layer tree, it will be also removed
|
||||
from the map layer registry.
|
||||
|
||||
.. versionadded:: 2.4
|
||||
%End
|
||||
|
||||
%TypeHeaderCode
|
||||
#include "qgslayertreeregistrybridge.h"
|
||||
%End
|
||||
public:
|
||||
//! Create the instance that synchronizes given project with a layer tree root
|
||||
explicit QgsLayerTreeRegistryBridge( QgsLayerTreeGroup* root, QgsProject* project, QObject *parent /TransferThis/ = 0 );
|
||||
explicit QgsLayerTreeRegistryBridge( QgsLayerTreeGroup *root, QgsProject *project, QObject *parent /TransferThis/ = 0 );
|
||||
%Docstring
|
||||
Create the instance that synchronizes given project with a layer tree root
|
||||
%End
|
||||
|
||||
void setEnabled( bool enabled );
|
||||
bool isEnabled() const;
|
||||
%Docstring
|
||||
:rtype: bool
|
||||
%End
|
||||
|
||||
void setNewLayersVisible( bool enabled );
|
||||
bool newLayersVisible() const;
|
||||
%Docstring
|
||||
:rtype: bool
|
||||
%End
|
||||
|
||||
//! Set where the new layers should be inserted - can be used to follow current selection.
|
||||
//! By default it is root group with zero index.
|
||||
void setLayerInsertionPoint( QgsLayerTreeGroup* parentGroup, int index );
|
||||
void setLayerInsertionPoint( QgsLayerTreeGroup *parentGroup, int index );
|
||||
%Docstring
|
||||
By default it is root group with zero index.
|
||||
%End
|
||||
|
||||
signals:
|
||||
//! Tell others we have just added layers to the tree (used in QGIS to auto-select first newly added layer)
|
||||
//! @note added in 2.6
|
||||
void addedLayersToLayerTree( const QList<QgsMapLayer*>& layers );
|
||||
void addedLayersToLayerTree( const QList<QgsMapLayer *> &layers );
|
||||
%Docstring
|
||||
.. versionadded:: 2.6
|
||||
%End
|
||||
|
||||
protected slots:
|
||||
void layersAdded( const QList<QgsMapLayer*>& layers );
|
||||
void layersWillBeRemoved( const QStringList& layerIds );
|
||||
void layersAdded( const QList<QgsMapLayer *> &layers );
|
||||
void layersWillBeRemoved( const QStringList &layerIds );
|
||||
|
||||
void groupWillRemoveChildren( QgsLayerTreeNode* node, int indexFrom, int indexTo );
|
||||
void groupWillRemoveChildren( QgsLayerTreeNode *node, int indexFrom, int indexTo );
|
||||
void groupRemovedChildren();
|
||||
|
||||
void removeLayersFromRegistry( const QStringList& layerIds );
|
||||
void removeLayersFromRegistry( const QStringList &layerIds );
|
||||
|
||||
protected:
|
||||
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/core/layertree/qgslayertreeregistrybridge.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
||||
|
@ -1,54 +1,115 @@
|
||||
/**
|
||||
* Assorted functions for dealing with layer trees.
|
||||
*
|
||||
* @note added in 2.4
|
||||
*/
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/core/layertree/qgslayertreeutils.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class QgsLayerTreeUtils
|
||||
{
|
||||
%TypeHeaderCode
|
||||
#include <qgslayertreeutils.h>
|
||||
%Docstring
|
||||
Assorted functions for dealing with layer trees.
|
||||
|
||||
.. versionadded:: 2.4
|
||||
%End
|
||||
|
||||
%TypeHeaderCode
|
||||
#include "qgslayertreeutils.h"
|
||||
%End
|
||||
public:
|
||||
|
||||
//! Try to load layer tree from \verbatim <legend> \endverbatim tag from project files from QGIS 2.2 and below
|
||||
static bool readOldLegend( QgsLayerTreeGroup* root, const QDomElement& legendElem );
|
||||
//! Try to load custom layer order from \verbatim <legend> \endverbatim tag from project files from QGIS 2.2 and below
|
||||
static bool readOldLegendLayerOrder( const QDomElement& legendElem, bool& hasCustomOrder, QStringList& order );
|
||||
//! Return \verbatim <legend> \endverbatim tag used in QGIS 2.2 and below
|
||||
static QDomElement writeOldLegend( QDomDocument& doc, QgsLayerTreeGroup* root, bool hasCustomOrder, const QList<QgsMapLayer *> &order );
|
||||
static bool readOldLegend( QgsLayerTreeGroup *root, const QDomElement &legendElem );
|
||||
%Docstring
|
||||
Try to load layer tree from \verbatim <legend> \endverbatim tag from project files from QGIS 2.2 and below
|
||||
:rtype: bool
|
||||
%End
|
||||
static bool readOldLegendLayerOrder( const QDomElement &legendElem, bool &hasCustomOrder, QStringList &order );
|
||||
%Docstring
|
||||
Try to load custom layer order from \verbatim <legend> \endverbatim tag from project files from QGIS 2.2 and below
|
||||
:rtype: bool
|
||||
%End
|
||||
static QDomElement writeOldLegend( QDomDocument &doc, QgsLayerTreeGroup *root, bool hasCustomOrder, const QList<QgsMapLayer *> &order );
|
||||
%Docstring
|
||||
Return \verbatim <legend> \endverbatim tag used in QGIS 2.2 and below
|
||||
:rtype: QDomElement
|
||||
%End
|
||||
|
||||
//! Convert Qt::CheckState to QString
|
||||
static QString checkStateToXml( Qt::CheckState state );
|
||||
//! Convert QString to Qt::CheckState
|
||||
static Qt::CheckState checkStateFromXml( const QString& txt );
|
||||
%Docstring
|
||||
Convert Qt.CheckState to QString
|
||||
:rtype: str
|
||||
%End
|
||||
static Qt::CheckState checkStateFromXml( const QString &txt );
|
||||
%Docstring
|
||||
Convert QString to Qt.CheckState
|
||||
:rtype: Qt.CheckState
|
||||
%End
|
||||
|
||||
//! Return true if any of the layers is editable
|
||||
static bool layersEditable( const QList<QgsLayerTreeLayer*>& layerNodes );
|
||||
//! Return true if any of the layers is modified
|
||||
static bool layersModified( const QList<QgsLayerTreeLayer*>& layerNodes );
|
||||
static bool layersEditable( const QList<QgsLayerTreeLayer *> &layerNodes );
|
||||
%Docstring
|
||||
Return true if any of the layers is editable
|
||||
:rtype: bool
|
||||
%End
|
||||
static bool layersModified( const QList<QgsLayerTreeLayer *> &layerNodes );
|
||||
%Docstring
|
||||
Return true if any of the layers is modified
|
||||
:rtype: bool
|
||||
%End
|
||||
|
||||
//! Remove layer nodes that refer to invalid layers
|
||||
static void removeInvalidLayers( QgsLayerTreeGroup* group );
|
||||
static void removeInvalidLayers( QgsLayerTreeGroup *group );
|
||||
%Docstring
|
||||
Remove layer nodes that refer to invalid layers
|
||||
%End
|
||||
|
||||
//! Remove subtree of embedded groups and replaces it with a custom property embedded-visible-layers
|
||||
static void replaceChildrenOfEmbeddedGroups( QgsLayerTreeGroup* group );
|
||||
static void replaceChildrenOfEmbeddedGroups( QgsLayerTreeGroup *group );
|
||||
%Docstring
|
||||
Remove subtree of embedded groups and replaces it with a custom property embedded-visible-layers
|
||||
%End
|
||||
|
||||
static void updateEmbeddedGroupsProjectPath( QgsLayerTreeGroup *group, const QgsProject *project );
|
||||
%Docstring
|
||||
.. note::
|
||||
|
||||
not available in Python bindings
|
||||
%End
|
||||
|
||||
//! get invisible layers
|
||||
static QStringList invisibleLayerList( QgsLayerTreeNode *node );
|
||||
%Docstring
|
||||
get invisible layers
|
||||
:rtype: list of str
|
||||
%End
|
||||
|
||||
//! Set the expression filter of a legend layer
|
||||
static void setLegendFilterByExpression( QgsLayerTreeLayer& layer, const QString& expr, bool enabled = true );
|
||||
//! Return the expression filter of a legend layer
|
||||
static QString legendFilterByExpression( const QgsLayerTreeLayer& layer, bool* enabled = 0 );
|
||||
//! Test if one of the layers in a group has an expression filter
|
||||
static bool hasLegendFilterExpression( const QgsLayerTreeGroup& group );
|
||||
static void setLegendFilterByExpression( QgsLayerTreeLayer &layer, const QString &expr, bool enabled = true );
|
||||
%Docstring
|
||||
Set the expression filter of a legend layer
|
||||
%End
|
||||
static QString legendFilterByExpression( const QgsLayerTreeLayer &layer, bool *enabled = 0 );
|
||||
%Docstring
|
||||
Return the expression filter of a legend layer
|
||||
:rtype: str
|
||||
%End
|
||||
static bool hasLegendFilterExpression( const QgsLayerTreeGroup &group );
|
||||
%Docstring
|
||||
Test if one of the layers in a group has an expression filter
|
||||
:rtype: bool
|
||||
%End
|
||||
|
||||
//! Insert a QgsMapLayer just below another one
|
||||
//! @param group the tree group where layers are (can be the root group)
|
||||
//! @param refLayer the reference layer
|
||||
//! @param layerToInsert the new layer to insert just below the reference layer
|
||||
//! @returns the new tree layer
|
||||
static QgsLayerTreeLayer* insertLayerBelow( QgsLayerTreeGroup* group, const QgsMapLayer* refLayer, QgsMapLayer* layerToInsert );
|
||||
static QgsLayerTreeLayer *insertLayerBelow( QgsLayerTreeGroup *group, const QgsMapLayer *refLayer, QgsMapLayer *layerToInsert );
|
||||
%Docstring
|
||||
:return: the new tree layer
|
||||
:rtype: QgsLayerTreeLayer
|
||||
%End
|
||||
};
|
||||
|
||||
/************************************************************************
|
||||
* This file has been generated automatically from *
|
||||
* *
|
||||
* src/core/layertree/qgslayertreeutils.h *
|
||||
* *
|
||||
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
||||
************************************************************************/
|
||||
|
@ -25,6 +25,8 @@ fi
|
||||
|
||||
pushd ${DIR} > /dev/null
|
||||
|
||||
count=0
|
||||
|
||||
while read -r sipfile; do
|
||||
if ! grep -Fxq "$sipfile" python/auto_sip.blacklist; then
|
||||
echo "$sipfile"
|
||||
@ -34,6 +36,7 @@ while read -r sipfile; do
|
||||
else
|
||||
./scripts/sipify.pl $header > python/$sipfile
|
||||
fi
|
||||
count=$((count+1))
|
||||
fi
|
||||
done < <(
|
||||
${GP}sed -n -r 's/^%Include (.*\.sip)/core\/\1/p' python/core/core.sip
|
||||
@ -41,4 +44,6 @@ ${GP}sed -n -r 's/^%Include (.*\.sip)/gui\/\1/p' python/gui/gui.sip
|
||||
${GP}sed -n -r 's/^%Include (.*\.sip)/analysis\/\1/p' python/analysis/analysis.sip
|
||||
)
|
||||
|
||||
echo " => $count files sipified!"
|
||||
|
||||
popd > /dev/null
|
||||
|
@ -60,7 +60,7 @@ class CORE_EXPORT QgsLayerTree : public QgsLayerTreeGroup
|
||||
* \since QGIS 2.4
|
||||
* \note Not available in Python bindings, because cast is automatic.
|
||||
*/
|
||||
static inline QgsLayerTreeGroup *toGroup( QgsLayerTreeNode *node )
|
||||
static inline QgsLayerTreeGroup *toGroup( QgsLayerTreeNode *node ) SIP_SKIP
|
||||
{
|
||||
return static_cast<QgsLayerTreeGroup *>( node );
|
||||
}
|
||||
@ -71,7 +71,7 @@ class CORE_EXPORT QgsLayerTree : public QgsLayerTreeGroup
|
||||
* \since QGIS 2.4
|
||||
* \note Not available in Python bindings, because cast is automatic.
|
||||
*/
|
||||
static inline QgsLayerTreeLayer *toLayer( QgsLayerTreeNode *node )
|
||||
static inline QgsLayerTreeLayer *toLayer( QgsLayerTreeNode *node ) SIP_SKIP
|
||||
{
|
||||
return static_cast<QgsLayerTreeLayer *>( node );
|
||||
}
|
||||
@ -82,7 +82,7 @@ class CORE_EXPORT QgsLayerTree : public QgsLayerTreeGroup
|
||||
* \since QGIS 2.4
|
||||
* \note Not available in Python bindings, because cast is automatic.
|
||||
*/
|
||||
static inline const QgsLayerTreeLayer *toLayer( const QgsLayerTreeNode *node )
|
||||
static inline const QgsLayerTreeLayer *toLayer( const QgsLayerTreeNode *node ) SIP_SKIP
|
||||
{
|
||||
return static_cast< const QgsLayerTreeLayer *>( node );
|
||||
}
|
||||
@ -92,11 +92,6 @@ class CORE_EXPORT QgsLayerTree : public QgsLayerTreeGroup
|
||||
*/
|
||||
QgsLayerTree();
|
||||
|
||||
/**
|
||||
* Copy constructor
|
||||
*/
|
||||
QgsLayerTree( const QgsLayerTree &other );
|
||||
|
||||
/**
|
||||
* The order in which layers will be rendered on the canvas.
|
||||
* Will only be used if the property hasCustomLayerOrder is true.
|
||||
@ -134,7 +129,7 @@ class CORE_EXPORT QgsLayerTree : public QgsLayerTreeGroup
|
||||
*
|
||||
* \since QGIS 3.0
|
||||
*/
|
||||
void setCustomLayerOrder( const QStringList &customLayerOrder );
|
||||
void setCustomLayerOrder( const QStringList &customLayerOrder ) SIP_PYNAME( setCustomLayerOrderByIds );
|
||||
|
||||
/**
|
||||
* The order in which layers will be rendered on the canvas.
|
||||
@ -227,6 +222,8 @@ class CORE_EXPORT QgsLayerTree : public QgsLayerTreeGroup
|
||||
void nodeRemovedChildren();
|
||||
|
||||
private:
|
||||
//! Copy constructor \see clone()
|
||||
QgsLayerTree( const QgsLayerTree &other );
|
||||
void addMissingLayers();
|
||||
QgsWeakMapLayerPointerList mCustomLayerOrder;
|
||||
bool mHasCustomLayerOrder = false;
|
||||
|
@ -53,11 +53,21 @@ class QgsLayerTree;
|
||||
*/
|
||||
class CORE_EXPORT QgsLayerTreeModel : public QAbstractItemModel
|
||||
{
|
||||
|
||||
#ifdef SIP_RUN
|
||||
SIP_CONVERT_TO_SUBCLASS_CODE
|
||||
if ( sipCpp->inherits( "QgsLayerTreeModel" ) )
|
||||
sipType = sipType_QgsLayerTreeModel;
|
||||
else
|
||||
sipType = 0;
|
||||
SIP_END
|
||||
#endif
|
||||
|
||||
Q_OBJECT
|
||||
public:
|
||||
//! 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.
|
||||
explicit QgsLayerTreeModel( QgsLayerTree *rootNode, QObject *parent = nullptr );
|
||||
explicit QgsLayerTreeModel( QgsLayerTree *rootNode, QObject *parent SIP_TRANSFERTHIS = nullptr );
|
||||
|
||||
~QgsLayerTreeModel();
|
||||
|
||||
@ -204,7 +214,7 @@ class CORE_EXPORT QgsLayerTreeModel : public QAbstractItemModel
|
||||
//! 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.
|
||||
//! \since QGIS 2.6
|
||||
void legendMapViewData( double *mapUnitsPerPixel, int *dpi, double *scale ) const;
|
||||
void legendMapViewData( double *mapUnitsPerPixel SIP_OUT, int *dpi SIP_OUT, double *scale SIP_OUT ) 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
|
||||
//! \since QGIS 2.10
|
||||
@ -292,6 +302,7 @@ class CORE_EXPORT QgsLayerTreeModel : public QAbstractItemModel
|
||||
//! 2. some legend nodes have non-null parent rule key (accessible via data(ParentRuleKeyRole) method)
|
||||
//! The tree structure (parents and children of each node) is extracted by analyzing nodes' parent rules.
|
||||
//! \note not available in Python bindings
|
||||
#ifndef SIP_RUN
|
||||
struct LayerLegendTree
|
||||
{
|
||||
//! Pointer to parent for each active node. Top-level nodes have null parent. Pointers are not owned.
|
||||
@ -299,9 +310,11 @@ class CORE_EXPORT QgsLayerTreeModel : public QAbstractItemModel
|
||||
//! List of children for each active node. Top-level nodes are under null pointer key. Pointers are not owned.
|
||||
QMap<QgsLayerTreeModelLegendNode *, QList<QgsLayerTreeModelLegendNode *> > children;
|
||||
};
|
||||
#endif
|
||||
|
||||
//! Structure that stores all data associated with one map layer
|
||||
//! \note not available in Python bindings
|
||||
#ifndef SIP_RUN
|
||||
struct LayerLegendData
|
||||
{
|
||||
LayerLegendData()
|
||||
@ -323,9 +336,10 @@ class CORE_EXPORT QgsLayerTreeModel : public QAbstractItemModel
|
||||
//! Optional pointer to a tree structure - see LayerLegendTree for details
|
||||
LayerLegendTree *tree = nullptr;
|
||||
};
|
||||
#endif
|
||||
|
||||
//! \note not available in Python bindings
|
||||
LayerLegendTree *tryBuildLegendTree( const QList<QgsLayerTreeModelLegendNode *> &nodes );
|
||||
LayerLegendTree *tryBuildLegendTree( const QList<QgsLayerTreeModelLegendNode *> &nodes ) SIP_SKIP;
|
||||
|
||||
//! 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
|
||||
|
@ -19,10 +19,13 @@
|
||||
#ifndef QGSLAYERTREEMODELLEGENDNODE_H
|
||||
#define QGSLAYERTREEMODELLEGENDNODE_H
|
||||
|
||||
#include "qgis_core.h"
|
||||
#include <QIcon>
|
||||
#include <QObject>
|
||||
|
||||
|
||||
#include "qgis_core.h"
|
||||
#include "qgis.h"
|
||||
|
||||
#include "qgsrasterdataprovider.h" // for QgsImageFetcher dtor visibility
|
||||
|
||||
class QgsLayerTreeLayer;
|
||||
@ -126,7 +129,7 @@ class CORE_EXPORT QgsLayerTreeModelLegendNode : public QObject
|
||||
|
||||
protected:
|
||||
//! Construct the node with pointer to its parent layer node
|
||||
explicit QgsLayerTreeModelLegendNode( QgsLayerTreeLayer *nodeL, QObject *parent = nullptr );
|
||||
explicit QgsLayerTreeModelLegendNode( QgsLayerTreeLayer *nodeL, QObject *parent SIP_TRANSFERTHIS = nullptr );
|
||||
|
||||
protected:
|
||||
QgsLayerTreeLayer *mLayerNode = nullptr;
|
||||
@ -147,7 +150,7 @@ class CORE_EXPORT QgsSymbolLegendNode : public QgsLayerTreeModelLegendNode
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QgsSymbolLegendNode( QgsLayerTreeLayer *nodeLayer, const QgsLegendSymbolItem &item, QObject *parent = nullptr );
|
||||
QgsSymbolLegendNode( QgsLayerTreeLayer *nodeLayer, const QgsLegendSymbolItem &item, QObject *parent SIP_TRANSFERTHIS = nullptr );
|
||||
|
||||
virtual Qt::ItemFlags flags() const override;
|
||||
virtual QVariant data( int role ) const override;
|
||||
@ -247,7 +250,7 @@ class CORE_EXPORT QgsSimpleLegendNode : public QgsLayerTreeModelLegendNode
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QgsSimpleLegendNode( QgsLayerTreeLayer *nodeLayer, const QString &label, const QIcon &icon = QIcon(), QObject *parent = nullptr, const QString &key = QString() );
|
||||
QgsSimpleLegendNode( QgsLayerTreeLayer *nodeLayer, const QString &label, const QIcon &icon = QIcon(), QObject *parent SIP_TRANSFERTHIS = nullptr, const QString &key = QString() );
|
||||
|
||||
virtual QVariant data( int role ) const override;
|
||||
|
||||
@ -269,7 +272,7 @@ class CORE_EXPORT QgsImageLegendNode : public QgsLayerTreeModelLegendNode
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QgsImageLegendNode( QgsLayerTreeLayer *nodeLayer, const QImage &img, QObject *parent = nullptr );
|
||||
QgsImageLegendNode( QgsLayerTreeLayer *nodeLayer, const QImage &img, QObject *parent SIP_TRANSFERTHIS = nullptr );
|
||||
|
||||
virtual QVariant data( int role ) const override;
|
||||
|
||||
@ -289,7 +292,7 @@ class CORE_EXPORT QgsRasterSymbolLegendNode : public QgsLayerTreeModelLegendNode
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QgsRasterSymbolLegendNode( QgsLayerTreeLayer *nodeLayer, const QColor &color, const QString &label, QObject *parent = nullptr );
|
||||
QgsRasterSymbolLegendNode( QgsLayerTreeLayer *nodeLayer, const QColor &color, const QString &label, QObject *parent SIP_TRANSFERTHIS = nullptr );
|
||||
|
||||
virtual QVariant data( int role ) const override;
|
||||
|
||||
@ -317,7 +320,7 @@ class CORE_EXPORT QgsWmsLegendNode : public QgsLayerTreeModelLegendNode
|
||||
* \param nodeLayer layer node
|
||||
* \param parent parent object
|
||||
*/
|
||||
QgsWmsLegendNode( QgsLayerTreeLayer *nodeLayer, QObject *parent = nullptr );
|
||||
QgsWmsLegendNode( QgsLayerTreeLayer *nodeLayer, QObject *parent SIP_TRANSFERTHIS = nullptr );
|
||||
|
||||
virtual QVariant data( int role ) const override;
|
||||
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include <QObject>
|
||||
|
||||
#include "qgsobjectcustomproperties.h"
|
||||
#include "qgis.h"
|
||||
|
||||
class QDomElement;
|
||||
|
||||
@ -69,6 +70,25 @@ class QgsMapLayer;
|
||||
class CORE_EXPORT QgsLayerTreeNode : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
#ifdef SIP_RUN
|
||||
SIP_CONVERT_TO_SUBCLASS_CODE
|
||||
if ( sipCpp->inherits( "QgsLayerTreeNode" ) )
|
||||
{
|
||||
sipType = sipType_QgsLayerTreeNode;
|
||||
QgsLayerTreeNode *node = qobject_cast<QgsLayerTreeNode *>( sipCpp );
|
||||
if ( QgsLayerTree::isLayer( node ) )
|
||||
sipType = sipType_QgsLayerTreeLayer;
|
||||
else if ( qobject_cast<QgsLayerTree *>( sipCpp ) )
|
||||
sipType = sipType_QgsLayerTree;
|
||||
else if ( QgsLayerTree::isGroup( node ) )
|
||||
sipType = sipType_QgsLayerTreeGroup;
|
||||
}
|
||||
else
|
||||
sipType = 0;
|
||||
SIP_END
|
||||
#endif
|
||||
|
||||
public:
|
||||
|
||||
//! Enumeration of possible tree node types
|
||||
@ -87,7 +107,7 @@ class CORE_EXPORT QgsLayerTreeNode : public QObject
|
||||
//! Get list of children of the node. Children are owned by the parent
|
||||
QList<QgsLayerTreeNode *> children() { return mChildren; }
|
||||
//! Get list of children of the node. Children are owned by the parent
|
||||
QList<QgsLayerTreeNode *> children() const { return mChildren; }
|
||||
QList<QgsLayerTreeNode *> children() const { return mChildren; } SIP_SKIP
|
||||
|
||||
//! Return name of the node
|
||||
//! \since QGIS 3.0
|
||||
@ -98,11 +118,11 @@ class CORE_EXPORT QgsLayerTreeNode : public QObject
|
||||
|
||||
//! Read layer tree from XML. Returns new instance.
|
||||
//! Does not resolve textual references to layers. Call resolveReferences() afterwards to do it.
|
||||
static QgsLayerTreeNode *readXml( QDomElement &element );
|
||||
static QgsLayerTreeNode *readXml( QDomElement &element ) SIP_FACTORY;
|
||||
//! Read layer tree from XML. Returns new instance.
|
||||
//! Also resolves textual references to layers from the project (calls resolveReferences() internally).
|
||||
//! \since QGIS 3.0
|
||||
static QgsLayerTreeNode *readXml( QDomElement &element, const QgsProject *project );
|
||||
static QgsLayerTreeNode *readXml( QDomElement &element, const QgsProject *project ) SIP_FACTORY;
|
||||
|
||||
//! Write layer tree to XML
|
||||
virtual void writeXml( QDomElement &parentElement ) = 0;
|
||||
@ -111,7 +131,7 @@ class CORE_EXPORT QgsLayerTreeNode : public QObject
|
||||
virtual QString dump() const = 0;
|
||||
|
||||
//! Create a copy of the node. Returns new instance
|
||||
virtual QgsLayerTreeNode *clone() const = 0;
|
||||
virtual QgsLayerTreeNode *clone() const = 0 SIP_FACTORY;
|
||||
|
||||
/**
|
||||
* Turn textual references to layers into map layer object from project.
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include <QStringList>
|
||||
|
||||
#include "qgis_core.h"
|
||||
#include "qgis.h"
|
||||
|
||||
class QgsLayerTreeGroup;
|
||||
class QgsLayerTreeNode;
|
||||
@ -44,7 +45,7 @@ class CORE_EXPORT QgsLayerTreeRegistryBridge : public QObject
|
||||
Q_OBJECT
|
||||
public:
|
||||
//! Create the instance that synchronizes given project with a layer tree root
|
||||
explicit QgsLayerTreeRegistryBridge( QgsLayerTreeGroup *root, QgsProject *project, QObject *parent = nullptr );
|
||||
explicit QgsLayerTreeRegistryBridge( QgsLayerTreeGroup *root, QgsProject *project, QObject *parent SIP_TRANSFERTHIS = nullptr );
|
||||
|
||||
void setEnabled( bool enabled ) { mEnabled = enabled; }
|
||||
bool isEnabled() const { return mEnabled; }
|
||||
|
Loading…
x
Reference in New Issue
Block a user