sipify QgsLayerTreeLayer

This commit is contained in:
Nyall Dawson 2017-04-12 18:18:43 +10:00
parent 468c784f7e
commit 023ad46525
3 changed files with 154 additions and 67 deletions

View File

@ -218,7 +218,6 @@ core/fieldformatter/qgsrelationreferencefieldformatter.sip
core/fieldformatter/qgsvaluemapfieldformatter.sip core/fieldformatter/qgsvaluemapfieldformatter.sip
core/fieldformatter/qgsvaluerelationfieldformatter.sip core/fieldformatter/qgsvaluerelationfieldformatter.sip
core/layertree/qgslayertree.sip core/layertree/qgslayertree.sip
core/layertree/qgslayertreelayer.sip
core/layertree/qgslayertreemodel.sip core/layertree/qgslayertreemodel.sip
core/layertree/qgslayertreemodellegendnode.sip core/layertree/qgslayertreemodellegendnode.sip
core/layertree/qgslayertreenode.sip core/layertree/qgslayertreenode.sip

View File

@ -1,69 +1,123 @@
/** /************************************************************************
* Layer tree node points to a map layer. * This file has been generated automatically from *
* * *
* The node can exist also without a valid instance of a layer (just ID). That * src/core/layertree/qgslayertreelayer.h *
* means the referenced layer does not need to be loaded in order to use it * *
* in layer tree. In such case, resolveReferences() method can be called * Do not edit manually ! Edit header and run scripts/sipify.pl again *
* once the layer is loaded. ************************************************************************/
*
* A map layer is supposed to be present in one layer tree just once. It is
* however possible that temporarily a layer exists in one tree more than just
* once, e.g. while reordering items with drag and drop.
*
* @note added in 2.4
*/
class QgsLayerTreeLayer : QgsLayerTreeNode class QgsLayerTreeLayer : QgsLayerTreeNode
{ {
%TypeHeaderCode %Docstring
#include <qgslayertreelayer.h> Layer tree node points to a map layer.
The node can exist also without a valid instance of a layer (just ID). That
means the referenced layer does not need to be loaded in order to use it
in layer tree. In such case, resolveReferences() method can be called
once the layer is loaded.
A map layer is supposed to be present in one layer tree just once. It is
however possible that temporarily a layer exists in one tree more than just
once, e.g. while reordering items with drag and drop.
.. versionadded:: 2.4
%End %End
%TypeHeaderCode
#include "qgslayertreelayer.h"
%End
public: public:
explicit QgsLayerTreeLayer( QgsMapLayer* layer ); explicit QgsLayerTreeLayer( QgsMapLayer *layer );
explicit QgsLayerTreeLayer( const QString& layerId, const QString& name = QString() );
explicit QgsLayerTreeLayer( const QString &layerId, const QString &name = QString(), const QString &source = QString(), const QString &provider = QString() );
QString layerId() const; QString layerId() const;
%Docstring
:rtype: str
%End
QgsMapLayer* layer() const; QgsMapLayer *layer() const;
%Docstring
:rtype: QgsMapLayer
%End
//! Get layer's name
//! @note added in 3.0
QString name() const; QString name() const;
//! Set layer's name %Docstring
//! @note added in 3.0 Returns the layer's name.
void setName( const QString& n ); .. versionadded:: 3.0
:rtype: str
%End
//! Read layer node from XML. Returns new instance. void setName( const QString &n );
//! Does not resolve textual references to layers. Call resolveReferences() afterwards to do it. %Docstring
static QgsLayerTreeLayer* readXml( QDomElement& element ) /Factory/; Sets the layer's name.
//! Read layer node from XML. Returns new instance. .. versionadded:: 3.0
//! Also resolves textual references to layers from the project (calls resolveReferences() internally). %End
//! @note added in 3.0
static QgsLayerTreeLayer* readXml( QDomElement& element, const QgsProject* project ) /Factory/;
virtual void writeXml( QDomElement& parentElement ); static QgsLayerTreeLayer *readXml( QDomElement &element ) /Factory/;
%Docstring
Read layer node from XML. Returns new instance.
Does not resolve textual references to layers. Call resolveReferences() afterwards to do it.
:rtype: QgsLayerTreeLayer
%End
static QgsLayerTreeLayer *readXml( QDomElement &element, const QgsProject *project ) /Factory/;
%Docstring
Read layer node from XML. Returns new instance.
Also resolves textual references to layers from the project (calls resolveReferences() internally).
.. versionadded:: 3.0
:rtype: QgsLayerTreeLayer
%End
virtual void writeXml( QDomElement &parentElement );
virtual QString dump() const; virtual QString dump() const;
%Docstring
:rtype: str
%End
virtual QgsLayerTreeLayer* clone() const /Factory/; virtual QgsLayerTreeLayer *clone() const /Factory/;
%Docstring
:rtype: QgsLayerTreeLayer
%End
//! Resolves reference to layer from stored layer ID (if it has not been resolved already)
//! \since QGIS 3.0
virtual void resolveReferences( const QgsProject *project, bool looseMatching = false ); virtual void resolveReferences( const QgsProject *project, bool looseMatching = false );
%Docstring
Resolves reference to layer from stored layer ID (if it has not been resolved already)
.. versionadded:: 3.0
%End
signals: signals:
//! emitted when a previously unavailable layer got loaded
void layerLoaded(); void layerLoaded();
//! emitted when a previously available layer got unloaded (from layer registry) %Docstring
//! @note added in 2.6 Emitted when a previously unavailable layer got loaded.
%End
void layerWillBeUnloaded(); void layerWillBeUnloaded();
%Docstring
Emitted when a previously available layer got unloaded (from layer registry).
.. versionadded:: 2.6
%End
protected: protected:
void attachToLayer(); void attachToLayer();
private:
QgsLayerTreeLayer( const QgsLayerTreeLayer& other );
private:
QgsLayerTreeLayer( const QgsLayerTreeLayer &other );
}; };
/************************************************************************
* This file has been generated automatically from *
* *
* src/core/layertree/qgslayertreelayer.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/

View File

@ -17,6 +17,7 @@
#define QGSLAYERTREELAYER_H #define QGSLAYERTREELAYER_H
#include "qgis_core.h" #include "qgis_core.h"
#include "qgis.h"
#include "qgslayertreenode.h" #include "qgslayertreenode.h"
#include "qgsmaplayerref.h" #include "qgsmaplayerref.h"
@ -41,7 +42,10 @@ class CORE_EXPORT QgsLayerTreeLayer : public QgsLayerTreeNode
Q_OBJECT Q_OBJECT
public: public:
explicit QgsLayerTreeLayer( QgsMapLayer *layer ); explicit QgsLayerTreeLayer( QgsMapLayer *layer );
#ifndef SIP_RUN
QgsLayerTreeLayer( const QgsLayerTreeLayer &other ); QgsLayerTreeLayer( const QgsLayerTreeLayer &other );
#endif
explicit QgsLayerTreeLayer( const QString &layerId, const QString &name = QString(), const QString &source = QString(), const QString &provider = QString() ); explicit QgsLayerTreeLayer( const QString &layerId, const QString &name = QString(), const QString &source = QString(), const QString &provider = QString() );
@ -49,44 +53,54 @@ class CORE_EXPORT QgsLayerTreeLayer : public QgsLayerTreeNode
QgsMapLayer *layer() const { return mRef.layer.data(); } QgsMapLayer *layer() const { return mRef.layer.data(); }
//! Get layer's name /**
//! \since QGIS 3.0 * Returns the layer's name.
* \since QGIS 3.0
*/
QString name() const override; QString name() const override;
//! Set layer's name
//! \since QGIS 3.0 /**
* Sets the layer's name.
* \since QGIS 3.0
*/
void setName( const QString &n ) override; void setName( const QString &n ) override;
//! Read layer node from XML. Returns new instance. /**
//! Does not resolve textual references to layers. Call resolveReferences() afterwards to do it. * Read layer node from XML. Returns new instance.
static QgsLayerTreeLayer *readXml( QDomElement &element ); * Does not resolve textual references to layers. Call resolveReferences() afterwards to do it.
//! Read layer node from XML. Returns new instance. */
//! Also resolves textual references to layers from the project (calls resolveReferences() internally). static QgsLayerTreeLayer *readXml( QDomElement &element ) SIP_FACTORY;
//! \since QGIS 3.0
static QgsLayerTreeLayer *readXml( QDomElement &element, const QgsProject *project ); /**
* Read layer node from XML. Returns new instance.
* Also resolves textual references to layers from the project (calls resolveReferences() internally).
* \since QGIS 3.0
*/
static QgsLayerTreeLayer *readXml( QDomElement &element, const QgsProject *project ) SIP_FACTORY;
virtual void writeXml( QDomElement &parentElement ) override; virtual void writeXml( QDomElement &parentElement ) override;
virtual QString dump() const override; virtual QString dump() const override;
virtual QgsLayerTreeLayer *clone() const override; virtual QgsLayerTreeLayer *clone() const override SIP_FACTORY;
//! Resolves reference to layer from stored layer ID (if it has not been resolved already) /**
//! \since QGIS 3.0 * Resolves reference to layer from stored layer ID (if it has not been resolved already)
* \since QGIS 3.0
*/
virtual void resolveReferences( const QgsProject *project, bool looseMatching = false ) override; virtual void resolveReferences( const QgsProject *project, bool looseMatching = false ) override;
private slots:
//! Emits a nameChanged() signal if layer's name has changed
//! \since QGIS 3.0
void layerNameChanged();
//! Handles the event of deletion of the referenced layer
//! \since QGIS 3.0
void layerWillBeDeleted();
signals: signals:
//! emitted when a previously unavailable layer got loaded
/**
* Emitted when a previously unavailable layer got loaded.
*/
void layerLoaded(); void layerLoaded();
//! emitted when a previously available layer got unloaded (from layer registry)
//! \since QGIS 2.6 /**
* Emitted when a previously available layer got unloaded (from layer registry).
* \since QGIS 2.6
*/
void layerWillBeUnloaded(); void layerWillBeUnloaded();
protected: protected:
@ -96,6 +110,26 @@ class CORE_EXPORT QgsLayerTreeLayer : public QgsLayerTreeNode
QgsMapLayerRef mRef; QgsMapLayerRef mRef;
//! Layer name - only used if layer does not exist //! Layer name - only used if layer does not exist
QString mLayerName; QString mLayerName;
private slots:
/**
* Emits a nameChanged() signal if layer's name has changed
* \since QGIS 3.0
*/
void layerNameChanged();
/**
* Handles the event of deletion of the referenced layer
* \since QGIS 3.0
*/
void layerWillBeDeleted();
private:
#ifdef SIP_RUN
QgsLayerTreeLayer( const QgsLayerTreeLayer &other );
#endif
}; };