QGIS API Documentation  3.20.0-Odense (decaadbb31)
Classes | Signals | Public Member Functions | Static Public Member Functions | Properties | List of all members
QgsMapThemeCollection Class Reference

Container class that allows storage of map themes consisting of visible map layers and layer styles. More...

#include <qgsmapthemecollection.h>

Inheritance diagram for QgsMapThemeCollection:
Inheritance graph
[legend]

Classes

class  MapThemeLayerRecord
 Individual record of a visible layer in a map theme record. More...
 
class  MapThemeRecord
 Individual map theme record of visible layers and styles. More...
 

Signals

void mapThemeChanged (const QString &theme)
 Emitted when a map theme changes definition. More...
 
void mapThemeRenamed (const QString &name, const QString &newName)
 Emitted when a map theme within the collection is renamed. More...
 
void mapThemesChanged ()
 Emitted when map themes within the collection are changed. More...
 
void projectChanged ()
 Emitted when the project changes. More...
 

Public Member Functions

 QgsMapThemeCollection (QgsProject *project=nullptr)
 Create map theme collection that handles themes of the given project. More...
 
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 of passed layer tree model. More...
 
void clear ()
 Removes all map themes from the collection. More...
 
bool hasMapTheme (const QString &name) const
 Returns whether a map theme with a matching name exists. More...
 
void insert (const QString &name, const QgsMapThemeCollection::MapThemeRecord &state)
 Inserts a new map theme to the collection. More...
 
QStringList mapThemes () const
 Returns a list of existing map theme names. More...
 
QgsMapThemeCollection::MapThemeRecord mapThemeState (const QString &name) const
 Returns the recorded state of a map theme. More...
 
QMap< QString, QString > mapThemeStyleOverrides (const QString &name)
 Gets layer style overrides (for QgsMapSettings) of the visible layers for given map theme. More...
 
QStringList mapThemeVisibleLayerIds (const QString &name) const
 Returns the list of layer IDs that are visible for the specified map theme. More...
 
QList< QgsMapLayer * > mapThemeVisibleLayers (const QString &name) const
 Returns the list of layers that are visible for the specified map theme. More...
 
QList< QgsMapLayer * > masterLayerOrder () const
 Returns the master layer order (this will always match the project's QgsProject::layerOrder() ). More...
 
QList< QgsMapLayer * > masterVisibleLayers () const
 Returns the master list of visible layers. More...
 
QgsProjectproject ()
 The QgsProject on which this map theme collection works. More...
 
void readXml (const QDomDocument &doc)
 Reads the map theme collection state from XML. More...
 
void removeMapTheme (const QString &name)
 Removes an existing map theme from collection. More...
 
bool renameMapTheme (const QString &name, const QString &newName)
 Renames the existing map theme called name to newName. More...
 
void setProject (QgsProject *project)
 
void update (const QString &name, const QgsMapThemeCollection::MapThemeRecord &state)
 Updates a map theme within the collection. More...
 
void writeXml (QDomDocument &doc)
 Writes the map theme collection state to XML. More...
 

Static Public Member Functions

static QgsMapThemeCollection::MapThemeRecord createThemeFromCurrentState (QgsLayerTreeGroup *root, QgsLayerTreeModel *model)
 Static method to create theme from the current state of layer visibilities in layer tree, current style of layers and check state of legend items (from a layer tree model). More...
 

Properties

QStringList mapThemes
 
QgsProjectproject
 

Detailed Description

Container class that allows storage of map themes consisting of visible map layers and layer styles.

Since
QGIS 2.12

Definition at line 44 of file qgsmapthemecollection.h.

Constructor & Destructor Documentation

◆ QgsMapThemeCollection()

QgsMapThemeCollection::QgsMapThemeCollection ( QgsProject project = nullptr)

Create map theme collection that handles themes of the given project.

Definition at line 28 of file qgsmapthemecollection.cpp.

Member Function Documentation

◆ applyTheme()

void QgsMapThemeCollection::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 of passed layer tree model.

Since
QGIS 3.0

Definition at line 202 of file qgsmapthemecollection.cpp.

◆ clear()

void QgsMapThemeCollection::clear ( )

Removes all map themes from the collection.

Definition at line 307 of file qgsmapthemecollection.cpp.

◆ createThemeFromCurrentState()

QgsMapThemeCollection::MapThemeRecord QgsMapThemeCollection::createThemeFromCurrentState ( QgsLayerTreeGroup root,
QgsLayerTreeModel model 
)
static

Static method to create theme from the current state of layer visibilities in layer tree, current style of layers and check state of legend items (from a layer tree model).

Since
QGIS 3.0

Definition at line 102 of file qgsmapthemecollection.cpp.

◆ hasMapTheme()

bool QgsMapThemeCollection::hasMapTheme ( const QString &  name) const

Returns whether a map theme with a matching name exists.

Since
QGIS 3.0

Definition at line 257 of file qgsmapthemecollection.cpp.

◆ insert()

void QgsMapThemeCollection::insert ( const QString &  name,
const QgsMapThemeCollection::MapThemeRecord state 
)

Inserts a new map theme to the collection.

See also
update()

Definition at line 262 of file qgsmapthemecollection.cpp.

◆ mapThemeChanged

void QgsMapThemeCollection::mapThemeChanged ( const QString &  theme)
signal

Emitted when a map theme changes definition.

Since
QGIS 3.0

◆ mapThemeRenamed

void QgsMapThemeCollection::mapThemeRenamed ( const QString &  name,
const QString &  newName 
)
signal

Emitted when a map theme within the collection is renamed.

Since
QGIS 3.14

◆ mapThemes()

QStringList QgsMapThemeCollection::mapThemes ( ) const

Returns a list of existing map theme names.

Since
QGIS 3.0

Definition at line 315 of file qgsmapthemecollection.cpp.

◆ mapThemesChanged

void QgsMapThemeCollection::mapThemesChanged ( )
signal

Emitted when map themes within the collection are changed.

Since
QGIS 3.0

◆ mapThemeState()

QgsMapThemeCollection::MapThemeRecord QgsMapThemeCollection::mapThemeState ( const QString &  name) const
inline

Returns the recorded state of a map theme.

Since
QGIS 3.0

Definition at line 285 of file qgsmapthemecollection.h.

◆ mapThemeStyleOverrides()

QMap< QString, QString > QgsMapThemeCollection::mapThemeStyleOverrides ( const QString &  name)

Gets layer style overrides (for QgsMapSettings) of the visible layers for given map theme.

Since
QGIS 3.0

Definition at line 385 of file qgsmapthemecollection.cpp.

◆ mapThemeVisibleLayerIds()

QStringList QgsMapThemeCollection::mapThemeVisibleLayerIds ( const QString &  name) const

Returns the list of layer IDs that are visible for the specified map theme.

Note
The order of the returned list is not guaranteed to reflect the order of layers in the canvas.
Since
QGIS 3.0

Definition at line 320 of file qgsmapthemecollection.cpp.

◆ mapThemeVisibleLayers()

QList< QgsMapLayer * > QgsMapThemeCollection::mapThemeVisibleLayers ( const QString &  name) const

Returns the list of layers that are visible for the specified map theme.

Note
The order of the returned list is not guaranteed to reflect the order of layers in the canvas.
Since
QGIS 3.0

Definition at line 331 of file qgsmapthemecollection.cpp.

◆ masterLayerOrder()

QList< QgsMapLayer * > QgsMapThemeCollection::masterLayerOrder ( ) const

Returns the master layer order (this will always match the project's QgsProject::layerOrder() ).

All map themes will maintain the same layer order as the master layer order.

See also
masterVisibleLayers()
Since
QGIS 3.0

Definition at line 226 of file qgsmapthemecollection.cpp.

◆ masterVisibleLayers()

QList< QgsMapLayer * > QgsMapThemeCollection::masterVisibleLayers ( ) const

Returns the master list of visible layers.

The order of returned layers will always match those of masterLayerOrder(), but the returned layers are filtered to only include those visible in the project's layer tree.

See also
masterLayerOrder()
Since
QGIS 3.0

Definition at line 234 of file qgsmapthemecollection.cpp.

◆ project()

QgsProject* QgsMapThemeCollection::project ( )

The QgsProject on which this map theme collection works.

Since
QGIS 3.0

◆ projectChanged

void QgsMapThemeCollection::projectChanged ( )
signal

Emitted when the project changes.

Since
QGIS 3.0

◆ readXml()

void QgsMapThemeCollection::readXml ( const QDomDocument &  doc)

Reads the map theme collection state from XML.

Parameters
docDOM document
See also
writeXml

Definition at line 436 of file qgsmapthemecollection.cpp.

◆ removeMapTheme()

void QgsMapThemeCollection::removeMapTheme ( const QString &  name)

Removes an existing map theme from collection.

Since
QGIS 3.0

Definition at line 296 of file qgsmapthemecollection.cpp.

◆ renameMapTheme()

bool QgsMapThemeCollection::renameMapTheme ( const QString &  name,
const QString &  newName 
)

Renames the existing map theme called name to newName.

Returns true if the rename was successful, or false if it failed (e.g. due to a duplicate name for newName).

Since
QGIS 3.14

Definition at line 283 of file qgsmapthemecollection.cpp.

◆ setProject()

void QgsMapThemeCollection::setProject ( QgsProject project)

Since
QGIS 3.0

Definition at line 215 of file qgsmapthemecollection.cpp.

◆ update()

void QgsMapThemeCollection::update ( const QString &  name,
const QgsMapThemeCollection::MapThemeRecord state 
)

Updates a map theme within the collection.

Parameters
namename of map theme to update
statemap theme record to replace existing map theme
See also
insert()

Definition at line 271 of file qgsmapthemecollection.cpp.

◆ writeXml()

void QgsMapThemeCollection::writeXml ( QDomDocument &  doc)

Writes the map theme collection state to XML.

Parameters
docDOM document
See also
readXml

Definition at line 569 of file qgsmapthemecollection.cpp.

Property Documentation

◆ mapThemes

QStringList QgsMapThemeCollection::mapThemes
read

Definition at line 1 of file qgsmapthemecollection.h.

◆ project

QgsProject * QgsMapThemeCollection::project
readwrite

Definition at line 1 of file qgsmapthemecollection.h.


The documentation for this class was generated from the following files: