2014-06-03 15:56:53 +07:00
|
|
|
/**
|
|
|
|
* 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
|
2017-01-26 16:32:58 +08:00
|
|
|
* in layer tree. In such case, resolveReferences() method can be called
|
|
|
|
* once the layer is loaded.
|
2014-06-03 15:56:53 +07:00
|
|
|
*
|
|
|
|
* 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
|
|
|
|
{
|
|
|
|
%TypeHeaderCode
|
|
|
|
#include <qgslayertreelayer.h>
|
|
|
|
%End
|
|
|
|
|
|
|
|
public:
|
|
|
|
explicit QgsLayerTreeLayer( QgsMapLayer* layer );
|
|
|
|
|
2015-10-07 11:55:34 +11:00
|
|
|
explicit QgsLayerTreeLayer( const QString& layerId, const QString& name = QString() );
|
2014-06-03 15:56:53 +07:00
|
|
|
|
|
|
|
QString layerId() const;
|
|
|
|
|
|
|
|
QgsMapLayer* layer() const;
|
|
|
|
|
2016-11-14 19:53:18 +08:00
|
|
|
//! Get layer's name
|
|
|
|
//! @note added in 3.0
|
|
|
|
QString name() const;
|
|
|
|
//! Set layer's name
|
|
|
|
//! @note added in 3.0
|
|
|
|
void setName( const QString& n );
|
|
|
|
|
2017-01-26 16:32:58 +08:00
|
|
|
//! Read layer node from XML. Returns new instance.
|
|
|
|
//! Does not resolve textual references to layers. Call resolveReferences() afterwards to do it.
|
2016-07-19 11:45:47 +10:00
|
|
|
static QgsLayerTreeLayer* readXml( QDomElement& element ) /Factory/;
|
2017-01-26 16:32:58 +08:00
|
|
|
//! Read layer node from XML. Returns new instance.
|
|
|
|
//! Also resolves textual references to layers from the project (calls resolveReferences() internally).
|
|
|
|
//! @note added in 3.0
|
|
|
|
static QgsLayerTreeLayer* readXml( QDomElement& element, const QgsProject* project ) /Factory/;
|
|
|
|
|
2016-07-19 11:45:47 +10:00
|
|
|
virtual void writeXml( QDomElement& parentElement );
|
2014-06-03 15:56:53 +07:00
|
|
|
|
|
|
|
virtual QString dump() const;
|
|
|
|
|
2015-11-12 19:35:14 +11:00
|
|
|
virtual QgsLayerTreeLayer* clone() const /Factory/;
|
2014-06-03 15:56:53 +07:00
|
|
|
|
2017-01-26 16:32:58 +08:00
|
|
|
//! Resolves reference to layer from stored layer ID (if it has not been resolved already)
|
2017-04-12 18:00:33 +10:00
|
|
|
//! \since QGIS 3.0
|
|
|
|
virtual void resolveReferences( const QgsProject *project, bool looseMatching = false );
|
|
|
|
|
2016-01-04 22:51:18 +11:00
|
|
|
|
2014-06-03 15:56:53 +07:00
|
|
|
signals:
|
|
|
|
//! emitted when a previously unavailable layer got loaded
|
|
|
|
void layerLoaded();
|
2016-01-04 22:51:18 +11:00
|
|
|
//! emitted when a previously available layer got unloaded (from layer registry)
|
|
|
|
//! @note added in 2.6
|
|
|
|
void layerWillBeUnloaded();
|
|
|
|
|
|
|
|
protected:
|
|
|
|
void attachToLayer();
|
2014-06-03 15:56:53 +07:00
|
|
|
|
|
|
|
private:
|
|
|
|
QgsLayerTreeLayer( const QgsLayerTreeLayer& other );
|
2014-07-04 20:49:26 +02:00
|
|
|
|
2014-06-03 15:56:53 +07:00
|
|
|
};
|