QGIS API Documentation
3.0.2-Girona (307d082)
|
Management of styles for use with one map layer. More...
#include <qgsmaplayerstylemanager.h>
Signals | |
void | currentStyleChanged (const QString ¤tName) |
Emitted when the current style has been changed. More... | |
void | styleAdded (const QString &name) |
Emitted when a new style has been added. More... | |
void | styleRemoved (const QString &name) |
Emitted when a style has been removed. More... | |
void | styleRenamed (const QString &oldName, const QString &newName) |
Emitted when a style has been renamed. More... | |
Public Member Functions | |
QgsMapLayerStyleManager (QgsMapLayer *layer) | |
Construct a style manager associated with a map layer (must not be null). More... | |
bool | addStyle (const QString &name, const QgsMapLayerStyle &style) |
Add a style with given name and data. More... | |
bool | addStyleFromLayer (const QString &name) |
Add style by cloning the current one. More... | |
QString | currentStyle () const |
Return name of the current style. More... | |
bool | isDefault (const QString &styleName) const |
Returns true if this is the default style. More... | |
QgsMapLayer * | layer () const |
Get pointer to the associated map layer. More... | |
QMap< QString, QgsMapLayerStyle > | mapLayerStyles () const |
Gets available styles for the associated map layer. More... | |
void | readXml (const QDomElement &mgrElement) |
Read configuration (for project loading) More... | |
bool | removeStyle (const QString &name) |
Remove a stored style. More... | |
bool | renameStyle (const QString &name, const QString &newName) |
Rename a stored style to a different name. More... | |
void | reset () |
Reset the style manager to a basic state - with one default style which is set as current. More... | |
bool | restoreOverrideStyle () |
Restore the original store after a call to setOverrideStyle() More... | |
bool | setCurrentStyle (const QString &name) |
Set a different style as the current style - will apply it to the layer. More... | |
bool | setOverrideStyle (const QString &styleDef) |
Temporarily apply a different style to the layer. More... | |
QgsMapLayerStyle | style (const QString &name) const |
Return data of a stored style - accessed by its unique name. More... | |
QStringList | styles () const |
Return list of all defined style names. More... | |
void | writeXml (QDomElement &mgrElement) const |
Write configuration (for project saving) More... | |
Management of styles for use with one map layer.
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).
Definition at line 96 of file qgsmaplayerstylemanager.h.
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.
Definition at line 24 of file qgsmaplayerstylemanager.cpp.
bool QgsMapLayerStyleManager::addStyle | ( | const QString & | name, |
const QgsMapLayerStyle & | style | ||
) |
Add a style with given name and data.
Definition at line 107 of file qgsmaplayerstylemanager.cpp.
bool QgsMapLayerStyleManager::addStyleFromLayer | ( | const QString & | name | ) |
Add style by cloning the current one.
Definition at line 119 of file qgsmaplayerstylemanager.cpp.
QString QgsMapLayerStyleManager::currentStyle | ( | ) | const |
Return name of the current style.
Definition at line 162 of file qgsmaplayerstylemanager.cpp.
|
signal |
Emitted when the current style has been changed.
bool QgsMapLayerStyleManager::isDefault | ( | const QString & | styleName | ) | const |
Returns true if this is the default style.
Definition at line 227 of file qgsmaplayerstylemanager.cpp.
|
inline |
Get pointer to the associated map layer.
Definition at line 108 of file qgsmaplayerstylemanager.h.
QMap< QString, QgsMapLayerStyle > QgsMapLayerStyleManager::mapLayerStyles | ( | ) | const |
Gets available styles for the associated map layer.
Definition at line 89 of file qgsmaplayerstylemanager.cpp.
void QgsMapLayerStyleManager::readXml | ( | const QDomElement & | mgrElement | ) |
Read configuration (for project loading)
Definition at line 43 of file qgsmaplayerstylemanager.cpp.
bool QgsMapLayerStyleManager::removeStyle | ( | const QString & | name | ) |
Remove a stored style.
Definition at line 126 of file qgsmaplayerstylemanager.cpp.
bool QgsMapLayerStyleManager::renameStyle | ( | const QString & | name, |
const QString & | newName | ||
) |
Rename a stored style to a different name.
Definition at line 148 of file qgsmaplayerstylemanager.cpp.
void QgsMapLayerStyleManager::reset | ( | ) |
Reset the style manager to a basic state - with one default style which is set as current.
Definition at line 37 of file qgsmaplayerstylemanager.cpp.
bool QgsMapLayerStyleManager::restoreOverrideStyle | ( | ) |
Restore the original store after a call to setOverrideStyle()
Definition at line 213 of file qgsmaplayerstylemanager.cpp.
bool QgsMapLayerStyleManager::setCurrentStyle | ( | const QString & | name | ) |
Set a different style as the current style - will apply it to the layer.
Definition at line 167 of file qgsmaplayerstylemanager.cpp.
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()
Definition at line 185 of file qgsmaplayerstylemanager.cpp.
QgsMapLayerStyle QgsMapLayerStyleManager::style | ( | const QString & | name | ) | const |
Return data of a stored style - accessed by its unique name.
Definition at line 94 of file qgsmaplayerstylemanager.cpp.
|
signal |
Emitted when a new style has been added.
|
signal |
Emitted when a style has been removed.
|
signal |
Emitted when a style has been renamed.
QStringList QgsMapLayerStyleManager::styles | ( | ) | const |
Return list of all defined style names.
Definition at line 84 of file qgsmaplayerstylemanager.cpp.
void QgsMapLayerStyleManager::writeXml | ( | QDomElement & | mgrElement | ) | const |
Write configuration (for project saving)
Definition at line 70 of file qgsmaplayerstylemanager.cpp.