mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -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/;
 | 
						|
 | 
						|
};
 | 
						|
 |