QgsMapLayerStyleManager class
Management of styles for use with one map layer.
Contents
Stored styles are identified by their names. The manager always keep track of which style of the stored ones is currently active. When the current style is changed, the new style is applied to the associated layer.
The class takes care of updating itself when the layer's current style configuration changes. When some of layer style's properties change (e.g. opacity / colors), the style manager will record them in the currently active style without any extra effort required.
When an instance is created, it creates "default" style (with empty name) recorded from the associated map layer and it is set as the current style. The instance must always contain at least one style (which is the current).
The style which is marked as current has no style data stored in its entry. This is to avoid duplication of data as all data is stored in map layer and can be retrieved easily. Also when saving, the entry for the current style will be saved with no data because everything is already saved by the map layer itself.
The class also features support for temporary change of the layer's style, ideal for short-term use of a custom style followed by restoration of the original style (for example, when rendering a map with a different than current style).
Constructors, destructors, conversion operators
- QgsMapLayerStyleManager(QgsMapLayer* layer)
- Construct a style manager associated with a map layer (must not be null).
Public functions
- auto addStyle(const QString& name, const QgsMapLayerStyle& style) -> bool
- Add a style with given name and data.
- auto addStyleFromLayer(const QString& name) -> bool
- Add style by cloning the current one.
- auto currentStyle() const -> QString
- Returns name of the current style.
- auto isDefault(const QString& styleName) const -> bool
- Returns true if this is the default style.
- auto layer() const -> QgsMapLayer*
- Gets pointer to the associated map layer.
- auto mapLayerStyles() const -> QMap<QString, QgsMapLayerStyle>
- Gets available styles for the associated map layer.
- void readXml(const QDomElement& mgrElement)
- Read configuration (for project loading)
- auto removeStyle(const QString& name) -> bool
- Remove a stored style.
- auto renameStyle(const QString& name, const QString& newName) -> bool
- Rename a stored style to a different name.
- void reset()
- Reset the style manager to a basic state - with one default style which is set as current.
- auto restoreOverrideStyle() -> bool
- Restore the original store after a call to setOverrideStyle()
- auto setCurrentStyle(const QString& name) -> bool
- Set a different style as the current style - will apply it to the layer.
- auto setOverrideStyle(const QString& styleDef) -> bool
- Temporarily apply a different style to the layer.
- auto style(const QString& name) const -> QgsMapLayerStyle
- Returns data of a stored style - accessed by its unique name.
- auto styles() const -> QStringList
- Returns list of all defined style names.
- void writeXml(QDomElement& mgrElement) const
- Write configuration (for project saving)
Signals
- void currentStyleChanged(const QString& currentName)
- Emitted when the current style has been changed.
- void styleAdded(const QString& name)
- Emitted when a new style has been added.
- void styleRemoved(const QString& name)
- Emitted when a style has been removed.
- void styleRenamed(const QString& oldName, const QString& newName)
- Emitted when a style has been renamed.
Function documentation
QgsMapLayerStyleManager:: QgsMapLayerStyleManager(QgsMapLayer* layer)
Construct a style manager associated with a map layer (must not be null).
The style manager will be parented to layer.
bool QgsMapLayerStyleManager:: addStyle(const QString& name,
const QgsMapLayerStyle& style)
Add a style with given name and data.
| Returns | true on success (name is unique and style is valid) |
|---|
bool QgsMapLayerStyleManager:: addStyleFromLayer(const QString& name)
Add style by cloning the current one.
| Returns | true on success |
|---|
bool QgsMapLayerStyleManager:: isDefault(const QString& styleName) const
Returns true if this is the default style.
QMap<QString, QgsMapLayerStyle> QgsMapLayerStyleManager:: mapLayerStyles() const
Gets available styles for the associated map layer.
| Returns | A map of map layer style by style name |
|---|
bool QgsMapLayerStyleManager:: removeStyle(const QString& name)
Remove a stored style.
| Returns | true on success (style exists and it is not the last one) |
|---|
bool QgsMapLayerStyleManager:: renameStyle(const QString& name,
const QString& newName)
Rename a stored style to a different name.
| Returns | true on success (style exists and new name is unique) |
|---|
bool QgsMapLayerStyleManager:: setCurrentStyle(const QString& name)
Set a different style as the current style - will apply it to the layer.
| Returns | true on success |
|---|
bool QgsMapLayerStyleManager:: setOverrideStyle(const QString& styleDef)
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()