80 Q_PROPERTY( QString
id READ
id WRITE setId NOTIFY idChanged )
81 Q_PROPERTY( QString name READ name WRITE setName NOTIFY nameChanged )
82 Q_PROPERTY(
int autoRefreshInterval READ autoRefreshInterval WRITE setAutoRefreshInterval NOTIFY autoRefreshIntervalChanged )
83 Q_PROPERTY(
QgsLayerMetadata metadata READ metadata WRITE setMetadata NOTIFY metadataChanged )
87 Q_PROPERTY(
Qgis::LayerType type READ type CONSTANT )
88 Q_PROPERTY(
bool isValid READ isValid NOTIFY isValidChanged )
89 Q_PROPERTY(
double opacity READ opacity WRITE setOpacity NOTIFY opacityChanged )
90 Q_PROPERTY( QString mapTipTemplate READ mapTipTemplate WRITE setMapTipTemplate NOTIFY mapTipTemplateChanged )
91 Q_PROPERTY(
bool mapTipsEnabled READ mapTipsEnabled WRITE setMapTipsEnabled NOTIFY mapTipsEnabledChanged )
95 QgsMapLayer *layer = qobject_cast<QgsMapLayer *>( sipCpp );
101 switch ( layer->type() )
104 sipType = sipType_QgsVectorLayer;
107 sipType = sipType_QgsRasterLayer;
110 sipType = sipType_QgsPluginLayer;
113 sipType = sipType_QgsMeshLayer;
116 sipType = sipType_QgsVectorTileLayer;
119 sipType = sipType_QgsAnnotationLayer;
122 sipType = sipType_QgsPointCloudLayer;
125 sipType = sipType_QgsGroupLayer;
128 sipType = sipType_QgsTiledSceneLayer;
156 Identifiable = 1 << 0,
171 LayerConfiguration = 1 << 0,
173 Symbology3D = 1 << 2,
180 AttributeTable = 1 << 9,
182 CustomProperties = 1 << 11,
183 GeometryOptions = 1 << 12,
189 AllStyleCategories = LayerConfiguration | Symbology | Symbology3D | Labeling | Fields | Forms | Actions |
190 MapTips | Diagrams | AttributeTable | Rendering | CustomProperties | GeometryOptions | Relations | Temporal | Legend | Elevation | Notes,
192 Q_ENUM( StyleCategory )
202 QgsMapLayer(
Qgis::LayerType type =
Qgis::LayerType::Vector, const QString &name = QString(), const QString &source = QString() );
219 Qgis::LayerType type() const;
254 virtual
Qgis::MapLayerProperties properties() const;
260 static QString extensionPropertyType(
PropertyType type );
285 bool setId( const QString &
id );
291 void setName( const QString &name );
297 QString name() const;
321 Q_DECL_DEPRECATED
void setShortName( const QString &shortName )
SIP_DEPRECATED;
335 Q_DECL_DEPRECATED
void setTitle( const QString &title )
SIP_DEPRECATED;
349 Q_DECL_DEPRECATED
void setAbstract( const QString &abstract )
SIP_DEPRECATED;
363 Q_DECL_DEPRECATED
void setKeywordList( const QString &keywords )
SIP_DEPRECATED;
377 Q_DECL_DEPRECATED
void setDataUrl( const QString &dataUrl )
SIP_DEPRECATED;
391 Q_DECL_DEPRECATED
void setDataUrlFormat( const QString &dataUrlFormat )
SIP_DEPRECATED;
405 Q_DECL_DEPRECATED
void setAttribution( const QString &attrib )
SIP_DEPRECATED;
419 Q_DECL_DEPRECATED
void setAttributionUrl( const QString &attribUrl )
SIP_DEPRECATED;
450 Q_DECL_DEPRECATED
void setMetadataUrl(
const QString &metaUrl )
SIP_DEPRECATED;
471 Q_DECL_DEPRECATED
void setMetadataUrlType( const QString &metaUrlType )
SIP_DEPRECATED;
492 Q_DECL_DEPRECATED
void setMetadataUrlFormat( const QString &metaUrlFormat )
SIP_DEPRECATED;
503 Q_DECL_DEPRECATED QString metadataUrlFormat() const
SIP_DEPRECATED;
510 void setBlendMode( QPainter::CompositionMode blendMode );
516 QPainter::CompositionMode blendMode() const;
526 virtual
void setOpacity(
double opacity );
536 virtual
double opacity() const;
539 bool readOnly()
const {
return isReadOnly(); }
568 QgsRectangle wgs84Extent(
bool forceRecalculate =
false )
const;
575 bool isValid()
const;
587 QString publicSource(
bool hidePassword =
false )
const;
594 QString source()
const;
600 virtual QStringList subLayers()
const;
606 virtual void setLayerOrder(
const QStringList &layers );
613 virtual void setSubLayerVisibility(
const QString &name,
bool visible );
621 virtual bool supportsEditing()
const;
624 virtual bool isEditable()
const;
631 virtual bool isModified()
const;
636 virtual bool isSpatial()
const;
647 virtual bool isTemporary()
const;
655 FlagDontResolveLayers = 1 << 0,
656 FlagTrustLayerMetadata = 1 << 1,
657 FlagReadExtentFromXml = 1 << 2,
658 FlagForceReadOnly = 1 << 3,
697 bool writeLayerXml( QDomElement &layerElement, QDomDocument &document,
const QgsReadWriteContext &context )
const;
702 virtual void resolveReferences(
QgsProject *project );
708 Q_INVOKABLE QStringList customPropertyKeys()
const;
715 Q_INVOKABLE
void setCustomProperty(
const QString &key,
const QVariant &value );
721 Q_INVOKABLE QVariant customProperty(
const QString &value,
const QVariant &defaultValue = QVariant() )
const;
744 virtual int listStylesInDatabase( QStringList &ids
SIP_OUT, QStringList &names
SIP_OUT,
750 virtual QString getStyleFromDatabase(
const QString &styleId, QString &msgError
SIP_OUT );
758 virtual bool deleteStyleFromDatabase(
const QString &styleId, QString &msgError
SIP_OUT );
776 virtual void saveStyleToDatabase(
const QString &name,
const QString &description,
777 bool useAsDefault,
const QString &uiFileContent,
795 virtual QString loadNamedStyle(
const QString &theURI,
bool &resultFlag
SIP_OUT,
bool loadFromLocalDb,
814 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
815 Q_ASSERT( metaEnum.isValid() );
816 if ( !metaEnum.isValid() )
818 QgsDebugError( QStringLiteral(
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration." ) );
824 if ( metaEnum.isValid() )
827 QByteArray ba = customProperty( key, metaEnum.valueToKey(
static_cast<int>( defaultValue ) ) ).toString().toUtf8();
828 const char *vs = ba.data();
829 v =
static_cast<T
>( metaEnum.keyToValue( vs, &ok ) );
837 v =
static_cast<T
>( customProperty( key,
static_cast<int>( defaultValue ) ).toInt( &ok ) );
838 if ( metaEnum.isValid() )
840 if ( !ok || !metaEnum.valueToKey(
static_cast<int>( v ) ) )
848 setCustomEnumProperty( key, v );
866 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
867 Q_ASSERT( metaEnum.isValid() );
868 if ( metaEnum.isValid() )
870 setCustomProperty( key, metaEnum.valueToKey(
static_cast<int>( value ) ) );
874 QgsDebugError( QStringLiteral(
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration." ) );
892 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
893 Q_ASSERT( metaEnum.isValid() );
894 if ( !metaEnum.isValid() )
896 QgsDebugError( QStringLiteral(
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration." ) );
902 if ( metaEnum.isValid() )
905 QByteArray ba = customProperty( key, metaEnum.valueToKeys( defaultValue ) ).toString().toUtf8();
906 const char *vs = ba.data();
907 v =
static_cast<T
>( metaEnum.keysToValue( vs, &ok ) );
912 const int intValue = customProperty( key,
static_cast<int>( defaultValue ) ).toInt( &ok );
913 if ( metaEnum.isValid() )
919 const QByteArray keys = metaEnum.valueToKeys( intValue );
920 const int intValueCheck = metaEnum.keysToValue( keys );
921 if ( intValue != intValueCheck )
932 setCustomFlagProperty( key, v );
956 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
957 Q_ASSERT( metaEnum.isValid() );
958 if ( metaEnum.isValid() )
960 setCustomProperty( key, metaEnum.valueToKeys( value ) );
964 QgsDebugError( QStringLiteral(
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration." ) );
974 void removeCustomProperty(
const QString &key );
1081 static QString formatLayerName(
const QString &name );
1089 virtual QString metadataUri()
const;
1096 void exportNamedMetadata( QDomDocument &doc, QString &errorMsg )
const;
1106 virtual QString saveDefaultMetadata(
bool &resultFlag
SIP_OUT );
1121 QString saveNamedMetadata(
const QString &uri,
bool &resultFlag );
1139 virtual QString loadNamedMetadata(
const QString &uri,
bool &resultFlag
SIP_OUT );
1152 virtual QString loadDefaultMetadata(
bool &resultFlag );
1161 bool loadNamedMetadataFromDatabase(
const QString &db,
const QString &uri, QString &qmd );
1169 bool importNamedMetadata( QDomDocument &document, QString &errorMessage );
1179 virtual QString styleURI()
const;
1193 virtual QString loadDefaultStyle(
bool &resultFlag
SIP_OUT );
1223 virtual bool loadNamedStyleFromDatabase(
const QString &db,
const QString &uri, QString &qml
SIP_OUT );
1233 virtual bool importNamedStyle( QDomDocument &doc, QString &errorMsg
SIP_OUT,
1255 virtual void exportSldStyle( QDomDocument &doc, QString &errorMsg )
const;
1265 virtual void exportSldStyleV2( QDomDocument &doc, QString &errorMsg,
const QgsSldExportContext &exportContext )
const;
1278 virtual QString saveDefaultStyle(
bool &resultFlag
SIP_OUT, StyleCategories categories );
1308 virtual QString saveNamedStyle(
const QString &uri,
bool &resultFlag
SIP_OUT, StyleCategories categories = AllStyleCategories );
1319 virtual QString saveSldStyle(
const QString &uri,
bool &resultFlag )
const;
1341 virtual QString loadSldStyle(
const QString &uri,
bool &resultFlag );
1343 virtual bool readSld(
const QDomNode &node, QString &errorMessage )
1344 { Q_UNUSED( node ) errorMessage = QStringLiteral(
"Layer type %1 not supported" ).arg(
static_cast<int>( type() ) );
return false; }
1343 virtual bool readSld(
const QDomNode &node, QString &errorMessage ) {
…}
1368 virtual bool readStyle(
const QDomNode &node, QString &errorMessage,
1395 virtual bool writeStyle( QDomNode &node, QDomDocument &doc, QString &errorMessage,
const QgsReadWriteContext &context,
1429 void setDataSource(
const QString &dataSource,
const QString &baseName = QString(),
const QString &provider = QString(),
bool loadDefaultStyleFlag =
false );
1460 void setDataSource(
const QString &dataSource,
const QString &baseName,
const QString &provider,
const QgsDataProvider::ProviderOptions &options,
bool loadDefaultStyleFlag =
false );
1496 QString providerType()
const;
1499 QUndoStack *undoStack();
1504 QUndoStack *undoStackStyles();
1511 Q_DECL_DEPRECATED
void setLegendUrl(
const QString &legendUrl )
SIP_DEPRECATED;
1525 Q_DECL_DEPRECATED
void setLegendUrlFormat( const QString &legendUrlFormat )
SIP_DEPRECATED;
1532 Q_DECL_DEPRECATED QString legendUrlFormat() const
SIP_DEPRECATED;
1568 bool isInScaleRange(
double scale ) const;
1580 double minimumScale() const;
1592 double maximumScale() const;
1602 bool hasScaleBasedVisibility() const;
1610 Q_DECL_DEPRECATED
bool hasAutoRefreshEnabled() const
SIP_DEPRECATED;
1618 Qgis::AutoRefreshMode autoRefreshMode() const;
1626 int autoRefreshInterval() const;
1638 void setAutoRefreshInterval(
int interval );
1646 Q_DECL_DEPRECATED
void setAutoRefreshEnabled(
bool enabled )
SIP_DEPRECATED;
1654 void setAutoRefreshMode(
Qgis::AutoRefreshMode mode );
1673 virtual QString htmlMetadata() const;
1676 virtual QDateTime timestamp() const;
1690 QString refreshOnNotifyMessage()
const {
return mRefreshOnNofifyMessage; }
1706 QString originalXmlProperties()
const;
1715 void setOriginalXmlProperties(
const QString &originalXmlProperties );
1721 static QString generateId(
const QString &layerName );
1775 virtual bool hasMapTips()
const;
1784 QString mapTipTemplate()
const;
1793 void setMapTipTemplate(
const QString &mapTipTemplate );
1801 void setMapTipsEnabled(
bool enabled );
1807 bool mapTipsEnabled()
const;
1829 void setMinimumScale(
double scale );
1840 void setMaximumScale(
double scale );
1849 void setScaleBasedVisibility(
bool enabled );
1859 void triggerRepaint(
bool deferredUpdate =
false );
1867 void trigger3DUpdate();
1872 void emitStyleChanged();
1881 virtual bool setDependencies(
const QSet<QgsMapLayerDependency> &layers );
1887 void setRefreshOnNotifyEnabled(
bool enabled );
1905 SIP_PYOBJECT __repr__();
1907 QString str = QStringLiteral(
"<QgsMapLayer: '%1' (%2)>" ).arg( sipCpp->name(), sipCpp->dataProvider() ? sipCpp->dataProvider()->name() : QStringLiteral(
"Invalid" ) );
1908 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
2152 void onNotified(
const QString &message );
2186 virtual void setExtent3D(
const QgsBox3D &box );
2189 void setValid(
bool valid );
2201 virtual bool writeXml( QDomNode &layer_node, QDomDocument &document,
const QgsReadWriteContext &context )
const;
2214 virtual QString encodedSource(
const QString &source,
const QgsReadWriteContext &context )
const;
2228 virtual QString decodedSource(
const QString &source,
const QString &dataProvider,
const QgsReadWriteContext &context )
const;
2235 void readCustomProperties(
const QDomNode &layerNode,
const QString &keyStartsWith = QString() );
2238 void writeCustomProperties( QDomNode &layerNode, QDomDocument &doc )
const;
2241 void readStyleManager(
const QDomNode &layerNode );
2243 void writeStyleManager( QDomNode &layerNode, QDomDocument &doc )
const;
2248 void writeCommonStyle( QDomElement &layerElement, QDomDocument &document,
2255 void readCommonStyle(
const QDomElement &layerElement,
const QgsReadWriteContext &context,
2259 void setProviderType(
const QString &providerType );
2264 void connectNotify(
const char *signal )
override;
2279 void invalidateWgs84Extent();
2282 bool mValid =
false;
2303 bool mIsRefreshOnNofifyEnabled =
false;
2319 bool mShouldValidateCrs =
true;
2326 double mLayerOpacity = 1.0;
2333 int mBlockStyleChangedSignal = 0;
2345 QString crsHtmlMetadata()
const;
2358 QString generalHtmlMetadata()
const;
2368 QString customPropertyHtmlMetadata()
const;
2390 bool loadNamedPropertyFromDatabase(
const QString &db,
const QString &uri, QString &xml,
QgsMapLayer::PropertyType type );
2394 void updateExtent(
const QgsBox3D &extent )
const;
2396 bool rebuildCrs3D( QString *error =
nullptr );
2402 virtual bool isReadOnly()
const;
2421 QPainter::CompositionMode mBlendMode = QPainter::CompositionMode_SourceOver;
2429 double mMinScale = 0;
2431 double mMaxScale = 100000000;
2433 bool mScaleBasedVisibility =
false;
2438 std::unique_ptr< QgsMapLayerServerProperties > mServerProperties;
2441 QUndoStack *mUndoStack =
nullptr;
2443 QUndoStack *mUndoStackStyles =
nullptr;
2457 QTimer *mRefreshTimer =
nullptr;
2478 QString mOriginalXmlProperties;
2481 bool mRepaintRequestedFired =
false;
2484 QString mLegendPlaceholderImage;
2487 QString mMapTipTemplate;
2490 bool mMapTipsEnabled =
true;
2493 friend class TestQgsProject;
2494 friend class TestQgsMapLayer;