79 Q_PROPERTY( QString
id READ
id WRITE setId NOTIFY idChanged )
80 Q_PROPERTY( QString name READ name WRITE setName NOTIFY nameChanged )
81 Q_PROPERTY(
int autoRefreshInterval READ autoRefreshInterval WRITE setAutoRefreshInterval NOTIFY autoRefreshIntervalChanged )
82 Q_PROPERTY(
QgsLayerMetadata metadata READ metadata WRITE setMetadata NOTIFY metadataChanged )
86 Q_PROPERTY(
Qgis::LayerType type READ type CONSTANT )
87 Q_PROPERTY(
bool isValid READ isValid NOTIFY isValidChanged )
88 Q_PROPERTY(
double opacity READ opacity WRITE setOpacity NOTIFY opacityChanged )
89 Q_PROPERTY( QString mapTipTemplate READ mapTipTemplate WRITE setMapTipTemplate NOTIFY mapTipTemplateChanged )
90 Q_PROPERTY(
bool mapTipsEnabled READ mapTipsEnabled WRITE setMapTipsEnabled NOTIFY mapTipsEnabledChanged )
94 QgsMapLayer *layer = qobject_cast<QgsMapLayer *>( sipCpp );
100 switch ( layer->type() )
103 sipType = sipType_QgsVectorLayer;
106 sipType = sipType_QgsRasterLayer;
109 sipType = sipType_QgsPluginLayer;
112 sipType = sipType_QgsMeshLayer;
115 sipType = sipType_QgsVectorTileLayer;
118 sipType = sipType_QgsAnnotationLayer;
121 sipType = sipType_QgsPointCloudLayer;
124 sipType = sipType_QgsGroupLayer;
127 sipType = sipType_QgsTiledSceneLayer;
155 Identifiable = 1 << 0,
170 LayerConfiguration = 1 << 0,
172 Symbology3D = 1 << 2,
179 AttributeTable = 1 << 9,
181 CustomProperties = 1 << 11,
182 GeometryOptions = 1 << 12,
188 AllStyleCategories = LayerConfiguration | Symbology | Symbology3D | Labeling | Fields | Forms | Actions |
189 MapTips | Diagrams | AttributeTable | Rendering | CustomProperties | GeometryOptions | Relations | Temporal | Legend | Elevation | Notes,
191 Q_ENUM( StyleCategory )
201 QgsMapLayer(
Qgis::LayerType type =
Qgis::LayerType::Vector, const QString &name = QString(), const QString &source = QString() );
218 Qgis::LayerType type() const;
253 virtual
Qgis::MapLayerProperties properties() const;
259 static QString extensionPropertyType(
PropertyType type );
284 bool setId( const QString &
id );
290 void setName( const QString &name );
296 QString name() const;
320 Q_DECL_DEPRECATED
void setShortName( const QString &shortName )
SIP_DEPRECATED;
334 Q_DECL_DEPRECATED
void setTitle( const QString &title )
SIP_DEPRECATED;
348 Q_DECL_DEPRECATED
void setAbstract( const QString &abstract )
SIP_DEPRECATED;
362 Q_DECL_DEPRECATED
void setKeywordList( const QString &keywords )
SIP_DEPRECATED;
376 Q_DECL_DEPRECATED
void setDataUrl( const QString &dataUrl )
SIP_DEPRECATED;
390 Q_DECL_DEPRECATED
void setDataUrlFormat( const QString &dataUrlFormat )
SIP_DEPRECATED;
404 Q_DECL_DEPRECATED
void setAttribution( const QString &attrib )
SIP_DEPRECATED;
418 Q_DECL_DEPRECATED
void setAttributionUrl( const QString &attribUrl )
SIP_DEPRECATED;
449 Q_DECL_DEPRECATED
void setMetadataUrl(
const QString &metaUrl )
SIP_DEPRECATED;
470 Q_DECL_DEPRECATED
void setMetadataUrlType( const QString &metaUrlType )
SIP_DEPRECATED;
491 Q_DECL_DEPRECATED
void setMetadataUrlFormat( const QString &metaUrlFormat )
SIP_DEPRECATED;
502 Q_DECL_DEPRECATED QString metadataUrlFormat() const
SIP_DEPRECATED;
509 void setBlendMode( QPainter::CompositionMode blendMode );
515 QPainter::CompositionMode blendMode() const;
525 virtual
void setOpacity(
double opacity );
535 virtual
double opacity() const;
538 bool readOnly()
const {
return isReadOnly(); }
567 QgsRectangle wgs84Extent(
bool forceRecalculate =
false )
const;
574 bool isValid()
const;
586 QString publicSource(
bool hidePassword =
false )
const;
593 QString source()
const;
599 virtual QStringList subLayers()
const;
605 virtual void setLayerOrder(
const QStringList &layers );
612 virtual void setSubLayerVisibility(
const QString &name,
bool visible );
620 virtual bool supportsEditing()
const;
623 virtual bool isEditable()
const;
630 virtual bool isModified()
const;
635 virtual bool isSpatial()
const;
646 virtual bool isTemporary()
const;
654 FlagDontResolveLayers = 1 << 0,
655 FlagTrustLayerMetadata = 1 << 1,
656 FlagReadExtentFromXml = 1 << 2,
657 FlagForceReadOnly = 1 << 3,
696 bool writeLayerXml( QDomElement &layerElement, QDomDocument &document,
const QgsReadWriteContext &context )
const;
701 virtual void resolveReferences(
QgsProject *project );
707 Q_INVOKABLE QStringList customPropertyKeys()
const;
714 Q_INVOKABLE
void setCustomProperty(
const QString &key,
const QVariant &value );
720 Q_INVOKABLE QVariant customProperty(
const QString &value,
const QVariant &defaultValue = QVariant() )
const;
743 virtual int listStylesInDatabase( QStringList &ids
SIP_OUT, QStringList &names
SIP_OUT,
749 virtual QString getStyleFromDatabase(
const QString &styleId, QString &msgError
SIP_OUT );
757 virtual bool deleteStyleFromDatabase(
const QString &styleId, QString &msgError
SIP_OUT );
775 virtual void saveStyleToDatabase(
const QString &name,
const QString &description,
776 bool useAsDefault,
const QString &uiFileContent,
794 virtual QString loadNamedStyle(
const QString &theURI,
bool &resultFlag
SIP_OUT,
bool loadFromLocalDb,
813 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
814 Q_ASSERT( metaEnum.isValid() );
815 if ( !metaEnum.isValid() )
817 QgsDebugError( QStringLiteral(
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration." ) );
823 if ( metaEnum.isValid() )
826 QByteArray ba = customProperty( key, metaEnum.valueToKey(
static_cast<int>( defaultValue ) ) ).toString().toUtf8();
827 const char *vs = ba.data();
828 v =
static_cast<T
>( metaEnum.keyToValue( vs, &ok ) );
836 v =
static_cast<T
>( customProperty( key,
static_cast<int>( defaultValue ) ).toInt( &ok ) );
837 if ( metaEnum.isValid() )
839 if ( !ok || !metaEnum.valueToKey(
static_cast<int>( v ) ) )
847 setCustomEnumProperty( key, v );
865 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
866 Q_ASSERT( metaEnum.isValid() );
867 if ( metaEnum.isValid() )
869 setCustomProperty( key, metaEnum.valueToKey(
static_cast<int>( value ) ) );
873 QgsDebugError( QStringLiteral(
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration." ) );
891 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
892 Q_ASSERT( metaEnum.isValid() );
893 if ( !metaEnum.isValid() )
895 QgsDebugError( QStringLiteral(
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration." ) );
901 if ( metaEnum.isValid() )
904 QByteArray ba = customProperty( key, metaEnum.valueToKeys( defaultValue ) ).toString().toUtf8();
905 const char *vs = ba.data();
906 v =
static_cast<T
>( metaEnum.keysToValue( vs, &ok ) );
911 const int intValue = customProperty( key,
static_cast<int>( defaultValue ) ).toInt( &ok );
912 if ( metaEnum.isValid() )
918 const QByteArray keys = metaEnum.valueToKeys( intValue );
919 const int intValueCheck = metaEnum.keysToValue( keys );
920 if ( intValue != intValueCheck )
931 setCustomFlagProperty( key, v );
955 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
956 Q_ASSERT( metaEnum.isValid() );
957 if ( metaEnum.isValid() )
959 setCustomProperty( key, metaEnum.valueToKeys( value ) );
963 QgsDebugError( QStringLiteral(
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration." ) );
973 void removeCustomProperty(
const QString &key );
1080 static QString formatLayerName(
const QString &name );
1088 virtual QString metadataUri()
const;
1095 void exportNamedMetadata( QDomDocument &doc, QString &errorMsg )
const;
1105 virtual QString saveDefaultMetadata(
bool &resultFlag
SIP_OUT );
1120 QString saveNamedMetadata(
const QString &uri,
bool &resultFlag );
1138 virtual QString loadNamedMetadata(
const QString &uri,
bool &resultFlag
SIP_OUT );
1151 virtual QString loadDefaultMetadata(
bool &resultFlag );
1160 bool loadNamedMetadataFromDatabase(
const QString &db,
const QString &uri, QString &qmd );
1168 bool importNamedMetadata( QDomDocument &document, QString &errorMessage );
1178 virtual QString styleURI()
const;
1192 virtual QString loadDefaultStyle(
bool &resultFlag
SIP_OUT );
1222 virtual bool loadNamedStyleFromDatabase(
const QString &db,
const QString &uri, QString &qml
SIP_OUT );
1232 virtual bool importNamedStyle( QDomDocument &doc, QString &errorMsg
SIP_OUT,
1254 virtual void exportSldStyle( QDomDocument &doc, QString &errorMsg )
const;
1264 virtual void exportSldStyleV2( QDomDocument &doc, QString &errorMsg,
const QgsSldExportContext &exportContext )
const;
1277 virtual QString saveDefaultStyle(
bool &resultFlag
SIP_OUT, StyleCategories categories );
1307 virtual QString saveNamedStyle(
const QString &uri,
bool &resultFlag
SIP_OUT, StyleCategories categories = AllStyleCategories );
1318 virtual QString saveSldStyle(
const QString &uri,
bool &resultFlag )
const;
1340 virtual QString loadSldStyle(
const QString &uri,
bool &resultFlag );
1342 virtual bool readSld(
const QDomNode &node, QString &errorMessage )
1343 { Q_UNUSED( node ) errorMessage = QStringLiteral(
"Layer type %1 not supported" ).arg(
static_cast<int>( type() ) );
return false; }
1342 virtual bool readSld(
const QDomNode &node, QString &errorMessage ) {
…}
1367 virtual bool readStyle(
const QDomNode &node, QString &errorMessage,
1394 virtual bool writeStyle( QDomNode &node, QDomDocument &doc, QString &errorMessage,
const QgsReadWriteContext &context,
1428 void setDataSource(
const QString &dataSource,
const QString &baseName = QString(),
const QString &provider = QString(),
bool loadDefaultStyleFlag =
false );
1459 void setDataSource(
const QString &dataSource,
const QString &baseName,
const QString &provider,
const QgsDataProvider::ProviderOptions &options,
bool loadDefaultStyleFlag =
false );
1495 QString providerType()
const;
1498 QUndoStack *undoStack();
1503 QUndoStack *undoStackStyles();
1510 Q_DECL_DEPRECATED
void setLegendUrl(
const QString &legendUrl )
SIP_DEPRECATED;
1524 Q_DECL_DEPRECATED
void setLegendUrlFormat( const QString &legendUrlFormat )
SIP_DEPRECATED;
1531 Q_DECL_DEPRECATED QString legendUrlFormat() const
SIP_DEPRECATED;
1567 bool isInScaleRange(
double scale ) const;
1579 double minimumScale() const;
1591 double maximumScale() const;
1601 bool hasScaleBasedVisibility() const;
1609 Q_DECL_DEPRECATED
bool hasAutoRefreshEnabled() const
SIP_DEPRECATED;
1617 Qgis::AutoRefreshMode autoRefreshMode() const;
1625 int autoRefreshInterval() const;
1637 void setAutoRefreshInterval(
int interval );
1645 Q_DECL_DEPRECATED
void setAutoRefreshEnabled(
bool enabled )
SIP_DEPRECATED;
1653 void setAutoRefreshMode(
Qgis::AutoRefreshMode mode );
1672 virtual QString htmlMetadata() const;
1675 virtual QDateTime timestamp() const;
1689 QString refreshOnNotifyMessage()
const {
return mRefreshOnNofifyMessage; }
1705 QString originalXmlProperties()
const;
1714 void setOriginalXmlProperties(
const QString &originalXmlProperties );
1720 static QString generateId(
const QString &layerName );
1774 virtual bool hasMapTips()
const;
1783 QString mapTipTemplate()
const;
1792 void setMapTipTemplate(
const QString &mapTipTemplate );
1800 void setMapTipsEnabled(
bool enabled );
1806 bool mapTipsEnabled()
const;
1828 void setMinimumScale(
double scale );
1839 void setMaximumScale(
double scale );
1848 void setScaleBasedVisibility(
bool enabled );
1858 void triggerRepaint(
bool deferredUpdate =
false );
1866 void trigger3DUpdate();
1871 void emitStyleChanged();
1880 virtual bool setDependencies(
const QSet<QgsMapLayerDependency> &layers );
1886 void setRefreshOnNotifyEnabled(
bool enabled );
1904 SIP_PYOBJECT __repr__();
1906 QString str = QStringLiteral(
"<QgsMapLayer: '%1' (%2)>" ).arg( sipCpp->name(), sipCpp->dataProvider() ? sipCpp->dataProvider()->name() : QStringLiteral(
"Invalid" ) );
1907 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
2151 void onNotified(
const QString &message );
2185 virtual void setExtent3D(
const QgsBox3D &box );
2188 void setValid(
bool valid );
2200 virtual bool writeXml( QDomNode &layer_node, QDomDocument &document,
const QgsReadWriteContext &context )
const;
2213 virtual QString encodedSource(
const QString &source,
const QgsReadWriteContext &context )
const;
2227 virtual QString decodedSource(
const QString &source,
const QString &dataProvider,
const QgsReadWriteContext &context )
const;
2234 void readCustomProperties(
const QDomNode &layerNode,
const QString &keyStartsWith = QString() );
2237 void writeCustomProperties( QDomNode &layerNode, QDomDocument &doc )
const;
2240 void readStyleManager(
const QDomNode &layerNode );
2242 void writeStyleManager( QDomNode &layerNode, QDomDocument &doc )
const;
2247 void writeCommonStyle( QDomElement &layerElement, QDomDocument &document,
2254 void readCommonStyle(
const QDomElement &layerElement,
const QgsReadWriteContext &context,
2258 void setProviderType(
const QString &providerType );
2263 void connectNotify(
const char *signal )
override;
2278 void invalidateWgs84Extent();
2281 bool mValid =
false;
2302 bool mIsRefreshOnNofifyEnabled =
false;
2318 bool mShouldValidateCrs =
true;
2325 double mLayerOpacity = 1.0;
2332 int mBlockStyleChangedSignal = 0;
2344 QString crsHtmlMetadata()
const;
2357 QString generalHtmlMetadata()
const;
2367 QString customPropertyHtmlMetadata()
const;
2389 bool loadNamedPropertyFromDatabase(
const QString &db,
const QString &uri, QString &xml,
QgsMapLayer::PropertyType type );
2393 void updateExtent(
const QgsBox3D &extent )
const;
2395 bool rebuildCrs3D( QString *error =
nullptr );
2401 virtual bool isReadOnly()
const;
2420 QPainter::CompositionMode mBlendMode = QPainter::CompositionMode_SourceOver;
2428 double mMinScale = 0;
2430 double mMaxScale = 100000000;
2432 bool mScaleBasedVisibility =
false;
2437 std::unique_ptr< QgsMapLayerServerProperties > mServerProperties;
2440 QUndoStack *mUndoStack =
nullptr;
2442 QUndoStack *mUndoStackStyles =
nullptr;
2456 QTimer *mRefreshTimer =
nullptr;
2477 QString mOriginalXmlProperties;
2480 bool mRepaintRequestedFired =
false;
2483 QString mLegendPlaceholderImage;
2486 QString mMapTipTemplate;
2489 bool mMapTipsEnabled =
true;
2492 friend class TestQgsProject;
2493 friend class TestQgsMapLayer;