Subgroup: Project

Class: QgsProjectBadLayerHandler

class qgis.core.QgsProjectBadLayerHandler

Bases: sip.wrapper

Interface for classes that handle missing layer files when reading project file.

Methods

dataSource Returns the data source for the given layer
dataType Returns data type associated with the given QgsProject file Dom node
handleBadLayers This method will be called whenever the project tries to load layers which cannot be accessed.
providerType Returns the physical storage type associated with the given layer
setDataSource Set the datasource element to the new value

Signals

Attributes

IS_BOGUS
IS_DATABASE
IS_FILE
IS_RASTER
IS_URL
IS_Unknown
IS_VECTOR
class DataType

Bases: int

IS_BOGUS = 2
IS_DATABASE = 1
IS_FILE = 0
IS_RASTER = 1
IS_URL = 2
IS_Unknown = 3
IS_VECTOR = 0
class ProviderType

Bases: int

dataSource(self, layerNode: QDomNode) → str

Returns the data source for the given layer

The QDomNode is a QgsProject Dom node corresponding to a map layer state.

Essentially dumps datasource tag.

New in version 3.0.

dataType(self, layerNode: QDomNode) → QgsProjectBadLayerHandler.DataType

Returns data type associated with the given QgsProject file Dom node

The Dom node should represent the state associated with a specific layer.

New in version 3.0.

handleBadLayers(self, layers: object)

This method will be called whenever the project tries to load layers which cannot be accessed. It should inform the user about this and if possible offer to fix the unavailable layers by setting a valid datasource, e.g. by showing a file dialog.

The default implementation will dismiss all bad layers and write information to the log.

New in version 3.0.

providerType(self, layerNode: QDomNode) → QgsProjectBadLayerHandler.ProviderType

Returns the physical storage type associated with the given layer

The QDomNode is a QgsProject Dom node corresponding to a map layer state.

If the provider tag is “ogr”, then it’s a file type.

However, if the layer is a raster, then there won’t be a provider tag. It will always have an associated file.

If the layer doesn’t fall into either of the previous two categories, then it’s either a database or URL. If the datasource tag has “url=”, then it’s URL based and if it has “dbname=”>, then the layer data is in a database.

New in version 3.0.

setDataSource(self, layerNode: QDomNode, dataSource: str)

Set the datasource element to the new value

New in version 3.0.