mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-04 00:30:59 -05:00
The issue was that during drag&drop, we first connect to layer's signal for the second time, but then the disconnect() call on removal of the original layer node would disconnect all connections (not just one). For that reason now we only connect/disconnect when the layer is in the tree only once.
132 lines
4.7 KiB
Plaintext
132 lines
4.7 KiB
Plaintext
/************************************************************************
|
|
* 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
|
|
{
|
|
%Docstring
|
|
Assorted functions for dealing with layer trees.
|
|
|
|
.. versionadded:: 2.4
|
|
%End
|
|
|
|
%TypeHeaderCode
|
|
#include "qgslayertreeutils.h"
|
|
%End
|
|
public:
|
|
|
|
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
|
|
%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
|
|
%End
|
|
static QDomElement writeOldLegend( QDomDocument &doc, QgsLayerTreeGroup *root, bool hasCustomOrder, const QList<QgsMapLayer *> &order );
|
|
%Docstring
|
|
Returns \verbatim <legend> \endverbatim tag used in QGIS 2.2 and below
|
|
%End
|
|
|
|
static QString checkStateToXml( Qt::CheckState state );
|
|
%Docstring
|
|
Convert Qt.CheckState to QString
|
|
%End
|
|
static Qt::CheckState checkStateFromXml( const QString &txt );
|
|
%Docstring
|
|
Convert QString to Qt.CheckState
|
|
%End
|
|
|
|
static bool layersEditable( const QList<QgsLayerTreeLayer *> &layerNodes );
|
|
%Docstring
|
|
Returns true if any of the layers is editable
|
|
%End
|
|
static bool layersModified( const QList<QgsLayerTreeLayer *> &layerNodes );
|
|
%Docstring
|
|
Returns true if any of the layers is modified
|
|
%End
|
|
|
|
static void removeInvalidLayers( QgsLayerTreeGroup *group );
|
|
%Docstring
|
|
Remove layer nodes that refer to invalid layers
|
|
%End
|
|
|
|
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
|
|
Updates an embedded ``group`` from a ``project``.
|
|
%End
|
|
|
|
static QStringList invisibleLayerList( QgsLayerTreeNode *node );
|
|
%Docstring
|
|
Gets invisible layers
|
|
%End
|
|
|
|
static void setLegendFilterByExpression( QgsLayerTreeLayer &layer, const QString &expr, bool enabled = true );
|
|
%Docstring
|
|
Sets the expression filter of a legend layer
|
|
%End
|
|
static QString legendFilterByExpression( const QgsLayerTreeLayer &layer, bool *enabled = 0 );
|
|
%Docstring
|
|
Returns the expression filter of a legend layer
|
|
%End
|
|
static bool hasLegendFilterExpression( const QgsLayerTreeGroup &group );
|
|
%Docstring
|
|
Test if one of the layers in a group has an expression filter
|
|
%End
|
|
|
|
static QgsLayerTreeLayer *insertLayerBelow( QgsLayerTreeGroup *group, const QgsMapLayer *refLayer, QgsMapLayer *layerToInsert );
|
|
%Docstring
|
|
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
|
|
|
|
:return: the new tree layer
|
|
%End
|
|
|
|
static QSet<QgsMapLayer *> collectMapLayersRecursive( const QList<QgsLayerTreeNode *> &nodes );
|
|
%Docstring
|
|
Returns map layers from the given list of layer tree nodes. Also recursively visits
|
|
child nodes of groups.
|
|
|
|
.. versionadded:: 3.4
|
|
%End
|
|
|
|
static int countMapLayerInTree( QgsLayerTreeNode *tree, QgsMapLayer *layer );
|
|
%Docstring
|
|
Returns how many occurences of a map layer are there in a layer tree.
|
|
In normal situations there is at most one occurence, but sometimes there
|
|
may be temporarily more: for example, during drag&drop, upon drop a new layer
|
|
node is created while the original dragged node is still in the tree, resulting
|
|
in two occurences.
|
|
|
|
This is useful when deciding whether to start or stop listening to a signal
|
|
of a map layer within a layer tree and only connecting/disconnecting when
|
|
there is only one occurence of that layer.
|
|
|
|
.. versionadded:: 3.4
|
|
%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 *
|
|
************************************************************************/
|