QGIS API Documentation 3.99.0-Master (d270888f95f)
Loading...
Searching...
No Matches
qgsvectorlayer.h
Go to the documentation of this file.
1
2/***************************************************************************
3 -------------------
4 begin : Oct 29, 2003
5 copyright : (C) 2003 by Gary E.Sherman
6 email : sherman at mrcc.com
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef QGSVECTORLAYER_H
19#define QGSVECTORLAYER_H
20
21#include "qgis.h"
22#include "qgis_core.h"
26#include "qgseditformconfig.h"
30#include "qgsfeature.h"
31#include "qgsfeatureiterator.h"
32#include "qgsfeaturerequest.h"
33#include "qgsfeaturesource.h"
34#include "qgsfields.h"
35#include "qgsmaplayer.h"
39
40#include <QFont>
41#include <QList>
42#include <QMap>
43#include <QMutex>
44#include <QSet>
45#include <QString>
46#include <QStringList>
47
48using namespace Qt::StringLiterals;
49
50class QPainter;
51class QImage;
52
56class QgsCurve;
62class QgsGeometry;
63class QgsGeometryVertexIndex;
64class QgsMapToPixel;
65class QgsRectangle;
66class QgsRectangle;
67class QgsRelation;
68class QgsWeakRelation;
72class QgsSymbol;
79class QgsPoint;
80class QgsFeedback;
91
92#ifndef SIP_RUN
93template<class T>
95#endif
98
99
100typedef QList<int> QgsAttributeList;
101typedef QSet<int> QgsAttributeIds;
102
103// TODO QGIS 5: Remove virtual from non-inherited methods (like isModified)
104
409{
410 Q_OBJECT
411
412 Q_PROPERTY( QString subsetString READ subsetString WRITE setSubsetString NOTIFY subsetStringChanged )
415 Q_PROPERTY( bool readOnly READ isReadOnly WRITE setReadOnly NOTIFY readOnlyChanged )
417 Q_PROPERTY( QgsFields fields READ fields NOTIFY updatedFields )
418
419 public:
420
422
425 static const QgsSettingsEntryEnumFlag<Qgis::VectorSimplificationAlgorithm> *settingsSimplifyAlgorithm SIP_SKIP;
426 static const QgsSettingsEntryEnumFlag<Qgis::VectorRenderingSimplificationFlags> *settingsSimplifyDrawingHints SIP_SKIP;
427
539
544 struct CORE_EXPORT DeleteContext
545 {
546
550 explicit DeleteContext( bool cascade = false, QgsProject *project = nullptr ): cascade( cascade ), project( project ) {}
551
558 QList<QgsVectorLayer *> handledLayers( bool includeAuxiliaryLayers = true ) const;
559
563 QgsFeatureIds handledFeatures( QgsVectorLayer *layer ) const;
564
565 QMap<QgsVectorLayer *, QgsFeatureIds> mHandledFeatures SIP_SKIP;
568 };
569
583 explicit QgsVectorLayer( const QString &path = QString(), const QString &baseName = QString(),
584 const QString &providerLib = "ogr", const QgsVectorLayer::LayerOptions &options = QgsVectorLayer::LayerOptions() );
585
586 ~QgsVectorLayer() override;
587
588 QgsVectorLayer( const QgsVectorLayer &rhs ) = delete;
589 QgsVectorLayer &operator=( QgsVectorLayer const &rhs ) = delete;
590
591#ifdef SIP_RUN
592 SIP_PYOBJECT __repr__();
593 % MethodCode
594 QString str = u"<QgsVectorLayer: '%1' (%2)>"_s.arg( sipCpp->name(), sipCpp->dataProvider() ? sipCpp->dataProvider()->name() : u"Invalid"_s );
595 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
596 % End
597#endif
598
606 QgsVectorLayer *clone() const override SIP_FACTORY;
607
612 QString storageType() const;
613
617 QString capabilitiesString() const;
618
619
629 bool isSqlQuery() const;
630
637 Qgis::VectorLayerTypeFlags vectorLayerTypeFlags() const;
638
639
643 QString dataComment() const;
644
652 QString displayField() const;
653
661 void setDisplayExpression( const QString &displayExpression );
662
669 QString displayExpression() const;
670
671 bool hasMapTips() const final;
672
674 const QgsVectorDataProvider *dataProvider() const final SIP_SKIP;
678 QgsAbstractProfileSource *profileSource() override {return this;}
679 QString profileSourceId() const override {return id();}
680 QString profileSourceName() const override {return name();}
682
693 void setProviderEncoding( const QString &encoding );
694
696 void setCoordinateSystem();
697
703 bool addJoin( const QgsVectorLayerJoinInfo &joinInfo );
704
709 bool removeJoin( const QString &joinLayerId );
710
714 QgsVectorLayerJoinBuffer *joinBuffer() { return mJoinBuffer; }
715
720 const QgsVectorLayerJoinBuffer *joinBuffer() const { return mJoinBuffer; } SIP_SKIP;
721
722 const QList<QgsVectorLayerJoinInfo> vectorJoins() const;
723
731 bool setDependencies( const QSet<QgsMapLayerDependency> &layers ) final;
732
739 QSet<QgsMapLayerDependency> dependencies() const final;
740
750 int addExpressionField( const QString &exp, const QgsField &fld );
751
758 void removeExpressionField( int index );
759
768 QString expressionField( int index ) const;
769
778 void updateExpressionField( int index, const QString &exp );
779
786 QgsActionManager *actions() { return mActions; }
787
793 const QgsActionManager *actions() const SIP_SKIP { return mActions; }
794
800 int selectedFeatureCount() const;
801
811 Q_INVOKABLE void selectByRect( QgsRectangle &rect, Qgis::SelectBehavior behavior = Qgis::SelectBehavior::SetSelection );
812
822 Q_INVOKABLE void selectByExpression( const QString &expression, Qgis::SelectBehavior behavior = Qgis::SelectBehavior::SetSelection, QgsExpressionContext *context = nullptr );
823
833 Q_INVOKABLE void selectByIds( const QgsFeatureIds &ids, Qgis::SelectBehavior behavior = Qgis::SelectBehavior::SetSelection );
834
846 Q_INVOKABLE void modifySelection( const QgsFeatureIds &selectIds, const QgsFeatureIds &deselectIds );
847
849 Q_INVOKABLE void invertSelection();
850
852 Q_INVOKABLE void selectAll();
853
861 Q_INVOKABLE void invertSelectionInRectangle( QgsRectangle &rect );
862
875 Q_INVOKABLE QgsFeatureList selectedFeatures() const;
876
892 QgsFeatureIterator getSelectedFeatures( QgsFeatureRequest request = QgsFeatureRequest() ) const;
893
901 Q_INVOKABLE const QgsFeatureIds &selectedFeatureIds() const;
902
904 Q_INVOKABLE QgsRectangle boundingBoxOfSelected() const;
905
912 bool labelsEnabled() const;
913
923 void setLabelsEnabled( bool enabled );
924
929 bool diagramsEnabled() const;
930
932 void setDiagramRenderer( QgsDiagramRenderer *r SIP_TRANSFER );
933 const QgsDiagramRenderer *diagramRenderer() const { return mDiagramRenderer; }
934
935 void setDiagramLayerSettings( const QgsDiagramLayerSettings &s );
936 const QgsDiagramLayerSettings *diagramLayerSettings() const { return mDiagramLayerSettings; }
937
944 QgsFeatureRenderer *renderer() { return mRenderer; }
945
953 const QgsFeatureRenderer *renderer() const SIP_SKIP { return mRenderer; }
954
961 void setRenderer( QgsFeatureRenderer *r SIP_TRANSFER );
962
972 void addFeatureRendererGenerator( QgsFeatureRendererGenerator *generator SIP_TRANSFER );
973
983 void removeFeatureRendererGenerator( const QString &id );
984
992 QList< const QgsFeatureRendererGenerator * > featureRendererGenerators() const;
993
995 Q_INVOKABLE Qgis::GeometryType geometryType() const;
996
998 Q_INVOKABLE Qgis::WkbType wkbType() const final;
999
1000 QgsCoordinateReferenceSystem sourceCrs() const final;
1001 QString sourceName() const final;
1002
1007 bool readXml( const QDomNode &layer_node, QgsReadWriteContext &context ) final;
1008
1013 bool writeXml( QDomNode &layer_node, QDomDocument &doc, const QgsReadWriteContext &context ) const final;
1014
1015 QString encodedSource( const QString &source, const QgsReadWriteContext &context ) const final;
1016 QString decodedSource( const QString &source, const QString &provider, const QgsReadWriteContext &context ) const final;
1017
1021 void resolveReferences( QgsProject *project ) final;
1022
1035 bool loadAuxiliaryLayer( const QgsAuxiliaryStorage &storage, const QString &key = QString() );
1036
1045 void setAuxiliaryLayer( QgsAuxiliaryLayer *layer SIP_TRANSFER = nullptr );
1046
1051 QgsAuxiliaryLayer *auxiliaryLayer();
1052
1057 const QgsAuxiliaryLayer *auxiliaryLayer() const SIP_SKIP;
1058
1059 bool readSymbology( const QDomNode &layerNode, QString &errorMessage,
1060 QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories = QgsMapLayer::AllStyleCategories ) final;
1061 bool readStyle( const QDomNode &node, QString &errorMessage,
1062 QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories = QgsMapLayer::AllStyleCategories ) final;
1063 bool writeSymbology( QDomNode &node, QDomDocument &doc, QString &errorMessage,
1064 const QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories = QgsMapLayer::AllStyleCategories ) const final;
1065 bool writeStyle( QDomNode &node, QDomDocument &doc, QString &errorMessage,
1066 const QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories = QgsMapLayer::AllStyleCategories ) const final;
1067
1077 Q_DECL_DEPRECATED bool writeSld( QDomNode &node, QDomDocument &doc, QString &errorMessage, const QVariantMap &props = QVariantMap() ) const SIP_DEPRECATED;
1078
1087 bool writeSld( QDomNode &node, QDomDocument &doc, QgsSldExportContext &context ) const;
1088
1089 bool readSld( const QDomNode &node, QString &errorMessage ) final;
1090
1096 long long featureCount( const QString &legendKey ) const;
1097
1104 QgsFeatureIds symbolFeatureIds( const QString &legendKey ) const;
1105
1116 Qgis::FeatureAvailability hasFeatures() const final;
1117
1118 QString loadDefaultStyle( bool &resultFlag SIP_OUT ) final;
1119
1132 QgsVectorLayerFeatureCounter *countSymbolFeatures( bool storeSymbolFids = false );
1133
1141 virtual bool setSubsetString( const QString &subset );
1142
1147 virtual QString subsetString() const;
1148
1154 QgsFeatureIterator getFeatures( const QgsFeatureRequest &request = QgsFeatureRequest() ) const final;
1155
1159 inline QgsFeatureIterator getFeatures( const QString &expression )
1160 {
1161 return getFeatures( QgsFeatureRequest( expression ) );
1162 }
1163
1168 Q_INVOKABLE inline QgsFeature getFeature( QgsFeatureId fid ) const
1169 {
1170 QgsFeature feature;
1171 getFeatures( QgsFeatureRequest( fid ) ).nextFeature( feature );
1172 return feature;
1173 }
1174
1179 QgsGeometry getGeometry( QgsFeatureId fid ) const;
1180
1185 {
1186 return getFeatures( QgsFeatureRequest( fids ) );
1187 }
1188
1193 {
1194 return getFeatures( QgsFeatureRequest( rectangle ) );
1195 }
1196
1197 bool addFeature( QgsFeature &feature, QgsFeatureSink::Flags flags = QgsFeatureSink::Flags() ) final;
1198
1224 Q_INVOKABLE bool updateFeature( QgsFeature &feature, bool skipDefaultValues = false );
1225
1237 bool insertVertex( double x, double y, QgsFeatureId atFeatureId, int beforeVertex );
1238
1250 bool insertVertex( const QgsPoint &point, QgsFeatureId atFeatureId, int beforeVertex );
1251
1262 bool moveVertex( double x, double y, QgsFeatureId atFeatureId, int atVertex );
1263
1274 bool moveVertex( const QgsPoint &p, QgsFeatureId atFeatureId, int atVertex ) SIP_PYNAME( moveVertexV2 );
1275
1285 Qgis::VectorEditResult deleteVertex( QgsFeatureId featureId, int vertex );
1286
1294 Q_INVOKABLE bool deleteSelectedFeatures( int *deletedCount = nullptr, QgsVectorLayer::DeleteContext *context = nullptr );
1295
1316 Q_DECL_DEPRECATED Qgis::GeometryOperationResult addRing( const QVector<QgsPointXY> &ring, QgsFeatureId *featureId = nullptr ) SIP_DEPRECATED;
1317
1318
1338 Q_INVOKABLE Qgis::GeometryOperationResult addRing( const QgsPointSequence &ring, QgsFeatureId *featureId = nullptr );
1339
1360 Q_INVOKABLE Qgis::GeometryOperationResult addRing( QgsCurve *ring SIP_TRANSFER, QgsFeatureId *featureId = nullptr ) SIP_PYNAME( addCurvedRing );
1361
1381 Q_DECL_DEPRECATED Qgis::GeometryOperationResult addPart( const QList<QgsPointXY> &ring ) SIP_DEPRECATED;
1382
1402 Q_INVOKABLE Qgis::GeometryOperationResult addPart( const QgsPointSequence &ring ) SIP_PYNAME( addPartV2 );
1403
1414 Q_INVOKABLE Qgis::GeometryOperationResult addPart( QgsCurve *ring SIP_TRANSFER ) SIP_PYNAME( addCurvedPart );
1415
1427 Q_INVOKABLE int translateFeature( QgsFeatureId featureId, double dx, double dy );
1428
1449 Q_DECL_DEPRECATED Qgis::GeometryOperationResult splitParts( const QVector<QgsPointXY> &splitLine, bool topologicalEditing = false ) SIP_DEPRECATED;
1450
1470 Q_INVOKABLE Qgis::GeometryOperationResult splitParts( const QgsPointSequence &splitLine, bool topologicalEditing = false );
1471
1492 Q_DECL_DEPRECATED Qgis::GeometryOperationResult splitFeatures( const QVector<QgsPointXY> &splitLine, bool topologicalEditing = false ) SIP_DEPRECATED;
1493
1513 Q_INVOKABLE Qgis::GeometryOperationResult splitFeatures( const QgsPointSequence &splitLine, bool topologicalEditing = false );
1514
1537 Q_INVOKABLE Qgis::GeometryOperationResult splitFeatures( const QgsCurve *curve, QgsPointSequence &topologyTestPoints SIP_OUT, bool preserveCircular = false, bool topologicalEditing = false );
1538
1552 int addTopologicalPoints( const QgsGeometry &geom );
1553
1570 Q_DECL_DEPRECATED int addTopologicalPoints( const QgsPointXY &p ) SIP_DEPRECATED;
1571
1588 int addTopologicalPoints( const QgsPoint &p );
1589
1606 int addTopologicalPoints( const QgsPointSequence &ps );
1607
1613 const QgsAbstractVectorLayerLabeling *labeling() const SIP_SKIP { return mLabeling; }
1614
1621
1625 void setLabeling( QgsAbstractVectorLayerLabeling *labeling SIP_TRANSFER );
1626
1628 bool isEditable() const final;
1629
1631 bool isSpatial() const final;
1632
1634 bool isModified() const override;
1635
1641 bool isAuxiliaryField( int index, int &srcIndex ) const;
1642
1644 void reload() final;
1645
1649 QgsMapLayerRenderer *createMapRenderer( QgsRenderContext &rendererContext ) final SIP_FACTORY;
1650
1651 QgsRectangle extent() const final;
1652 QgsRectangle sourceExtent() const final;
1653
1654 QgsBox3D extent3D() const final;
1655 QgsBox3D sourceExtent3D() const final;
1656
1663 QgsFields fields() const final;
1664
1668 Q_INVOKABLE inline QgsAttributeList attributeList() const { return mFields.allAttributesList(); }
1669
1673 QgsAttributeList primaryKeyAttributes() const;
1674
1680 long long featureCount() const final;
1681
1688 bool setReadOnly( bool readonly = true );
1689
1695 Q_INVOKABLE bool supportsEditing() const override;
1696
1717 Q_INVOKABLE bool changeGeometry( QgsFeatureId fid, QgsGeometry &geometry, bool skipDefaultValue = false );
1718
1751 Q_INVOKABLE bool changeAttributeValue( QgsFeatureId fid, int field, const QVariant &newValue, const QVariant &oldValue = QVariant(), bool skipDefaultValues = false, QgsVectorLayerToolsContext *context = nullptr );
1752
1789 Q_INVOKABLE bool changeAttributeValues( QgsFeatureId fid, const QgsAttributeMap &newValues, const QgsAttributeMap &oldValues = QgsAttributeMap(), bool skipDefaultValues = false, QgsVectorLayerToolsContext *context = nullptr );
1790
1800 Q_INVOKABLE bool addAttribute( const QgsField &field );
1801
1806 Q_INVOKABLE void setFieldAlias( int index, const QString &aliasString );
1807
1812 Q_INVOKABLE void removeFieldAlias( int index );
1813
1823 Q_INVOKABLE bool renameAttribute( int index, const QString &newName );
1824
1831 Q_INVOKABLE QString attributeAlias( int index ) const;
1832
1834 Q_INVOKABLE QString attributeDisplayName( int index ) const;
1835
1837 QgsStringMap attributeAliases() const;
1838
1839#ifndef SIP_RUN
1840
1846 void setFieldSplitPolicy( int index, Qgis::FieldDomainSplitPolicy policy );
1847
1853 void setFieldDuplicatePolicy( int index, Qgis::FieldDuplicatePolicy policy );
1854
1860 void setFieldMergePolicy( int index, Qgis::FieldDomainMergePolicy policy );
1861#else
1862
1869 void setFieldSplitPolicy( int index, Qgis::FieldDomainSplitPolicy policy );
1870
1871 % MethodCode
1872 if ( a0 < 0 || a0 >= sipCpp->fields().count() )
1873 {
1874 PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
1875 sipIsErr = 1;
1876 }
1877 else
1878 {
1879 sipCpp->setFieldSplitPolicy( a0, a1 );
1880 }
1881 % End
1882
1889 void setFieldDuplicatePolicy( int index, Qgis::FieldDuplicatePolicy policy );
1890
1891 % MethodCode
1892 if ( a0 < 0 || a0 >= sipCpp->fields().count() )
1893 {
1894 PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
1895 sipIsErr = 1;
1896 }
1897 else
1898 {
1899 sipCpp->setFieldDuplicatePolicy( a0, a1 );
1900 }
1901 % End
1902
1909 void setFieldMergePolicy( int index, Qgis::FieldDomainMergePolicy policy );
1910
1911 % MethodCode
1912 if ( a0 < 0 || a0 >= sipCpp->fields().count() )
1913 {
1914 PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
1915 sipIsErr = 1;
1916 }
1917 else
1918 {
1919 sipCpp->setFieldMergePolicy( a0, a1 );
1920 }
1921 % End
1922#endif
1923
1928 Q_DECL_DEPRECATED QSet<QString> excludeAttributesWms() const SIP_DEPRECATED;
1929
1934 Q_DECL_DEPRECATED void setExcludeAttributesWms( const QSet<QString> &att ) SIP_DEPRECATED;
1935
1940 Q_DECL_DEPRECATED QSet<QString> excludeAttributesWfs() const SIP_DEPRECATED;
1941
1946 Q_DECL_DEPRECATED void setExcludeAttributesWfs( const QSet<QString> &att ) SIP_DEPRECATED;
1947
1956 Q_INVOKABLE virtual bool deleteAttribute( int attr );
1957
1965 Q_INVOKABLE bool deleteAttributes( const QList<int> &attrs );
1966
1967 using QgsFeatureSink::addFeatures;
1968 bool addFeatures( QgsFeatureList &features, QgsFeatureSink::Flags flags = QgsFeatureSink::Flags() ) final;
1969
1980 Q_INVOKABLE bool deleteFeature( QgsFeatureId fid, QgsVectorLayer::DeleteContext *context = nullptr );
1981
1995 Q_INVOKABLE bool deleteFeatures( const QgsFeatureIds &fids, QgsVectorLayer::DeleteContext *context = nullptr );
1996
2020 Q_INVOKABLE bool commitChanges( bool stopEditing = true );
2021
2027 QStringList commitErrors() const;
2028
2038 Q_INVOKABLE bool rollBack( bool deleteBuffer = true );
2039
2046 QList<QgsRelation> referencingRelations( int idx ) const;
2047
2057 QList<QgsWeakRelation> weakRelations() const SIP_SKIP;
2058
2067 void setWeakRelations( const QList< QgsWeakRelation > &relations ) SIP_SKIP;
2068
2070 Q_INVOKABLE QgsVectorLayerEditBuffer *editBuffer() { return mEditBuffer; }
2071
2076 const QgsVectorLayerEditBuffer *editBuffer() const SIP_SKIP { return mEditBuffer; }
2077
2082 void beginEditCommand( const QString &text );
2083
2085 void endEditCommand();
2086
2088 void destroyEditCommand();
2089
2094 Q_DECL_DEPRECATED static void drawVertexMarker( double x, double y, QPainter &p, Qgis::VertexMarkerType type, int vertexSize );
2095
2104 void updateFields();
2105
2119 QVariant defaultValue( int index, const QgsFeature &feature = QgsFeature(),
2120 QgsExpressionContext *context = nullptr ) const;
2121
2132 void setDefaultValueDefinition( int index, const QgsDefaultValue &definition );
2133
2143 QgsDefaultValue defaultValueDefinition( int index ) const;
2144
2151 QgsFieldConstraints::Constraints fieldConstraints( int fieldIndex ) const;
2152
2157 QMap< QgsFieldConstraints::Constraint, QgsFieldConstraints::ConstraintStrength> fieldConstraintsAndStrength( int fieldIndex ) const;
2158
2167
2174 void removeFieldConstraint( int index, QgsFieldConstraints::Constraint constraint );
2175
2182 QString constraintExpression( int index ) const;
2183
2190 QString constraintDescription( int index ) const;
2191
2199 void setConstraintExpression( int index, const QString &expression, const QString &description = QString() );
2200
2206 void setFieldConfigurationFlags( int index, Qgis::FieldConfigurationFlags flags );
2207
2212 void setFieldConfigurationFlag( int index, Qgis::FieldConfigurationFlag flag, bool active );
2213
2219 Qgis::FieldConfigurationFlags fieldConfigurationFlags( int index ) const;
2220
2229 void setEditorWidgetSetup( int index, const QgsEditorWidgetSetup &setup );
2230
2239 QgsEditorWidgetSetup editorWidgetSetup( int index ) const;
2240
2252 QSet<QVariant> uniqueValues( int fieldIndex, int limit = -1 ) const final;
2253
2267 QStringList uniqueStringsMatching( int index, const QString &substring, int limit = -1,
2268 QgsFeedback *feedback = nullptr ) const;
2269
2284 QVariant minimumValue( int index ) const final;
2285
2300 QVariant maximumValue( int index ) const final;
2301
2302
2322 void minimumAndMaximumValue( int index, QVariant &minimum SIP_OUT, QVariant &maximum SIP_OUT ) const;
2323
2337 QVariant aggregate( Qgis::Aggregate aggregate,
2338 const QString &fieldOrExpression,
2339 const QgsAggregateCalculator::AggregateParameters &parameters = QgsAggregateCalculator::AggregateParameters(),
2340 QgsExpressionContext *context = nullptr,
2341 bool *ok = nullptr,
2342 QgsFeatureIds *fids = nullptr,
2343 QgsFeedback *feedback = nullptr,
2344 QString *error SIP_PYARGREMOVE = nullptr ) const;
2345
2347 void setFeatureBlendMode( QPainter::CompositionMode blendMode );
2349 QPainter::CompositionMode featureBlendMode() const;
2350
2351 QString htmlMetadata() const final;
2352
2357
2361 inline const QgsVectorSimplifyMethod &simplifyMethod() const { return mSimplifyMethod; }
2362
2367 bool simplifyDrawingCanbeApplied( const QgsRenderContext &renderContext, Qgis::VectorRenderingSimplificationFlag simplifyHint ) const;
2368
2375 QgsConditionalLayerStyles *conditionalStyles() const;
2376
2381 QgsAttributeTableConfig attributeTableConfig() const;
2382
2387 void setAttributeTableConfig( const QgsAttributeTableConfig &attributeTableConfig );
2388
2390
2391 QgsExpressionContextScope *createExpressionContextScope() const final SIP_FACTORY;
2392
2399 QgsEditFormConfig editFormConfig() const;
2400
2406 void setEditFormConfig( const QgsEditFormConfig &editFormConfig );
2407
2414 void setReadExtentFromXml( bool readExtentFromXml );
2415
2422 bool readExtentFromXml() const;
2423
2428 bool isEditCommandActive() const { return mEditCommandActive; }
2429
2435 QgsGeometryOptions *geometryOptions() const;
2436
2454 bool allowCommit() const SIP_SKIP;
2455
2473 void setAllowCommit( bool allowCommit ) SIP_SKIP;
2474
2480 QgsStoredExpressionManager *storedExpressionManager() { return mStoredExpressionManager; }
2481
2482 public slots:
2483
2491 void select( QgsFeatureId featureId );
2492
2500 Q_INVOKABLE void select( const QgsFeatureIds &featureIds );
2501
2509 void deselect( QgsFeatureId featureId );
2510
2518 Q_INVOKABLE void deselect( const QgsFeatureIds &featureIds );
2519
2526 Q_INVOKABLE void removeSelection();
2527
2538 void reselect();
2539
2546 virtual void updateExtents( bool force = false );
2547
2562 Q_INVOKABLE bool startEditing();
2563
2569 void setTransformContext( const QgsCoordinateTransformContext &transformContext ) override;
2570
2572
2573 bool accept( QgsStyleEntityVisitorInterface *visitor ) const override;
2574
2575 bool accept( QgsObjectEntityVisitorInterface *visitor, const QgsObjectVisitorContext &context ) const override;
2576
2577 signals:
2578
2586 void selectionChanged( const QgsFeatureIds &selected, const QgsFeatureIds &deselected, bool clearAndSelect );
2587
2594
2597
2600
2606 void beforeCommitChanges( bool stopEditing );
2607
2610
2616
2622
2631 void attributeAdded( int idx );
2632
2639 void beforeAddingExpressionField( const QString &fieldName );
2640
2649 void attributeDeleted( int idx );
2650
2658
2665
2675
2685 void featuresDeleted( const QgsFeatureIds &fids );
2686
2692
2698
2707 void attributeValueChanged( QgsFeatureId fid, int idx, const QVariant &value );
2708
2716 void geometryChanged( QgsFeatureId fid, const QgsGeometry &geometry );
2717
2719 void committedAttributesDeleted( const QString &layerId, const QgsAttributeList &deletedAttributes );
2721 void committedAttributesAdded( const QString &layerId, const QList<QgsField> &addedAttributes );
2723 void committedFeaturesAdded( const QString &layerId, const QgsFeatureList &addedFeatures );
2725 void committedFeaturesRemoved( const QString &layerId, const QgsFeatureIds &deletedFeatureIds );
2727 void committedAttributeValuesChanges( const QString &layerId, const QgsChangedAttributesMap &changedAttributesValues );
2729 void committedGeometriesChanges( const QString &layerId, const QgsGeometryMap &changedGeometries );
2730
2732 void labelingFontNotFound( QgsVectorLayer *layer, const QString &fontfamily );
2733
2735 void featureBlendModeChanged( QPainter::CompositionMode blendMode );
2736
2742 void editCommandStarted( const QString &text );
2743
2750
2757
2767 void readCustomSymbology( const QDomElement &element, QString &errorMessage );
2768
2778 void writeCustomSymbology( QDomElement &element, QDomDocument &doc, QString &errorMessage ) const;
2779
2785
2789 void raiseError( const QString &msg );
2790
2796
2805
2812
2818
2819 protected:
2821 void setExtent( const QgsRectangle &rect ) final;
2823 void setExtent3D( const QgsBox3D &rect ) final;
2824
2825 private slots:
2826 void invalidateSymbolCountedFlag();
2827 void onFeatureCounterCompleted();
2828 void onFeatureCounterTerminated();
2829 void onJoinedFieldsChanged();
2830 void onFeatureAdded( QgsFeatureId fid );
2831 void onFeatureDeleted( QgsFeatureId fid );
2832 void onRelationsLoaded();
2833 void onSymbolsCounted();
2834 void onDirtyTransaction( const QString &sql, const QString &name );
2835 void emitDataChanged();
2836
2837 private:
2838 void updateDefaultValues( QgsFeatureId fid, QgsFeature feature = QgsFeature(), QgsExpressionContext *context = nullptr );
2839
2849 bool isReadOnly() const final;
2850
2857 bool setDataProvider( QString const &provider, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() );
2858
2870 void setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) override;
2871
2873 void readSldLabeling( const QDomNode &node );
2874
2876 bool readSldTextSymbolizer( const QDomNode &node, QgsPalLayerSettings &settings ) const;
2877
2879 QgsAbstractVectorLayerLabeling *readLabelingFromCustomProperties();
2880
2881 bool deleteFeatureCascade( QgsFeatureId fid, DeleteContext *context = nullptr );
2882
2883#ifdef SIP_RUN
2884 QgsVectorLayer( const QgsVectorLayer &rhs );
2885#endif
2887 void minimumOrMaximumValue( int index, QVariant *minimum, QVariant *maximum ) const;
2888
2889 void createEditBuffer();
2890 void clearEditBuffer();
2891
2892 QgsConditionalLayerStyles *mConditionalStyles = nullptr;
2893 QgsVectorDataProvider *mDataProvider = nullptr;
2894 QgsVectorLayerSelectionProperties *mSelectionProperties = nullptr;
2895 QgsVectorLayerTemporalProperties *mTemporalProperties = nullptr;
2896 QgsVectorLayerElevationProperties *mElevationProperties = nullptr;
2897
2899 QString mDisplayExpression;
2900
2902 QgsActionManager *mActions = nullptr;
2903
2905 bool mDataSourceReadOnly = false;
2906
2913 bool mReadOnly = false;
2914
2920 QgsFeatureIds mSelectedFeatureIds;
2921
2925 QgsFeatureIds mPreviousSelectedFeatureIds;
2926
2928 QgsFields mFields;
2929
2931 QgsStringMap mAttributeAliasMap;
2932
2934 QMap<QString, QgsDefaultValue> mDefaultExpressionMap;
2935
2937 QMap< QString, Qgis::FieldDomainSplitPolicy > mAttributeSplitPolicy;
2938
2940 QMap< QString, Qgis::FieldDuplicatePolicy > mAttributeDuplicatePolicy;
2941
2943 QMap< QString, Qgis::FieldDomainMergePolicy > mAttributeMergePolicy;
2944
2946 QSet<int> mDefaultValueOnUpdateFields;
2947
2949 QMap< QString, QgsFieldConstraints::Constraints > mFieldConstraints;
2950
2952 QMap< QPair< QString, QgsFieldConstraints::Constraint >, QgsFieldConstraints::ConstraintStrength > mFieldConstraintStrength;
2953
2955 QMap< QString, QPair< QString, QString > > mFieldConstraintExpressions;
2956
2957 QMap< QString, Qgis::FieldConfigurationFlags > mFieldConfigurationFlags;
2958 QMap< QString, QgsEditorWidgetSetup > mFieldWidgetSetups;
2959
2961 QgsEditFormConfig mEditFormConfig;
2962
2965
2967 QgsFeatureRenderer *mRenderer = nullptr;
2968
2970 QgsVectorSimplifyMethod mSimplifyMethod;
2971
2973 QgsAbstractVectorLayerLabeling *mLabeling = nullptr;
2974
2976 bool mLabelsEnabled = false;
2977
2979 bool mLabelFontNotFoundNotified = false;
2980
2982 QPainter::CompositionMode mFeatureBlendMode = QPainter::CompositionMode_SourceOver;
2983
2985 bool mVertexMarkerOnlyForSelection = false;
2986
2987 QStringList mCommitErrors;
2988
2990 QgsVectorLayerEditBuffer *mEditBuffer = nullptr;
2994
2995 //stores information about joined layers
2996 QgsVectorLayerJoinBuffer *mJoinBuffer = nullptr;
2997
2999 QgsExpressionFieldBuffer *mExpressionFieldBuffer = nullptr;
3000
3001 //diagram rendering object. 0 if diagram drawing is disabled
3002 QgsDiagramRenderer *mDiagramRenderer = nullptr;
3003
3004 //stores infos about diagram placement (placement type, priority, position distance)
3005 QgsDiagramLayerSettings *mDiagramLayerSettings = nullptr;
3006
3007 mutable bool mValidExtent2D = false;
3008 mutable bool mLazyExtent2D = true;
3009 mutable bool mValidExtent3D = false;
3010 mutable bool mLazyExtent3D = true;
3011
3013 std::unique_ptr<QgsAuxiliaryLayer> mAuxiliaryLayer;
3014
3016 QString mAuxiliaryLayerKey;
3017
3018 // Features in renderer classes counted
3019 bool mSymbolFeatureCounted = false;
3020
3021 // Feature counts for each renderer legend key
3022 QHash<QString, long long> mSymbolFeatureCountMap;
3023 QHash<QString, QgsFeatureIds> mSymbolFeatureIdMap;
3024
3026 bool mEditCommandActive = false;
3027
3029 bool mCommitChangesActive = false;
3030
3031 bool mReadExtentFromXml;
3032 QgsRectangle mXmlExtent2D;
3033 QgsBox3D mXmlExtent3D;
3034
3035 QgsFeatureIds mDeletedFids;
3036
3037 QgsAttributeTableConfig mAttributeTableConfig;
3038
3039 mutable QMutex mFeatureSourceConstructorMutex;
3040
3041 QgsVectorLayerFeatureCounter *mFeatureCounter = nullptr;
3042
3043 std::unique_ptr<QgsGeometryOptions> mGeometryOptions;
3044
3045 bool mAllowCommit = true;
3046
3048 QgsStoredExpressionManager *mStoredExpressionManager = nullptr;
3049
3051
3053 bool mDataChangedFired = false;
3054
3055 QList<QgsWeakRelation> mWeakRelations;
3056
3057 bool mSetLegendFromStyle = false;
3058
3059 QList< QgsFeatureRendererGenerator * > mRendererGenerators;
3060
3062 QTimer *mRefreshRendererTimer = nullptr;
3063
3067 bool mLoadAllStoredStyle = false;
3068
3069};
3070
3071
3072
3073// clazy:excludeall=qstring-allocations
3074
3075#endif
Provides global constants and enumerations for use throughout the application.
Definition qgis.h:59
SpatialIndexPresence
Enumeration of spatial index presence states.
Definition qgis.h:577
VectorRenderingSimplificationFlag
Simplification flags for vector feature rendering.
Definition qgis.h:3087
FieldDomainMergePolicy
Merge policy for field domains.
Definition qgis.h:3982
FieldDomainSplitPolicy
Split policy for field domains.
Definition qgis.h:3965
GeometryType
The geometry types are used to group Qgis::WkbType in a coarse way.
Definition qgis.h:365
FieldDuplicatePolicy
Duplicate policy for fields.
Definition qgis.h:4002
VertexMarkerType
Editing vertex markers, used for showing vertices during a edit operation.
Definition qgis.h:1891
WkbType
The WKB type describes the number of dimensions a geometry has.
Definition qgis.h:280
@ Unknown
Unknown.
Definition qgis.h:281
FieldConfigurationFlag
Configuration flags for fields These flags are meant to be user-configurable and are not describing a...
Definition qgis.h:1779
QFlags< FieldConfigurationFlag > FieldConfigurationFlags
Configuration flags for fields These flags are meant to be user-configurable and are not describing a...
Definition qgis.h:1794
SelectBehavior
Specifies how a selection should be applied.
Definition qgis.h:1829
@ SetSelection
Set selection, removing any existing selection.
Definition qgis.h:1830
Abstract base class for simplifying geometries using a specific algorithm.
Abstract base class for objects which generate elevation profiles.
Interface for classes which can generate elevation profiles.
virtual QgsAbstractProfileGenerator * createProfileGenerator(const QgsProfileRequest &request)=0
Given a profile request, returns a new profile generator ready for generating elevation profiles.
Abstract base class - its implementations define different approaches to the labeling of a vector lay...
Storage and management of actions associated with a layer.
Utility class for calculating aggregates for a field (or expression) over the features from a vector ...
A container for configuration of the attribute table.
Allows managing the auxiliary storage for a vector layer.
Providing some utility methods to manage auxiliary storage.
A 3-dimensional box composed of x, y, z coordinates.
Definition qgsbox3d.h:45
Holds conditional style information for a layer.
Represents a coordinate reference system (CRS).
Contains information about the context in which a coordinate transform is executed.
Abstract base class for curved geometry type.
Definition qgscurve.h:36
Abstract base class for spatial data provider implementations.
Provides a container for managing client side default values for fields.
Stores the settings for rendering of all diagrams for a layer.
Evaluates and returns the diagram settings relating to a diagram for a specific feature.
Contains configuration settings for an editor form.
Holder for the widget type and its configuration for a field.
Manages an editor widget.
Abstract interface for generating an expression context.
virtual QgsExpressionContext createExpressionContext() const =0
This method needs to be reimplemented in all classes which implement this interface and return an exp...
Abstract interface for generating an expression context scope.
Single scope for storing variables and functions for use within a QgsExpressionContext.
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
Buffers information about expression fields for a vector layer.
Wrapper for iterator of features from vector data provider or vector layer.
bool nextFeature(QgsFeature &f)
Fetch next feature and stores in f, returns true on success.
An interface for objects which generate feature renderers for vector layers.
Abstract base class for all 2D vector feature renderers.
Wraps a request for features to a vector layer (or directly its vector data provider).
An interface for objects which accept features via addFeature(s) methods.
virtual bool addFeature(QgsFeature &feature, QgsFeatureSink::Flags flags=QgsFeatureSink::Flags())
Adds a single feature to the sink.
QFlags< Flag > Flags
An interface for objects which provide features via a getFeatures method.
virtual QSet< QVariant > uniqueValues(int fieldIndex, int limit=-1) const
Returns the set of unique values contained within the specified fieldIndex from this source.
virtual Qgis::WkbType wkbType() const =0
Returns the geometry type for features returned by this source.
virtual Qgis::SpatialIndexPresence hasSpatialIndex() const
Returns an enum value representing the presence of a valid spatial index on the source,...
virtual QgsFeatureIterator getFeatures(const QgsFeatureRequest &request=QgsFeatureRequest()) const =0
Returns an iterator for the features in the source.
virtual long long featureCount() const =0
Returns the number of features contained in the source, or -1 if the feature count is unknown.
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition qgsfeature.h:60
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition qgsfeedback.h:44
ConstraintStrength
Strength of constraints.
@ ConstraintStrengthHard
Constraint must be honored before feature can be accepted.
Constraint
Constraints which may be present on a field.
QFlags< Constraint > Constraints
Encapsulate a field in an attribute table or data source.
Definition qgsfield.h:56
Container of fields for a vector layer.
Definition qgsfields.h:46
Contains options to automatically adjust geometries to constraints on a layer.
A geometry is the spatial representation of a feature.
Base class for storage of map layer elevation properties.
Base class for utility classes that encapsulate information necessary for rendering of map layers.
Base class for storage of map layer selection properties.
Base class for storage of map layer temporal properties.
Base class for all map layer types.
Definition qgsmaplayer.h:83
QString name
Definition qgsmaplayer.h:87
virtual bool accept(QgsStyleEntityVisitorInterface *visitor) const
Accepts the specified symbology visitor, causing it to visit all symbols associated with the layer.
virtual bool setDependencies(const QSet< QgsMapLayerDependency > &layers)
Sets the list of dependencies.
virtual void setExtent3D(const QgsBox3D &box)
Sets the extent.
virtual QSet< QgsMapLayerDependency > dependencies() const
Gets the list of dependencies.
friend class QgsVectorLayer
QString id
Definition qgsmaplayer.h:86
QgsMapLayer(Qgis::LayerType type=Qgis::LayerType::Vector, const QString &name=QString(), const QString &source=QString())
Constructor for QgsMapLayer.
QPainter::CompositionMode blendMode() const
Returns the current blending mode for a layer.
virtual bool isEditable() const
Returns true if the layer can be edited.
QgsMapLayer::LayerFlags flags
Definition qgsmaplayer.h:99
virtual QgsMapLayer * clone() const =0
Returns a new instance equivalent to this one except for the id which is still unique.
virtual void setExtent(const QgsRectangle &rect)
Sets the extent.
virtual void setTransformContext(const QgsCoordinateTransformContext &transformContext)=0
Sets the coordinate transform context to transformContext.
Perform transforms between map coordinates and device coordinates.
An interface for classes which can visit various object entity (e.g.
A QgsObjectEntityVisitorInterface context object.
Contains settings for how a map layer will be labeled.
Represents a 2D point.
Definition qgspointxy.h:62
Point geometry type, with support for z-dimension and m-values.
Definition qgspoint.h:53
Encapsulates properties and constraints relating to fetching elevation profiles from different source...
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
Definition qgsproject.h:112
A container for the context for various read/write operations on objects.
A rectangle specified with double values.
Manages a set of relations between layers.
Represents a relationship between two vector layers.
Definition qgsrelation.h:42
Contains information about the context of a rendering operation.
A boolean settings entry.
A double settings entry.
A template class for enum and flag settings entry.
A feature renderer which renders all features with the same symbol.
Holds SLD export options and other information related to SLD export of a QGIS layer style.
Manages stored expressions regarding creation, modification and storing in the project.
An interface for classes which can visit style entity (e.g.
Abstract base class for all rendered symbols.
Definition qgssymbol.h:231
Base class for vector data providers.
Stores queued vector layer edit operations prior to committing changes to the layer's data provider.
Vector layer specific subclass of QgsMapLayerElevationProperties.
Counts the features in a QgsVectorLayer in task.
Manages joined fields for a vector layer.
Defines left outer join from our vector layer to some other vector layer.
Implementation of layer selection properties for vector layers.
Implementation of map layer temporal properties for vector layers.
Contains settings which reflect the context in which vector layer tool operations should be considere...
Represents a vector layer which manages a vector based dataset.
void committedFeaturesAdded(const QString &layerId, const QgsFeatureList &addedFeatures)
Emitted when features are added to the provider if not in transaction mode.
static const QgsSettingsEntryEnumFlag< Qgis::VectorRenderingSimplificationFlags > * settingsSimplifyDrawingHints
void labelingFontNotFound(QgsVectorLayer *layer, const QString &fontfamily)
Emitted when the font family defined for labeling layer is not found on system.
void featureBlendModeChanged(QPainter::CompositionMode blendMode)
Signal emitted when setFeatureBlendMode() is called.
Q_INVOKABLE QgsAttributeList attributeList() const
Returns list of attribute indexes.
void beforeRemovingExpressionField(int idx)
Will be emitted, when an expression field is going to be deleted from this vector layer.
void committedGeometriesChanges(const QString &layerId, const QgsGeometryMap &changedGeometries)
Emitted when geometry changes are saved to the provider if not in transaction mode.
void beforeCommitChanges(bool stopEditing)
Emitted before changes are committed to the data provider.
QgsVectorLayer(const QString &path=QString(), const QString &baseName=QString(), const QString &providerLib="ogr", const QgsVectorLayer::LayerOptions &options=QgsVectorLayer::LayerOptions())
Constructor - creates a vector layer.
QgsMapLayerTemporalProperties * temporalProperties() override
Returns the layer's temporal properties.
void attributeAdded(int idx)
Will be emitted, when a new attribute has been added to this vector layer.
QString capabilitiesString() const
Capabilities for this layer, comma separated and translated.
QgsAbstractVectorLayerLabeling * labeling()
Access to labeling configuration.
void allowCommitChanged()
Emitted whenever the allowCommit() property of this layer changes.
friend class QgsVectorLayerEditBuffer
void editCommandStarted(const QString &text)
Signal emitted when a new edit command has been started.
const QgsDiagramLayerSettings * diagramLayerSettings() const
const QgsVectorLayerJoinBuffer * joinBuffer() const
Returns a const pointer on join buffer object.
friend class QgsVectorLayerEditPassthrough
void setSimplifyMethod(const QgsVectorSimplifyMethod &simplifyMethod)
Sets the simplification settings for fast rendering of features.
void editCommandDestroyed()
Signal emitted, when an edit command is destroyed.
static const QgsSettingsEntryEnumFlag< Qgis::VectorSimplificationAlgorithm > * settingsSimplifyAlgorithm
QgsVectorLayer(const QgsVectorLayer &rhs)=delete
void featuresDeleted(const QgsFeatureIds &fids)
Emitted when features have been deleted.
Qgis::VectorLayerTypeFlags vectorLayerTypeFlags() const
Returns the vector layer type flags.
void subsetStringChanged()
Emitted when the layer's subset string has changed.
void committedFeaturesRemoved(const QString &layerId, const QgsFeatureIds &deletedFeatureIds)
Emitted when features are deleted from the provider if not in transaction mode.
static const QgsSettingsEntryDouble * settingsSimplifyMaxScale
bool hasMapTips() const final
Returns true if the layer contains map tips.
QgsStoredExpressionManager * storedExpressionManager()
Returns the manager of the stored expressions for this layer.
void symbolFeatureCountMapChanged()
Emitted when the feature count for symbols on this layer has been recalculated.
bool isEditCommandActive() const
Tests if an edit command is active.
void writeCustomSymbology(QDomElement &element, QDomDocument &doc, QString &errorMessage) const
Signal emitted whenever the symbology (QML-file) for this layer is being written.
const QgsAbstractVectorLayerLabeling * labeling() const
Access to const labeling configuration.
void setDisplayExpression(const QString &displayExpression)
Set the preview expression, used to create a human readable preview string.
static const QgsSettingsEntryBool * settingsSimplifyLocal
QgsMapLayerElevationProperties * elevationProperties() override
Returns the layer's elevation properties.
QString storageType() const
Returns the permanent storage type for this layer as a friendly name.
QString dataComment() const
Returns a description for this layer as defined in the data provider.
void attributeDeleted(int idx)
Will be emitted, when an attribute has been deleted from this vector layer.
QgsVectorLayer & operator=(QgsVectorLayer const &rhs)=delete
QgsFeatureRenderer * renderer()
Returns the feature renderer used for rendering the features in the layer in 2D map views.
void beforeEditingStarted()
Emitted before editing on this layer is started.
void committedAttributeValuesChanges(const QString &layerId, const QgsChangedAttributesMap &changedAttributesValues)
Emitted when attribute value changes are saved to the provider if not in transaction mode.
void committedAttributesAdded(const QString &layerId, const QList< QgsField > &addedAttributes)
Emitted when attributes are added to the provider if not in transaction mode.
Q_INVOKABLE QgsVectorLayerEditBuffer * editBuffer()
Buffer with uncommitted editing operations. Only valid after editing has been turned on.
void setEditFormConfig(const QgsEditFormConfig &editFormConfig)
Sets the editFormConfig (configuration) of the form used to represent this vector layer.
void committedAttributesDeleted(const QString &layerId, const QgsAttributeList &deletedAttributes)
Emitted when attributes are deleted from the provider if not in transaction mode.
QString displayExpression
void displayExpressionChanged()
Emitted when the display expression changes.
QString profileSourceId() const override
Returns a unique identifier for this profile source.
const QgsActionManager * actions() const
Returns all layer actions defined on this layer.
bool setReadOnly(bool readonly=true)
Makes layer read-only (editing disabled) or not.
void editFormConfigChanged()
Will be emitted whenever the edit form configuration of this layer changes.
QgsVectorLayerJoinBuffer * joinBuffer()
Returns the join buffer object.
QgsFeatureIterator getFeatures(const QgsFeatureRequest &request=QgsFeatureRequest()) const final
Queries the layer for features specified in request.
void afterCommitChanges()
Emitted after changes are committed to the data provider.
QgsActionManager * actions()
Returns all layer actions defined on this layer.
void raiseError(const QString &msg)
Signals an error related to this vector layer.
void editCommandEnded()
Signal emitted, when an edit command successfully ended.
void supportsEditingChanged()
Emitted when the read only state or the data provider of this layer is changed.
void readOnlyChanged()
Emitted when the read only state of this layer is changed.
void attributeValueChanged(QgsFeatureId fid, int idx, const QVariant &value)
Emitted whenever an attribute value change is done in the edit buffer.
QgsFeatureIterator getFeatures(const QgsFeatureIds &fids)
Queries the layer for the features with the given ids.
friend class QgsVectorLayerFeatureSource
virtual bool setSubsetString(const QString &subset)
Sets the string (typically sql) used to define a subset of the layer.
void afterRollBack()
Emitted after changes are rolled back.
const QgsVectorSimplifyMethod & simplifyMethod() const
Returns the simplification settings for fast rendering of features.
void selectionChanged(const QgsFeatureIds &selected, const QgsFeatureIds &deselected, bool clearAndSelect)
Emitted when selection was changed.
void beforeAddingExpressionField(const QString &fieldName)
Will be emitted, when an expression field is going to be added to this vector layer.
void updatedFields()
Emitted whenever the fields available from this layer have been changed.
void featureAdded(QgsFeatureId fid)
Emitted when a new feature has been added to the layer.
void featureDeleted(QgsFeatureId fid)
Emitted when a feature has been deleted.
void readCustomSymbology(const QDomElement &element, QString &errorMessage)
Signal emitted whenever the symbology (QML-file) for this layer is being read.
QString profileSourceName() const override
Returns a name for displaying this profile source in the elevation profile layer tree.
const QgsVectorLayerEditBuffer * editBuffer() const
Buffer with uncommitted editing operations.
bool isSqlQuery() const
Returns true if the layer is a query (SQL) layer.
void beforeRollBack()
Emitted before changes are rolled back.
QgsAbstractProfileSource * profileSource() override
Returns the layer's profile source if it has profile capabilities.
QString displayField() const
This is a shorthand for accessing the displayExpression if it is a simple field.
void geometryChanged(QgsFeatureId fid, const QgsGeometry &geometry)
Emitted whenever a geometry change is done in the edit buffer.
QgsFeatureIterator getFeatures(const QgsRectangle &rectangle)
Queries the layer for the features which intersect the specified rectangle.
QgsEditFormConfig editFormConfig
const QgsFeatureRenderer * renderer() const
Returns the feature renderer used for rendering the features in the layer in 2D map views.
void beforeModifiedCheck() const
Emitted when the layer is checked for modifications. Use for last-minute additions.
Q_INVOKABLE QgsFeature getFeature(QgsFeatureId fid) const
Queries the layer for the feature with the given id.
const QgsDiagramRenderer * diagramRenderer() const
QgsMapLayerSelectionProperties * selectionProperties() override
Returns the layer's selection properties.
QgsVectorDataProvider * dataProvider() final
Returns the layer's data provider, it may be nullptr.
static const QgsSettingsEntryDouble * settingsSimplifyDrawingTol
friend class QgsVectorLayerEditBufferGroup
Contains settings for simplifying geometries fetched from a vector layer.
Represent a QgsRelation with possibly unresolved layers or unmatched fields.
QMap< QString, QString > QgsStringMap
Definition qgis.h:7413
#define SIP_DEPRECATED
Definition qgis_sip.h:114
#define SIP_SKIP
Definition qgis_sip.h:134
#define SIP_PYNAME(name)
Definition qgis_sip.h:89
#define SIP_PYARGREMOVE
Definition qgis_sip.h:159
#define SIP_TRANSFER
Definition qgis_sip.h:36
#define SIP_OUT
Definition qgis_sip.h:58
#define SIP_FACTORY
Definition qgis_sip.h:84
QVector< QgsPoint > QgsPointSequence
QMap< int, QVariant > QgsAttributeMap
QMap< QgsFeatureId, QgsGeometry > QgsGeometryMap
QMap< QgsFeatureId, QgsAttributeMap > QgsChangedAttributesMap
QList< QgsFeature > QgsFeatureList
QSet< QgsFeatureId > QgsFeatureIds
qint64 QgsFeatureId
64 bit feature ids negative numbers are used for uncommitted/newly added features
QList< int > QgsAttributeList
Definition qgsfield.h:30
QSet< int > QgsAttributeIds
QList< int > QgsAttributeList
Context for cascade delete features.
DeleteContext(bool cascade=false, QgsProject *project=nullptr)
Constructor for DeleteContext.
QMap< QgsVectorLayer *, QgsFeatureIds > mHandledFeatures
Setting options for loading vector layers.
bool readExtentFromXml
If true, the layer extent will be read from XML (i.e.
bool skipCrsValidation
Controls whether the layer is allowed to have an invalid/unknown CRS.
LayerOptions(bool loadDefaultStyle=true, bool readExtentFromXml=false)
Constructor for LayerOptions.
bool forceReadOnly
Controls whether the layer is forced to be load as Read Only.
bool loadDefaultStyle
Set to true if the default layer style should be loaded.
QgsCoordinateTransformContext transformContext
Coordinate transform context.
LayerOptions(const QgsCoordinateTransformContext &transformContext, bool loadDefaultStyle=true, bool readExtentFromXml=false)
Constructor for LayerOptions.
QgsCoordinateReferenceSystem fallbackCrs
Fallback layer coordinate reference system.
Qgis::WkbType fallbackWkbType
Fallback geometry type.
bool loadAllStoredStyles
Controls whether the stored styles will be all loaded.