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; }
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();
1559 bool isInScaleRange(
double scale )
const;
1571 double minimumScale()
const;
1583 double maximumScale()
const;
1593 bool hasScaleBasedVisibility()
const;
1601 Q_DECL_DEPRECATED
bool hasAutoRefreshEnabled() const
SIP_DEPRECATED;
1609 Qgis::AutoRefreshMode autoRefreshMode() const;
1617 int autoRefreshInterval() const;
1629 void setAutoRefreshInterval(
int interval );
1637 Q_DECL_DEPRECATED
void setAutoRefreshEnabled(
bool enabled )
SIP_DEPRECATED;
1645 void setAutoRefreshMode(
Qgis::AutoRefreshMode mode );
1664 virtual QString htmlMetadata() const;
1667 virtual QDateTime timestamp() const;
1681 QString refreshOnNotifyMessage()
const {
return mRefreshOnNofifyMessage; }
1697 QString originalXmlProperties()
const;
1706 void setOriginalXmlProperties(
const QString &originalXmlProperties );
1712 static QString generateId(
const QString &layerName );
1766 virtual bool hasMapTips()
const;
1775 QString mapTipTemplate()
const;
1784 void setMapTipTemplate(
const QString &mapTipTemplate );
1792 void setMapTipsEnabled(
bool enabled );
1798 bool mapTipsEnabled()
const;
1820 void setMinimumScale(
double scale );
1831 void setMaximumScale(
double scale );
1840 void setScaleBasedVisibility(
bool enabled );
1850 void triggerRepaint(
bool deferredUpdate =
false );
1858 void trigger3DUpdate();
1863 void emitStyleChanged();
1872 virtual bool setDependencies(
const QSet<QgsMapLayerDependency> &layers );
1878 void setRefreshOnNotifyEnabled(
bool enabled );
1896 SIP_PYOBJECT __repr__();
1898 QString str = QStringLiteral(
"<QgsMapLayer: '%1' (%2)>" ).arg( sipCpp->name(), sipCpp->dataProvider() ? sipCpp->dataProvider()->name() : QStringLiteral(
"Invalid" ) );
1899 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
2143 void onNotified(
const QString &message );
2177 virtual void setExtent3D(
const QgsBox3D &box );
2180 void setValid(
bool valid );
2192 virtual bool writeXml( QDomNode &layer_node, QDomDocument &document,
const QgsReadWriteContext &context )
const;
2205 virtual QString encodedSource(
const QString &source,
const QgsReadWriteContext &context )
const;
2219 virtual QString decodedSource(
const QString &source,
const QString &dataProvider,
const QgsReadWriteContext &context )
const;
2226 void readCustomProperties(
const QDomNode &layerNode,
const QString &keyStartsWith = QString() );
2229 void writeCustomProperties( QDomNode &layerNode, QDomDocument &doc )
const;
2232 void readStyleManager(
const QDomNode &layerNode );
2234 void writeStyleManager( QDomNode &layerNode, QDomDocument &doc )
const;
2239 void writeCommonStyle( QDomElement &layerElement, QDomDocument &document,
2246 void readCommonStyle(
const QDomElement &layerElement,
const QgsReadWriteContext &context,
2250 void setProviderType(
const QString &providerType );
2255 void connectNotify(
const char *signal )
override;
2270 void invalidateWgs84Extent();
2273 bool mValid =
false;
2298 bool mIsRefreshOnNofifyEnabled =
false;
2314 bool mShouldValidateCrs =
true;
2321 double mLayerOpacity = 1.0;
2328 int mBlockStyleChangedSignal = 0;
2340 QString crsHtmlMetadata()
const;
2353 QString generalHtmlMetadata()
const;
2363 QString customPropertyHtmlMetadata()
const;
2385 bool loadNamedPropertyFromDatabase(
const QString &db,
const QString &uri, QString &xml,
QgsMapLayer::PropertyType type );
2389 void updateExtent(
const QgsBox3D &extent )
const;
2391 bool rebuildCrs3D( QString *error =
nullptr );
2397 virtual bool isReadOnly()
const;
2416 QPainter::CompositionMode mBlendMode = QPainter::CompositionMode_SourceOver;
2424 double mMinScale = 0;
2426 double mMaxScale = 100000000;
2428 bool mScaleBasedVisibility =
false;
2433 std::unique_ptr< QgsMapLayerServerProperties > mServerProperties;
2436 QUndoStack *mUndoStack =
nullptr;
2438 QUndoStack *mUndoStackStyles =
nullptr;
2452 QTimer *mRefreshTimer =
nullptr;
2473 QString mOriginalXmlProperties;
2476 bool mRepaintRequestedFired =
false;
2479 QString mLegendPlaceholderImage;
2482 QString mMapTipTemplate;
2485 bool mMapTipsEnabled =
true;
2488 friend class TestQgsProject;
2489 friend class TestQgsMapLayer;