21 #include "qgis_core.h"
61 #define QGSCLIPBOARD_MAPLAYER_MIME "application/qgis.maplayer"
73 Q_PROPERTY( QString name READ name WRITE setName NOTIFY nameChanged )
74 Q_PROPERTY(
int autoRefreshInterval READ autoRefreshInterval WRITE setAutoRefreshInterval NOTIFY autoRefreshIntervalChanged )
75 Q_PROPERTY(
QgsLayerMetadata metadata READ metadata WRITE setMetadata NOTIFY metadataChanged )
78 Q_PROPERTY(
bool isValid READ isValid NOTIFY isValidChanged )
79 Q_PROPERTY(
double opacity READ opacity WRITE setOpacity NOTIFY opacityChanged )
83 QgsMapLayer *layer = qobject_cast<QgsMapLayer *>( sipCpp );
89 switch ( layer->type() )
92 sipType = sipType_QgsVectorLayer;
95 sipType = sipType_QgsRasterLayer;
98 sipType = sipType_QgsPluginLayer;
101 sipType = sipType_QgsMeshLayer;
104 sipType = sipType_QgsVectorTileLayer;
107 sipType = sipType_QgsAnnotationLayer;
110 sipType = sipType_QgsPointCloudLayer;
139 Identifiable = 1 << 0,
145 Q_DECLARE_FLAGS( LayerFlags, LayerFlag )
154 LayerConfiguration = 1 << 0,
156 Symbology3D = 1 << 2,
163 AttributeTable = 1 << 9,
165 CustomProperties = 1 << 11,
166 GeometryOptions = 1 << 12,
172 AllStyleCategories = LayerConfiguration | Symbology | Symbology3D | Labeling | Fields | Forms | Actions |
173 MapTips | Diagrams | AttributeTable | Rendering | CustomProperties | GeometryOptions | Relations | Temporal | Legend | Elevation | Notes,
175 Q_ENUM( StyleCategory )
176 Q_DECLARE_FLAGS( StyleCategories, StyleCategory )
177 Q_FLAG( StyleCategories )
214 QgsMapLayer::LayerFlags flags()
const;
223 void setFlags( QgsMapLayer::LayerFlags flags );
230 static QString extensionPropertyType(
PropertyType type );
240 void setName(
const QString &name );
246 QString name()
const;
265 void setShortName( const QString &shortName ) { mShortName = shortName; }
272 QString shortName()
const;
279 void setTitle(
const QString &title ) { mTitle = title; }
287 QString
title()
const {
return mTitle; }
295 void setAbstract(
const QString &
abstract ) { mAbstract =
abstract; }
303 QString
abstract()
const {
return mAbstract; }
330 void setDataUrl(
const QString &dataUrl ) { mDataUrl = dataUrl; }
458 void setBlendMode( QPainter::CompositionMode blendMode );
464 QPainter::CompositionMode blendMode()
const;
474 virtual void setOpacity(
double opacity );
484 virtual double opacity()
const;
511 QgsRectangle wgs84Extent(
bool forceRecalculate =
false )
const;
518 bool isValid()
const;
526 QString publicSource()
const;
533 QString source()
const;
539 virtual QStringList subLayers()
const;
545 virtual void setLayerOrder(
const QStringList &layers );
552 virtual void setSubLayerVisibility(
const QString &name,
bool visible );
555 virtual bool isEditable()
const;
561 virtual bool isSpatial()
const;
572 virtual bool isTemporary()
const;
580 FlagDontResolveLayers = 1 << 0,
581 FlagTrustLayerMetadata = 1 << 1,
582 FlagReadExtentFromXml = 1 << 2,
584 Q_DECLARE_FLAGS( ReadFlags, ReadFlag )
603 bool readLayerXml(
const QDomElement &layerElement,
QgsReadWriteContext &context, QgsMapLayer::ReadFlags flags = QgsMapLayer::ReadFlags() );
622 bool writeLayerXml( QDomElement &layerElement, QDomDocument &document,
const QgsReadWriteContext &context )
const;
628 virtual void resolveReferences(
QgsProject *project );
635 Q_INVOKABLE QStringList customPropertyKeys()
const;
642 Q_INVOKABLE
void setCustomProperty(
const QString &key,
const QVariant &value );
648 Q_INVOKABLE QVariant customProperty(
const QString &value,
const QVariant &defaultValue = QVariant() )
const;
667 void removeCustomProperty(
const QString &key );
698 static QString formatLayerName(
const QString &name );
707 virtual QString metadataUri()
const;
715 void exportNamedMetadata( QDomDocument &doc, QString &errorMsg )
const;
726 virtual QString saveDefaultMetadata(
bool &resultFlag
SIP_OUT );
742 QString saveNamedMetadata(
const QString &uri,
bool &resultFlag );
758 virtual QString loadNamedMetadata(
const QString &uri,
bool &resultFlag
SIP_OUT );
769 virtual QString loadDefaultMetadata(
bool &resultFlag );
779 bool loadNamedMetadataFromDatabase(
const QString &db,
const QString &uri, QString &qmd );
788 bool importNamedMetadata( QDomDocument &document, QString &errorMessage );
797 virtual QString styleURI()
const;
808 virtual QString loadDefaultStyle(
bool &resultFlag
SIP_OUT );
834 virtual bool loadNamedStyleFromDatabase(
const QString &db,
const QString &uri, QString &qml
SIP_OUT );
845 virtual bool importNamedStyle( QDomDocument &doc, QString &errorMsg
SIP_OUT,
866 virtual void exportSldStyle( QDomDocument &doc, QString &errorMsg )
const;
877 virtual QString saveDefaultStyle(
bool &resultFlag
SIP_OUT );
894 virtual QString saveNamedStyle(
const QString &uri,
bool &resultFlag
SIP_OUT, StyleCategories categories = AllStyleCategories );
904 virtual QString saveSldStyle(
const QString &uri,
bool &resultFlag )
const;
914 virtual QString loadSldStyle(
const QString &uri,
bool &resultFlag );
916 virtual bool readSld(
const QDomNode &node, QString &errorMessage )
917 { Q_UNUSED( node ) errorMessage = QStringLiteral(
"Layer type %1 not supported" ).arg(
static_cast<int>( type() ) );
return false; }
942 virtual bool readStyle(
const QDomNode &node, QString &errorMessage,
956 StyleCategories categories = AllStyleCategories )
const = 0;
970 virtual bool writeStyle( QDomNode &node, QDomDocument &doc, QString &errorMessage,
const QgsReadWriteContext &context,
971 StyleCategories categories = AllStyleCategories )
const;
988 void setDataSource(
const QString &dataSource,
const QString &baseName,
const QString &provider,
bool loadDefaultStyleFlag =
false );
1003 void setDataSource(
const QString &dataSource,
const QString &baseName,
const QString &provider,
const QgsDataProvider::ProviderOptions &options,
bool loadDefaultStyleFlag =
false );
1019 void setDataSource(
const QString &dataSource,
const QString &baseName,
const QString &provider,
const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags );
1024 QString providerType()
const;
1027 QUndoStack *undoStack();
1033 QUndoStack *undoStackStyles();
1095 bool isInScaleRange(
double scale )
const;
1107 double minimumScale()
const;
1119 double maximumScale()
const;
1129 bool hasScaleBasedVisibility()
const;
1137 bool hasAutoRefreshEnabled()
const;
1146 int autoRefreshInterval()
const;
1159 void setAutoRefreshInterval(
int interval );
1167 void setAutoRefreshEnabled(
bool enabled );
1189 virtual QString htmlMetadata()
const;
1192 virtual QDateTime timestamp()
const;
1201 virtual QSet<QgsMapLayerDependency> dependencies()
const;
1225 QString originalXmlProperties()
const;
1234 void setOriginalXmlProperties(
const QString &originalXmlProperties );
1240 static QString generateId(
const QString &layerName );
1278 void setMinimumScale(
double scale );
1289 void setMaximumScale(
double scale );
1298 void setScaleBasedVisibility(
bool enabled );
1308 void triggerRepaint(
bool deferredUpdate =
false );
1316 void trigger3DUpdate();
1322 void emitStyleChanged();
1332 virtual bool setDependencies(
const QSet<QgsMapLayerDependency> &layers );
1339 void setRefreshOnNotifyEnabled(
bool enabled );
1358 SIP_PYOBJECT __repr__();
1360 QString
str = QStringLiteral(
"<QgsMapLayer: '%1' (%2)>" ).arg( sipCpp->name(), sipCpp->dataProvider() ? sipCpp->dataProvider()->name() : QStringLiteral(
"Invalid" ) );
1361 sipRes = PyUnicode_FromString(
str.toUtf8().constData() );
1535 void onNotified(
const QString &message );
1552 virtual void setDataSourcePrivate(
const QString &dataSource,
const QString &baseName,
const QString &provider,
const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags );
1567 void setValid(
bool valid );
1579 virtual bool writeXml( QDomNode &layer_node, QDomDocument &document,
const QgsReadWriteContext &context )
const;
1592 virtual QString encodedSource(
const QString &source,
const QgsReadWriteContext &context )
const;
1606 virtual QString decodedSource(
const QString &source,
const QString &dataProvider,
const QgsReadWriteContext &context )
const;
1613 void readCustomProperties(
const QDomNode &layerNode,
const QString &keyStartsWith = QString() );
1616 void writeCustomProperties( QDomNode &layerNode, QDomDocument &doc )
const;
1619 void readStyleManager(
const QDomNode &layerNode );
1621 void writeStyleManager( QDomNode &layerNode, QDomDocument &doc )
const;
1627 void writeCommonStyle( QDomElement &layerElement, QDomDocument &document,
1629 StyleCategories categories = AllStyleCategories )
const;
1635 void readCommonStyle(
const QDomElement &layerElement,
const QgsReadWriteContext &context,
1636 StyleCategories categories = AllStyleCategories );
1639 void setProviderType(
const QString &providerType );
1644 void connectNotify(
const char *signal )
override;
1659 void invalidateWgs84Extent();
1662 bool mValid =
false;
1707 bool mIsRefreshOnNofifyEnabled =
false;
1716 QgsMapLayer::ReadFlags mReadFlags = QgsMapLayer::ReadFlags();
1723 bool mShouldValidateCrs =
true;
1730 double mLayerOpacity = 1.0;
1737 int mBlockStyleChangedSignal = 0;
1749 QString crsHtmlMetadata()
const;
1756 bool &resultFlag, StyleCategories categories = AllStyleCategories );
1758 bool &resultFlag, StyleCategories categories = AllStyleCategories );
1759 bool loadNamedPropertyFromDatabase(
const QString &db,
const QString &uri, QString &xml,
QgsMapLayer::PropertyType type );
1768 virtual bool isReadOnly()
const;
1782 LayerFlags mFlags = LayerFlags( Identifiable | Removable | Searchable );
1785 QPainter::CompositionMode mBlendMode = QPainter::CompositionMode_SourceOver;
1793 double mMinScale = 0;
1795 double mMaxScale = 100000000;
1797 bool mScaleBasedVisibility =
false;
1800 QUndoStack *mUndoStack =
nullptr;
1802 QUndoStack *mUndoStackStyles =
nullptr;
1814 QTimer *mRefreshTimer =
nullptr;
1832 QString mOriginalXmlProperties;
1835 bool mRepaintRequestedFired =
false;
Base class for all renderers that may to participate in 3D view.
This class represents a coordinate reference system (CRS).
Contains information about the context in which a coordinate transform is executed.
Abstract base class for spatial data provider implementations.
QgsErrorMessage represents single error message.
QgsError is container for error messages (report).
Base class for storage of map layer elevation properties.
The QgsMapLayerLegend class is abstract interface for implementations of legends for one map layer.
Base class for utility classes that encapsulate information necessary for rendering of map layers.
Management of styles for use with one map layer.
Base class for storage of map layer temporal properties.
Base class for all map layer types.
virtual bool writeSymbology(QDomNode &node, QDomDocument &doc, QString &errorMessage, const QgsReadWriteContext &context, StyleCategories categories=AllStyleCategories) const =0
Write the style for the layer into the docment provided.
QString legendUrlFormat() const
Returns the format for a URL based layer legend.
void dependenciesChanged()
Emitted when dependencies are changed.
void setError(const QgsError &error)
Sets error message.
void legendChanged()
Signal emitted when legend of the layer has changed.
void setAbstract(const QString &abstract)
Sets the abstract of the layer used by QGIS Server in GetCapabilities request.
void recalculateExtents() const
This is used to send a request that any mapcanvas using this layer update its extents.
void metadataChanged()
Emitted when the layer's metadata is changed.
void setLegendUrl(const QString &legendUrl)
Sets the URL for the layer's legend.
void request3DUpdate()
Signal emitted when a layer requires an update in any 3D maps.
void configChanged()
Emitted whenever the configuration is changed.
void autoRefreshIntervalChanged(int interval)
Emitted when the auto refresh interval changes.
Q_DECL_DEPRECATED bool hasDependencyCycle(const QSet< QgsMapLayerDependency > &) const
Checks whether a new set of dependencies will introduce a cycle this method is now deprecated and alw...
void isValidChanged()
Emitted when the validity of this layer changed.
QString attribution() const
Returns the attribution of the layer used by QGIS Server in GetCapabilities request.
QString mRefreshOnNofifyMessage
QString mLegendUrl
WMS legend.
QString mLayerName
Name of the layer - used for display.
void setAttributionUrl(const QString &attribUrl)
Sets the attribution URL of the layer used by QGIS Server in GetCapabilities request.
void renderer3DChanged()
Signal emitted when 3D renderer associated with the layer has changed.
QString dataUrlFormat() const
Returns the DataUrl format of the layer used by QGIS Server in GetCapabilities request.
void statusChanged(const QString &status)
Emit a signal with status (e.g. to be caught by QgisApp and display a msg on status bar)
void setDataUrl(const QString &dataUrl)
Sets the DataUrl of the layer used by QGIS Server in GetCapabilities request.
QgsMapLayer(QgsMapLayer const &)=delete
QgsMapLayer cannot be copied.
void setKeywordList(const QString &keywords)
Sets the keyword list of the layer used by QGIS Server in GetCapabilities request.
void setAttribution(const QString &attrib)
Sets the attribution of the layer used by QGIS Server in GetCapabilities request.
bool isRefreshOnNotifyEnabled() const
Returns true if the refresh on provider nofification is enabled.
QSet< QgsMapLayerDependency > mDependencies
List of layers that may modify this layer on modification.
void setDataUrlFormat(const QString &dataUrlFormat)
Sets the DataUrl format of the layer used by QGIS Server in GetCapabilities request.
virtual QgsMapLayerRenderer * createMapRenderer(QgsRenderContext &rendererContext)=0
Returns new instance of QgsMapLayerRenderer that will be used for rendering of given context.
QString mProviderKey
Data provider key (name of the data provider)
void styleChanged()
Signal emitted whenever a change affects the layer's style.
void rendererChanged()
Signal emitted when renderer is changed.
QString title() const
Returns the title of the layer used by QGIS Server in GetCapabilities request.
void crsChanged()
Emit a signal that layer's CRS has been reset.
void dataSourceChanged()
Emitted whenever the layer's data source has been changed.
QString dataUrl() const
Returns the DataUrl of the layer used by QGIS Server in GetCapabilities request.
virtual QgsMapLayer * clone() const =0
Returns a new instance equivalent to this one except for the id which is still unique.
QString metadataUrlFormat() const
Returns the metadata format of the layer used by QGIS Server in GetCapabilities request.
void setRefreshOnNofifyMessage(const QString &message)
Set the notification message that triggers repaint If refresh on notification is enabled,...
void opacityChanged(double opacity)
Emitted when the layer's opacity is changed, where opacity is a value between 0 (transparent) and 1 (...
void styleLoaded(QgsMapLayer::StyleCategories categories)
Emitted when a style has been loaded.
void dataChanged()
Data of layer changed.
QString mMetadataUrlFormat
void willBeDeleted()
Emitted in the destructor when the layer is about to be deleted, but it is still in a perfectly valid...
void setMetadataUrlFormat(const QString &metaUrlFormat)
Sets the metadata format of the layer used by QGIS Server in GetCapabilities request.
void blendModeChanged(QPainter::CompositionMode blendMode)
Signal emitted when the blend mode is changed, through QgsMapLayer::setBlendMode()
bool readOnly() const
Returns if this layer is read only.
virtual bool readSymbology(const QDomNode &node, QString &errorMessage, QgsReadWriteContext &context, StyleCategories categories=AllStyleCategories)=0
Read the symbology for the current layer from the DOM node supplied.
QString metadataUrl() const
Returns the metadata URL of the layer used by QGIS Server in GetCapabilities request.
QString mMetadataUrl
MetadataUrl of the layer.
LayerFlag
Flags for the map layer.
void appendError(const QgsErrorMessage &error)
Add error message.
QgsMapLayer & operator=(QgsMapLayer const &)=delete
QgsMapLayer cannot be copied.
QString mDataSource
Data source description string, varies by layer type.
QString refreshOnNotifyMessage() const
Returns the message that should be notified by the provider to triggerRepaint.
virtual bool readSld(const QDomNode &node, QString &errorMessage)
ReadFlag
Flags which control project read behavior.
QString attributionUrl() const
Returns the attribution URL of the layer used by QGIS Server in GetCapabilities request.
QString mAbstract
Description of the layer.
void customPropertyChanged(const QString &key)
Emitted when a custom property of the layer has been changed or removed.
QString legendUrl() const
Returns the URL for the layer's legend.
void flagsChanged()
Emitted when layer's flags have been modified.
void repaintRequested(bool deferredUpdate=false)
By emitting this signal the layer tells that either appearance or content have been changed and any v...
void setLegendUrlFormat(const QString &legendUrlFormat)
Sets the format for a URL based layer legend.
void beforeResolveReferences(QgsProject *project)
Emitted when all layers are loaded and references can be resolved, just before the references of this...
void setMetadataUrl(const QString &metaUrl)
Sets the metadata URL of the layer used by QGIS Server in GetCapabilities request.
void setMetadataUrlType(const QString &metaUrlType)
Set the metadata type of the layer used by QGIS Server in GetCapabilities request MetadataUrlType ind...
virtual void setTransformContext(const QgsCoordinateTransformContext &transformContext)=0
Sets the coordinate transform context to transformContext.
virtual QgsMapLayerElevationProperties * elevationProperties()
Returns the layer's elevation properties.
void nameChanged()
Emitted when the name has been changed.
QString mDataUrl
DataUrl of the layer.
StyleCategory
Categories of style to distinguish appropriate sections for import/export.
virtual Q_INVOKABLE void reload()
Synchronises with changes in the datasource.
virtual QgsMapLayerTemporalProperties * temporalProperties()
Returns the layer's temporal properties.
QString mAttribution
Attribution of the layer.
QString metadataUrlType() const
Returns the metadata type of the layer used by QGIS Server in GetCapabilities request.
QString keywordList() const
Returns the keyword list of the layer used by QGIS Server in GetCapabilities request.
void setTitle(const QString &title)
Sets the title of the layer used by QGIS Server in GetCapabilities request.
PropertyType
Maplayer has a style and a metadata property.
Simple key-value store (keys = strings, values = variants) that supports loading/saving to/from XML i...
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
The class is used as a container of context for various read/write operations on other objects.
A rectangle specified with double values.
Contains information about the context of a rendering operation.
An interface for classes which can visit style entity (e.g.
Represents a vector layer which manages a vector based data sets.
QgsMapLayerType
Types of layers that can be added to a map.
@ PointCloudLayer
Added in 3.18.
@ VectorTileLayer
Added in 3.14.
@ AnnotationLayer
Contains freeform, georeferenced annotations. Added in QGIS 3.16.
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsField::ConfigurationFlags) CORE_EXPORT QDataStream &operator<<(QDataStream &out
Writes the field to stream out. QGIS version compatibility is not guaranteed.
QPointer< QgsMapLayer > QgsWeakMapLayerPointer
Weak pointer for QgsMapLayer.
QList< QgsWeakMapLayerPointer > QgsWeakMapLayerPointerList
A list of weak pointers to QgsMapLayers.
Q_DECLARE_METATYPE(QgsMeshTimeSettings)
const QgsCoordinateReferenceSystem & crs
Setting options for creating vector data providers.