mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -05:00 
			
		
		
		
	Also adds signals to the QgsMapLayerStyleManager so others can watch the changes This code has been funded by Tuscany Region (Italy) - SITA (CIG: 6002233F59) and commissioned to Gis3W s.a.s.
		
			
				
	
	
		
			96 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
 | 
						|
class QgsMapLayerStyle
 | 
						|
{
 | 
						|
%TypeHeaderCode
 | 
						|
#include <qgsmaplayerstylemanager.h>
 | 
						|
%End
 | 
						|
  public:
 | 
						|
    //! construct invalid style
 | 
						|
    QgsMapLayerStyle();
 | 
						|
 | 
						|
    //! construct style from QML definition (XML)
 | 
						|
    explicit QgsMapLayerStyle( const QString& xmlData );
 | 
						|
 | 
						|
    //! Tell whether the style is valid (i.e. there is something stored in it)
 | 
						|
    bool isValid() const;
 | 
						|
 | 
						|
    //! Remove any stored style data (will get invalid)
 | 
						|
    void clear();
 | 
						|
 | 
						|
    //! Return XML content of the style
 | 
						|
    QString xmlData() const;
 | 
						|
 | 
						|
    //! Store layer's active style information in the instance
 | 
						|
    void readFromLayer( QgsMapLayer* layer );
 | 
						|
    //! Apply stored layer's style information to the layer
 | 
						|
    void writeToLayer( QgsMapLayer* layer ) const;
 | 
						|
 | 
						|
    //! Read style configuration (for project file reading)
 | 
						|
    void readXml( const QDomElement& styleElement );
 | 
						|
    //! Write style configuration (for project file writing)
 | 
						|
    void writeXml( QDomElement& styleElement ) const;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
class QgsMapLayerStyleManager : QObject
 | 
						|
{
 | 
						|
%TypeHeaderCode
 | 
						|
#include <qgsmaplayerstylemanager.h>
 | 
						|
%End
 | 
						|
  public:
 | 
						|
    //! Construct a style manager associated with a map layer (must not be null)
 | 
						|
    QgsMapLayerStyleManager( QgsMapLayer* layer );
 | 
						|
 | 
						|
    //! Get pointer to the associated map layer
 | 
						|
    QgsMapLayer* layer() const;
 | 
						|
 | 
						|
    //! Reset the style manager to a basic state - with one default style which is set as current
 | 
						|
    void reset();
 | 
						|
 | 
						|
    //! Read configuration (for project loading)
 | 
						|
    void readXml( const QDomElement& mgrElement );
 | 
						|
    //! Write configuration (for project saving)
 | 
						|
    void writeXml( QDomElement& mgrElement ) const;
 | 
						|
 | 
						|
    //! Return list of all defined style names
 | 
						|
    QStringList styles() const;
 | 
						|
    //! Return data of a stored style - accessed by its unique name
 | 
						|
    QgsMapLayerStyle style( const QString& name ) const;
 | 
						|
 | 
						|
    //! Add a style with given name and data
 | 
						|
    //! @return true on success (name is unique and style is valid)
 | 
						|
    bool addStyle( const QString& name, const QgsMapLayerStyle& style );
 | 
						|
    //! Add style by cloning the current one
 | 
						|
    //! @return true on success
 | 
						|
    bool addStyleFromLayer( const QString& name );
 | 
						|
    //! Remove a stored style
 | 
						|
    //! @return true on success (style exists and it is not the last one)
 | 
						|
    bool removeStyle( const QString& name );
 | 
						|
    //! Rename a stored style to a different name
 | 
						|
    //! @return true on success (style exists and new name is unique)
 | 
						|
    bool renameStyle( const QString& name, const QString& newName );
 | 
						|
 | 
						|
    //! Return name of the current style
 | 
						|
    QString currentStyle() const;
 | 
						|
    //! Set a different style as the current style - will apply it to the layer
 | 
						|
    //! @return true on success
 | 
						|
    bool setCurrentStyle( const QString& name );
 | 
						|
 | 
						|
    //! Temporarily apply a different style to the layer. The argument
 | 
						|
    //! can be either a style name or a full QML style definition.
 | 
						|
    //! Each call must be paired with restoreOverrideStyle()
 | 
						|
    bool setOverrideStyle( const QString& styleDef );
 | 
						|
    //! Restore the original store after a call to setOverrideStyle()
 | 
						|
    bool restoreOverrideStyle();
 | 
						|
 | 
						|
  signals:
 | 
						|
    //! Emitted when a new style has been added
 | 
						|
    void styleAdded( const QString& name );
 | 
						|
    //! Emitted when a style has been removed
 | 
						|
    void styleRemoved( const QString& name );
 | 
						|
    //! Emitted when a style has been renamed
 | 
						|
    void styleRenamed( const QString& oldName, const QString& newName );
 | 
						|
    //! Emitted when the current style has been changed
 | 
						|
    void currentStyleChanged( const QString& currentName );
 | 
						|
};
 |