mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-27 00:33:48 -05:00
114 lines
3.3 KiB
Plaintext
114 lines
3.3 KiB
Plaintext
|
|
/**
|
|
* The QgsMapLayerLegend class is abstract interface for implementations
|
|
* of legends for one map layer.
|
|
*
|
|
* @note added in 2.6
|
|
*/
|
|
class QgsMapLayerLegend : QObject
|
|
{
|
|
%TypeHeaderCode
|
|
#include <qgsmaplayerlegend.h>
|
|
%End
|
|
|
|
public:
|
|
explicit QgsMapLayerLegend( QObject *parent /TransferThis/ = 0 );
|
|
|
|
// TODO: type, load/save settings
|
|
|
|
/**
|
|
* Return list of legend nodes to be used for a particular layer tree layer node.
|
|
* Ownership is transferred to the caller.
|
|
*/
|
|
virtual QList<QgsLayerTreeModelLegendNode*> createLayerTreeModelLegendNodes( QgsLayerTreeLayer *nodeLayer ) = 0 /Factory/;
|
|
|
|
// TODO: support for layer tree view delegates
|
|
|
|
//! Create new legend implementation for vector layer
|
|
static QgsMapLayerLegend *defaultVectorLegend( QgsVectorLayer *vl ) /Factory/;
|
|
|
|
//! Create new legend implementation for raster layer
|
|
static QgsMapLayerLegend *defaultRasterLegend( QgsRasterLayer *rl ) /Factory/;
|
|
|
|
//! Create new legend implementation for raster layer
|
|
static QgsMapLayerLegend *defaultPluginLegend( QgsPluginLayer *pl ) /Factory/;
|
|
|
|
signals:
|
|
//! Emitted when existing items/nodes got invalid and should be replaced by new ones
|
|
void itemsChanged();
|
|
};
|
|
|
|
|
|
/**
|
|
* Miscellaneous utility functions for handling of map layer legend
|
|
*
|
|
* @note added in 2.6
|
|
*/
|
|
class QgsMapLayerLegendUtils
|
|
{
|
|
%TypeHeaderCode
|
|
#include <qgsmaplayerlegend.h>
|
|
%End
|
|
public:
|
|
static void setLegendNodeOrder( QgsLayerTreeLayer *nodeLayer, const QList<int> &order );
|
|
static QList<int> legendNodeOrder( QgsLayerTreeLayer *nodeLayer );
|
|
static bool hasLegendNodeOrder( QgsLayerTreeLayer *nodeLayer );
|
|
|
|
static void setLegendNodeUserLabel( QgsLayerTreeLayer *nodeLayer, int originalIndex, const QString &newLabel );
|
|
static QString legendNodeUserLabel( QgsLayerTreeLayer *nodeLayer, int originalIndex );
|
|
static bool hasLegendNodeUserLabel( QgsLayerTreeLayer *nodeLayer, int originalIndex );
|
|
|
|
//! update according to layer node's custom properties (order of items, user labels for items)
|
|
static void applyLayerNodeProperties( QgsLayerTreeLayer *nodeLayer, QList<QgsLayerTreeModelLegendNode*> &nodes );
|
|
};
|
|
|
|
|
|
|
|
/** Default legend implementation for vector layers
|
|
* @note added in 2.6
|
|
*/
|
|
class QgsDefaultVectorLayerLegend : QgsMapLayerLegend
|
|
{
|
|
%TypeHeaderCode
|
|
#include <qgsmaplayerlegend.h>
|
|
%End
|
|
public:
|
|
explicit QgsDefaultVectorLayerLegend( QgsVectorLayer *vl );
|
|
|
|
virtual QList<QgsLayerTreeModelLegendNode*> createLayerTreeModelLegendNodes( QgsLayerTreeLayer *nodeLayer ) /Factory/;
|
|
|
|
};
|
|
|
|
|
|
/** Default legend implementation for raster layers
|
|
* @note added in 2.6
|
|
*/
|
|
class QgsDefaultRasterLayerLegend : QgsMapLayerLegend
|
|
{
|
|
%TypeHeaderCode
|
|
#include <qgsmaplayerlegend.h>
|
|
%End
|
|
public:
|
|
explicit QgsDefaultRasterLayerLegend( QgsRasterLayer *rl );
|
|
|
|
virtual QList<QgsLayerTreeModelLegendNode*> createLayerTreeModelLegendNodes( QgsLayerTreeLayer *nodeLayer ) /Factory/;
|
|
|
|
};
|
|
|
|
|
|
/** Default legend implementation for plugin layers
|
|
* @note added in 2.6
|
|
*/
|
|
class QgsDefaultPluginLayerLegend : QgsMapLayerLegend
|
|
{
|
|
%TypeHeaderCode
|
|
#include <qgsmaplayerlegend.h>
|
|
%End
|
|
public:
|
|
explicit QgsDefaultPluginLayerLegend( QgsPluginLayer *pl );
|
|
|
|
virtual QList<QgsLayerTreeModelLegendNode*> createLayerTreeModelLegendNodes( QgsLayerTreeLayer *nodeLayer ) /Factory/;
|
|
|
|
};
|
|
|