QGIS API Documentation
3.26.3-Buenos Aires (65e4edfdad)
|
Go to the documentation of this file.
16 #ifndef QGSMAPTHEMECOLLECTION_H
17 #define QGSMAPTHEMECOLLECTION_H
19 #include "qgis_core.h"
25 #include <QStringList>
48 Q_PROPERTY( QStringList mapThemes READ mapThemes NOTIFY mapThemesChanged )
49 Q_PROPERTY(
QgsProject *project READ project WRITE setProject NOTIFY projectChanged )
67 return mLayer == other.mLayer && isVisible == other.
isVisible &&
74 return !( *
this == other );
87 bool isVisible =
true;
90 bool usingCurrentStyle =
false;
94 bool usingLegendItems =
false;
109 bool expandedLayerNode =
false;
128 mHasExpandedStateInfo == other.mHasExpandedStateInfo &&
129 mExpandedGroupNodes == other.mExpandedGroupNodes && mCheckedGroupNodes == other.mCheckedGroupNodes;
133 return !( *
this == other );
137 QList<QgsMapThemeCollection::MapThemeLayerRecord>
layerRecords()
const {
return mLayerRecords; }
140 void setLayerRecords(
const QList<QgsMapThemeCollection::MapThemeLayerRecord> &records ) { mLayerRecords = records; }
151 QHash<QgsMapLayer *, QgsMapThemeCollection::MapThemeLayerRecord> validLayerRecords() const
SIP_SKIP;
158 bool hasExpandedStateInfo()
const {
return mHasExpandedStateInfo; }
209 void setCheckedGroupNodes(
const QSet<QString> &checkedGroupNodes ) { mCheckedGroupNodes = checkedGroupNodes; }
213 QList<MapThemeLayerRecord> mLayerRecords;
216 bool mHasExpandedStateInfo =
false;
218 bool mHasCheckedStateInfo =
false;
224 QSet<QString> mExpandedGroupNodes;
230 QSet<QString> mCheckedGroupNodes;
271 bool renameMapTheme(
const QString &name,
const QString &newName );
317 void readXml(
const QDomDocument &doc );
403 void registryLayersRemoved(
const QStringList &layerIDs );
406 void layerStyleRenamed(
const QString &oldName,
const QString &newName );
413 void applyMapThemeCheckedLegendNodesToLayer(
const MapThemeLayerRecord &layerRec,
QgsMapLayer *layer );
418 void reconnectToLayersStyleManager();
420 static bool findRecordForLayer(
QgsMapLayer *layer,
const MapThemeRecord &rec, MapThemeLayerRecord &layerRec );
426 typedef QMap<QString, MapThemeRecord> MapThemeRecordMap;
427 MapThemeRecordMap mMapThemes;
433 #endif // QGSMAPTHEMECOLLECTION_H
bool operator==(const QgsMapThemeCollection::MapThemeRecord &other) const
This class is a base class for nodes in a layer tree.
void mapThemeRenamed(const QString &name, const QString &newName)
Emitted when a map theme within the collection is renamed.
QStringList mapThemeVisibleLayerIds(const QString &name) const
Returns the list of layer IDs that are visible for the specified map theme.
void readXml(const QDomDocument &doc)
Reads the map theme collection state from XML.
QList< QgsMapLayer * > masterVisibleLayers() const
Returns the master list of visible layers.
Individual map theme record of visible layers and styles.
void mapThemeChanged(const QString &theme)
Emitted when a map theme changes definition.
QgsMapThemeCollection(QgsProject *project=nullptr)
Create map theme collection that handles themes of the given project.
bool operator!=(const QgsMapThemeCollection::MapThemeRecord &other) const
QHash< QgsMapLayer *, QgsMapThemeCollection::MapThemeLayerRecord > validLayerRecords() const
Returns set with only records for valid layers.
QList< QgsMapThemeCollection::MapThemeLayerRecord > layerRecords() const
Returns a list of records for all visible layer belonging to the theme.
bool usingLegendItems
Whether checkedLegendItems should be applied.
bool operator==(const QgsMapThemeCollection::MapThemeLayerRecord &other) const
void removeMapTheme(const QString &name)
Removes an existing map theme from collection.
The QgsLayerTreeModel class is model implementation for Qt item views framework.
void setLayerRecords(const QList< QgsMapThemeCollection::MapThemeLayerRecord > &records)
Sets layer records for the theme.
QSet< QString > expandedLegendItems
Rule keys of expanded legend items in layer tree view.
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
QList< QgsMapLayer * > mapThemeVisibleLayers(const QString &name) const
Returns the list of layers that are visible for the specified map theme.
void setCheckedGroupNodes(const QSet< QString > &checkedGroupNodes)
Sets a set of group identifiers for group nodes that should have checked state.
QMap< QString, QString > mapThemeStyleOverrides(const QString &name)
Gets layer style overrides (for QgsMapSettings) of the visible layers for given map theme.
void applyTheme(const QString &name, QgsLayerTreeGroup *root, QgsLayerTreeModel *model)
Apply theme given by its name and modify layer tree, current style of layers and checked legend items...
QSet< QString > checkedGroupNodes() const
Returns a set of group identifiers for group nodes that should have checked state (other group nodes ...
void insert(const QString &name, const QgsMapThemeCollection::MapThemeRecord &state)
Inserts a new map theme to the collection.
void clear()
Removes all map themes from the collection.
Layer tree node points to a map layer.
void mapThemesChanged()
Emitted when map themes within the collection are changed.
void setHasExpandedStateInfo(bool hasInfo)
Sets whether the map theme contains valid expanded/collapsed state of nodes.
Layer tree group node serves as a container for layers and further groups.
QSet< QString > expandedGroupNodes() const
Returns a set of group identifiers for group nodes that should have expanded state (other group nodes...
QString currentStyle
Name of the current style of the layer.
void projectChanged()
Emitted when the project changes.
QPointer< QgsMapLayer > QgsWeakMapLayerPointer
Weak pointer for QgsMapLayer.
bool operator!=(const QgsMapThemeCollection::MapThemeLayerRecord &other) const
bool usingCurrentStyle
Whether current style is valid and should be applied.
QList< QgsMapLayer * > masterLayerOrder() const
Returns the master layer order (this will always match the project's QgsProject::layerOrder() ).
static QgsMapThemeCollection::MapThemeRecord createThemeFromCurrentState(QgsLayerTreeGroup *root, QgsLayerTreeModel *model)
Static method to create theme from the current state of layer visibilities in layer tree,...
Individual record of a visible layer in a map theme record.
void writeXml(QDomDocument &doc)
Writes the map theme collection state to XML.
Base class for all map layer types. This is the base class for all map layer types (vector,...
void setExpandedGroupNodes(const QSet< QString > &expandedGroupNodes)
Sets a set of group identifiers for group nodes that should have expanded state.
void setHasCheckedStateInfo(bool hasInfo)
Sets whether the map theme contains valid checked/unchecked state of group nodes.
MapThemeLayerRecord(QgsMapLayer *l=nullptr)
Initialize layer record with a map layer - it will be stored as a weak pointer.
void setProject(QgsProject *project)
bool hasMapTheme(const QString &name) const
Returns whether a map theme with a matching name exists.
Container class that allows storage of map themes consisting of visible map layers and layer styles.
bool renameMapTheme(const QString &name, const QString &newName)
Renames the existing map theme called name to newName.
QgsMapLayer * layer() const
Returns map layer or nullptr if the layer does not exist anymore.
bool hasCheckedStateInfo() const
Returns whether information about checked/unchecked state of groups has been recorded and thus whethe...
bool isVisible
true if the layer is visible in the associated theme.
QgsMapThemeCollection::MapThemeRecord mapThemeState(const QString &name) const
Returns the recorded state of a map theme.
QSet< QString > checkedLegendItems
Rule keys of check legend items in layer tree model.
void update(const QString &name, const QgsMapThemeCollection::MapThemeRecord &state)
Updates a map theme within the collection.
bool expandedLayerNode
Whether the layer's tree node is expanded (only to be applied if the parent MapThemeRecord has the in...