81 Q_PROPERTY( QString
id READ
id WRITE setId NOTIFY idChanged )
82 Q_PROPERTY( QString name READ name WRITE setName NOTIFY nameChanged )
83 Q_PROPERTY(
int autoRefreshInterval READ autoRefreshInterval WRITE setAutoRefreshInterval NOTIFY autoRefreshIntervalChanged )
84 Q_PROPERTY(
QgsLayerMetadata metadata READ metadata WRITE setMetadata NOTIFY metadataChanged )
88 Q_PROPERTY(
Qgis::LayerType type READ type CONSTANT )
89 Q_PROPERTY(
bool isValid READ isValid NOTIFY isValidChanged )
90 Q_PROPERTY(
double opacity READ opacity WRITE setOpacity NOTIFY opacityChanged )
91 Q_PROPERTY( QString mapTipTemplate READ mapTipTemplate WRITE setMapTipTemplate NOTIFY mapTipTemplateChanged )
92 Q_PROPERTY(
bool mapTipsEnabled READ mapTipsEnabled WRITE setMapTipsEnabled NOTIFY mapTipsEnabledChanged )
96 QgsMapLayer *layer = qobject_cast<QgsMapLayer *>( sipCpp );
102 switch ( layer->type() )
105 sipType = sipType_QgsVectorLayer;
108 sipType = sipType_QgsRasterLayer;
111 sipType = sipType_QgsPluginLayer;
114 sipType = sipType_QgsMeshLayer;
117 sipType = sipType_QgsVectorTileLayer;
120 sipType = sipType_QgsAnnotationLayer;
123 sipType = sipType_QgsPointCloudLayer;
126 sipType = sipType_QgsGroupLayer;
129 sipType = sipType_QgsTiledSceneLayer;
157 Identifiable = 1 << 0,
172 LayerConfiguration = 1 << 0,
174 Symbology3D = 1 << 2,
181 AttributeTable = 1 << 9,
183 CustomProperties = 1 << 11,
184 GeometryOptions = 1 << 12,
190 AllStyleCategories = LayerConfiguration | Symbology | Symbology3D | Labeling | Fields | Forms | Actions |
191 MapTips | Diagrams | AttributeTable | Rendering | CustomProperties | GeometryOptions | Relations | Temporal | Legend | Elevation | Notes,
193 Q_ENUM( StyleCategory )
203 QgsMapLayer(
Qgis::LayerType type =
Qgis::LayerType::Vector, const QString &name = QString(), const QString &source = QString() );
220 Qgis::LayerType type() const;
255 virtual
Qgis::MapLayerProperties properties() const;
261 static QString extensionPropertyType(
PropertyType type );
286 bool setId( const QString &
id );
292 void setName( const QString &name );
298 QString name() const;
322 Q_DECL_DEPRECATED
void setShortName( const QString &shortName )
SIP_DEPRECATED;
336 Q_DECL_DEPRECATED
void setTitle( const QString &title )
SIP_DEPRECATED;
350 Q_DECL_DEPRECATED
void setAbstract( const QString &abstract )
SIP_DEPRECATED;
364 Q_DECL_DEPRECATED
void setKeywordList( const QString &keywords )
SIP_DEPRECATED;
378 Q_DECL_DEPRECATED
void setDataUrl( const QString &dataUrl )
SIP_DEPRECATED;
392 Q_DECL_DEPRECATED
void setDataUrlFormat( const QString &dataUrlFormat )
SIP_DEPRECATED;
406 Q_DECL_DEPRECATED
void setAttribution( const QString &attrib )
SIP_DEPRECATED;
420 Q_DECL_DEPRECATED
void setAttributionUrl( const QString &attribUrl )
SIP_DEPRECATED;
451 Q_DECL_DEPRECATED
void setMetadataUrl(
const QString &metaUrl )
SIP_DEPRECATED;
472 Q_DECL_DEPRECATED
void setMetadataUrlType( const QString &metaUrlType )
SIP_DEPRECATED;
493 Q_DECL_DEPRECATED
void setMetadataUrlFormat( const QString &metaUrlFormat )
SIP_DEPRECATED;
504 Q_DECL_DEPRECATED QString metadataUrlFormat() const
SIP_DEPRECATED;
511 void setBlendMode( QPainter::CompositionMode blendMode );
517 QPainter::CompositionMode blendMode() const;
527 virtual
void setOpacity(
double opacity );
537 virtual
double opacity() const;
540 bool readOnly()
const {
return isReadOnly(); }
569 QgsRectangle wgs84Extent(
bool forceRecalculate =
false )
const;
576 bool isValid()
const;
588 QString publicSource(
bool hidePassword =
false )
const;
595 QString source()
const;
601 virtual QStringList subLayers()
const;
607 virtual void setLayerOrder(
const QStringList &layers );
614 virtual void setSubLayerVisibility(
const QString &name,
bool visible );
622 virtual bool supportsEditing()
const;
625 virtual bool isEditable()
const;
632 virtual bool isModified()
const;
637 virtual bool isSpatial()
const;
648 virtual bool isTemporary()
const;
656 FlagDontResolveLayers = 1 << 0,
657 FlagTrustLayerMetadata = 1 << 1,
658 FlagReadExtentFromXml = 1 << 2,
659 FlagForceReadOnly = 1 << 3,
698 bool writeLayerXml( QDomElement &layerElement, QDomDocument &document,
const QgsReadWriteContext &context )
const;
703 virtual void resolveReferences(
QgsProject *project );
709 Q_INVOKABLE QStringList customPropertyKeys()
const;
716 Q_INVOKABLE
void setCustomProperty(
const QString &key,
const QVariant &value );
722 Q_INVOKABLE QVariant customProperty(
const QString &value,
const QVariant &defaultValue = QVariant() )
const;
745 virtual int listStylesInDatabase( QStringList &ids
SIP_OUT, QStringList &names
SIP_OUT,
751 virtual QString getStyleFromDatabase(
const QString &styleId, QString &msgError
SIP_OUT );
759 virtual bool deleteStyleFromDatabase(
const QString &styleId, QString &msgError
SIP_OUT );
769 QmlGenerationFailed = 1 << 0,
770 SldGenerationFailed = 1 << 1,
771 DatabaseWriteFailed = 1 << 2,
773 Q_ENUM( SaveStyleResult )
800 Q_DECL_DEPRECATED virtual
void saveStyleToDatabase( const QString &name, const QString &description,
801 bool useAsDefault, const QString &uiFileContent,
819 bool useAsDefault, const QString &uiFileContent,
836 virtual QString loadNamedStyle( const QString &theURI,
bool &resultFlag
SIP_OUT,
bool loadFromLocalDb,
838 Qgis::LoadStyleFlags flags =
Qgis::LoadStyleFlags() );
855 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
856 Q_ASSERT( metaEnum.isValid() );
857 if ( !metaEnum.isValid() )
859 QgsDebugError( QStringLiteral(
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration." ) );
865 if ( metaEnum.isValid() )
868 QByteArray ba = customProperty( key, metaEnum.valueToKey(
static_cast<int>( defaultValue ) ) ).toString().toUtf8();
869 const char *vs = ba.data();
870 v =
static_cast<T
>( metaEnum.keyToValue( vs, &ok ) );
878 v =
static_cast<T
>( customProperty( key,
static_cast<int>( defaultValue ) ).toInt( &ok ) );
879 if ( metaEnum.isValid() )
881 if ( !ok || !metaEnum.valueToKey(
static_cast<int>( v ) ) )
889 setCustomEnumProperty( key, v );
907 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
908 Q_ASSERT( metaEnum.isValid() );
909 if ( metaEnum.isValid() )
911 setCustomProperty( key, metaEnum.valueToKey(
static_cast<int>( value ) ) );
915 QgsDebugError( QStringLiteral(
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration." ) );
933 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
934 Q_ASSERT( metaEnum.isValid() );
935 if ( !metaEnum.isValid() )
937 QgsDebugError( QStringLiteral(
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration." ) );
943 if ( metaEnum.isValid() )
946 QByteArray ba = customProperty( key, metaEnum.valueToKeys( defaultValue ) ).toString().toUtf8();
947 const char *vs = ba.data();
948 v =
static_cast<T
>( metaEnum.keysToValue( vs, &ok ) );
953 const int intValue = customProperty( key,
static_cast<int>( defaultValue ) ).toInt( &ok );
954 if ( metaEnum.isValid() )
960 const QByteArray keys = metaEnum.valueToKeys( intValue );
961 const int intValueCheck = metaEnum.keysToValue( keys );
962 if ( intValue != intValueCheck )
973 setCustomFlagProperty( key, v );
997 const QMetaEnum metaEnum = QMetaEnum::fromType<T>();
998 Q_ASSERT( metaEnum.isValid() );
999 if ( metaEnum.isValid() )
1001 setCustomProperty( key, metaEnum.valueToKeys( value ) );
1005 QgsDebugError( QStringLiteral(
"Invalid metaenum. Enum probably misses Q_ENUM or Q_FLAG declaration." ) );
1015 void removeCustomProperty(
const QString &key );
1122 static QString formatLayerName(
const QString &name );
1130 virtual QString metadataUri()
const;
1137 void exportNamedMetadata( QDomDocument &doc, QString &errorMsg )
const;
1147 virtual QString saveDefaultMetadata(
bool &resultFlag
SIP_OUT );
1162 QString saveNamedMetadata(
const QString &uri,
bool &resultFlag
SIP_OUT );
1180 virtual QString loadNamedMetadata(
const QString &uri,
bool &resultFlag
SIP_OUT );
1193 virtual QString loadDefaultMetadata(
bool &resultFlag
SIP_OUT );
1202 bool loadNamedMetadataFromDatabase(
const QString &db,
const QString &uri, QString &qmd );
1210 bool importNamedMetadata( QDomDocument &document, QString &errorMessage );
1220 virtual QString styleURI()
const;
1234 virtual QString loadDefaultStyle(
bool &resultFlag
SIP_OUT );
1264 virtual bool loadNamedStyleFromDatabase(
const QString &db,
const QString &uri, QString &qml
SIP_OUT );
1274 virtual bool importNamedStyle( QDomDocument &doc, QString &errorMsg
SIP_OUT,
1296 Q_DECL_DEPRECATED
virtual void exportSldStyle( QDomDocument &doc, QString &errorMsg )
const SIP_DEPRECATED;
1329 virtual QString saveDefaultStyle(
bool &resultFlag
SIP_OUT, StyleCategories categories );
1359 virtual QString saveNamedStyle(
const QString &uri,
bool &resultFlag
SIP_OUT, StyleCategories categories = AllStyleCategories );
1370 virtual QString saveSldStyle(
const QString &uri,
bool &resultFlag
SIP_OUT )
const;
1392 virtual QString loadSldStyle(
const QString &uri,
bool &resultFlag
SIP_OUT );
1394 virtual bool readSld(
const QDomNode &node, QString &errorMessage )
1395 { Q_UNUSED( node ) errorMessage = QStringLiteral(
"Layer type %1 not supported" ).arg(
static_cast<int>( type() ) );
return false; }
1394 virtual bool readSld(
const QDomNode &node, QString &errorMessage ) {
…}
1419 virtual bool readStyle(
const QDomNode &node, QString &errorMessage,
1446 virtual bool writeStyle( QDomNode &node, QDomDocument &doc, QString &errorMessage,
const QgsReadWriteContext &context,
1480 void setDataSource(
const QString &dataSource,
const QString &baseName = QString(),
const QString &provider = QString(),
bool loadDefaultStyleFlag =
false );
1511 void setDataSource(
const QString &dataSource,
const QString &baseName,
const QString &provider,
const QgsDataProvider::ProviderOptions &options,
bool loadDefaultStyleFlag =
false );
1547 QString providerType()
const;
1550 QUndoStack *undoStack();
1555 QUndoStack *undoStackStyles();
1562 Q_DECL_DEPRECATED
void setLegendUrl(
const QString &legendUrl )
SIP_DEPRECATED;
1576 Q_DECL_DEPRECATED
void setLegendUrlFormat( const QString &legendUrlFormat )
SIP_DEPRECATED;
1583 Q_DECL_DEPRECATED QString legendUrlFormat() const
SIP_DEPRECATED;
1619 bool isInScaleRange(
double scale ) const;
1631 double minimumScale() const;
1643 double maximumScale() const;
1653 bool hasScaleBasedVisibility() const;
1661 Q_DECL_DEPRECATED
bool hasAutoRefreshEnabled() const
SIP_DEPRECATED;
1669 Qgis::AutoRefreshMode autoRefreshMode() const;
1677 int autoRefreshInterval() const;
1689 void setAutoRefreshInterval(
int interval );
1697 Q_DECL_DEPRECATED
void setAutoRefreshEnabled(
bool enabled )
SIP_DEPRECATED;
1705 void setAutoRefreshMode(
Qgis::AutoRefreshMode mode );
1724 virtual QString htmlMetadata() const;
1727 virtual QDateTime timestamp() const;
1741 QString refreshOnNotifyMessage()
const {
return mRefreshOnNofifyMessage; }
1757 QString originalXmlProperties()
const;
1766 void setOriginalXmlProperties(
const QString &originalXmlProperties );
1772 static QString generateId(
const QString &layerName );
1834 virtual bool hasMapTips()
const;
1843 QString mapTipTemplate()
const;
1852 void setMapTipTemplate(
const QString &mapTipTemplate );
1860 void setMapTipsEnabled(
bool enabled );
1866 bool mapTipsEnabled()
const;
1888 void setMinimumScale(
double scale );
1899 void setMaximumScale(
double scale );
1908 void setScaleBasedVisibility(
bool enabled );
1918 void triggerRepaint(
bool deferredUpdate =
false );
1926 void trigger3DUpdate();
1931 void emitStyleChanged();
1940 virtual bool setDependencies(
const QSet<QgsMapLayerDependency> &layers );
1946 void setRefreshOnNotifyEnabled(
bool enabled );
1964 SIP_PYOBJECT __repr__();
1966 QString str = QStringLiteral(
"<QgsMapLayer: '%1' (%2)>" ).arg( sipCpp->name(), sipCpp->dataProvider() ? sipCpp->dataProvider()->name() : QStringLiteral(
"Invalid" ) );
1967 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
2211 void onNotified(
const QString &message );
2245 virtual void setExtent3D(
const QgsBox3D &box );
2248 void setValid(
bool valid );
2260 virtual bool writeXml( QDomNode &layer_node, QDomDocument &document,
const QgsReadWriteContext &context )
const;
2273 virtual QString encodedSource(
const QString &source,
const QgsReadWriteContext &context )
const;
2287 virtual QString decodedSource(
const QString &source,
const QString &dataProvider,
const QgsReadWriteContext &context )
const;
2294 void readCustomProperties(
const QDomNode &layerNode,
const QString &keyStartsWith = QString() );
2297 void writeCustomProperties( QDomNode &layerNode, QDomDocument &doc )
const;
2300 void readStyleManager(
const QDomNode &layerNode );
2302 void writeStyleManager( QDomNode &layerNode, QDomDocument &doc )
const;
2307 void writeCommonStyle( QDomElement &layerElement, QDomDocument &document,
2314 void readCommonStyle(
const QDomElement &layerElement,
const QgsReadWriteContext &context,
2318 void setProviderType(
const QString &providerType );
2323 void connectNotify(
const char *signal )
override;
2338 void invalidateWgs84Extent();
2341 bool mValid =
false;
2362 bool mIsRefreshOnNofifyEnabled =
false;
2378 bool mShouldValidateCrs =
true;
2385 double mLayerOpacity = 1.0;
2392 int mBlockStyleChangedSignal = 0;
2404 QString crsHtmlMetadata()
const;
2417 QString generalHtmlMetadata()
const;
2427 QString customPropertyHtmlMetadata()
const;
2449 bool loadNamedPropertyFromDatabase(
const QString &db,
const QString &uri, QString &xml,
QgsMapLayer::PropertyType type );
2453 void updateExtent(
const QgsBox3D &extent )
const;
2455 bool rebuildCrs3D( QString *error =
nullptr );
2461 virtual bool isReadOnly()
const;
2480 QPainter::CompositionMode mBlendMode = QPainter::CompositionMode_SourceOver;
2488 double mMinScale = 0;
2490 double mMaxScale = 100000000;
2492 bool mScaleBasedVisibility =
false;
2497 std::unique_ptr< QgsMapLayerServerProperties > mServerProperties;
2500 QUndoStack *mUndoStack =
nullptr;
2502 QUndoStack *mUndoStackStyles =
nullptr;
2508 std::unique_ptr<QgsMapLayerLegend> mLegend;
2511 std::unique_ptr<QgsMapLayerStyleManager> mStyleManager;
2516 QTimer *mRefreshTimer =
nullptr;
2521 std::unique_ptr<QgsAbstract3DRenderer> m3DRenderer;
2537 QString mOriginalXmlProperties;
2540 bool mRepaintRequestedFired =
false;
2543 QString mLegendPlaceholderImage;
2546 QString mMapTipTemplate;
2549 bool mMapTipsEnabled =
true;
2552 friend class TestQgsProject;
2553 friend class TestQgsMapLayer;