QGIS API Documentation 3.99.0-Master (a26b91b364d)
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_core.h"
22#include <QMap>
23#include <QSet>
24#include <QList>
25#include <QStringList>
26#include <QFont>
27#include <QMutex>
28
29#include "qgis.h"
30#include "qgsmaplayer.h"
31#include "qgsfeature.h"
32#include "qgsfeaturerequest.h"
33#include "qgsfeaturesource.h"
34#include "qgsfields.h"
37#include "qgseditformconfig.h"
40#include "qgsfeatureiterator.h"
46
47class QPainter;
48class QImage;
49
53class QgsCurve;
59class QgsGeometry;
60class QgsGeometryVertexIndex;
61class QgsMapToPixel;
62class QgsRectangle;
63class QgsRectangle;
64class QgsRelation;
65class QgsWeakRelation;
69class QgsSymbol;
76class QgsPoint;
77class QgsFeedback;
86
87#ifndef SIP_RUN
88template<class T>
90#endif
93
94
95typedef QList<int> QgsAttributeList;
96typedef QSet<int> QgsAttributeIds;
97
98// TODO QGIS4: Remove virtual from non-inherited methods (like isModified)
99
402{
403 Q_OBJECT
404
405 Q_PROPERTY( QString subsetString READ subsetString WRITE setSubsetString NOTIFY subsetStringChanged )
406 Q_PROPERTY( QString displayExpression READ displayExpression WRITE setDisplayExpression NOTIFY displayExpressionChanged )
407 Q_PROPERTY( QgsEditFormConfig editFormConfig READ editFormConfig WRITE setEditFormConfig NOTIFY editFormConfigChanged )
408 Q_PROPERTY( bool readOnly READ isReadOnly WRITE setReadOnly NOTIFY readOnlyChanged )
409 Q_PROPERTY( bool supportsEditing READ supportsEditing NOTIFY supportsEditingChanged )
410 Q_PROPERTY( QgsFields fields READ fields NOTIFY updatedFields )
411
412 public:
413
414 static const QgsSettingsEntryBool *settingsSimplifyLocal SIP_SKIP;
415
416 static const QgsSettingsEntryDouble *settingsSimplifyMaxScale SIP_SKIP;
417 static const QgsSettingsEntryDouble *settingsSimplifyDrawingTol SIP_SKIP;
418 static const QgsSettingsEntryEnumFlag<Qgis::VectorSimplificationAlgorithm> *settingsSimplifyAlgorithm SIP_SKIP;
419 static const QgsSettingsEntryEnumFlag<Qgis::VectorRenderingSimplificationFlags> *settingsSimplifyDrawingHints SIP_SKIP;
420
425 {
426
430 explicit LayerOptions( bool loadDefaultStyle = true,
431 bool readExtentFromXml = false )
432 : loadDefaultStyle( loadDefaultStyle )
433 , readExtentFromXml( readExtentFromXml )
434 {}
435
440 explicit LayerOptions( const QgsCoordinateTransformContext &transformContext,
441 bool loadDefaultStyle = true,
442 bool readExtentFromXml = false
443 )
444 : loadDefaultStyle( loadDefaultStyle )
445 , readExtentFromXml( readExtentFromXml )
446 , transformContext( transformContext )
447 {}
448
450 bool loadDefaultStyle = true;
451
456 bool readExtentFromXml = false;
457
463
476
489
503 bool skipCrsValidation = false;
504
516 bool forceReadOnly = false;
517
530 bool loadAllStoredStyles = false;
531 };
532
537 struct CORE_EXPORT DeleteContext
538 {
539
543 explicit DeleteContext( bool cascade = false, QgsProject *project = nullptr ): cascade( cascade ), project( project ) {}
544
551 QList<QgsVectorLayer *> handledLayers( bool includeAuxiliaryLayers = true ) const;
552
556 QgsFeatureIds handledFeatures( QgsVectorLayer *layer ) const;
557
558 QMap<QgsVectorLayer *, QgsFeatureIds> mHandledFeatures SIP_SKIP;
561 };
562
576 explicit QgsVectorLayer( const QString &path = QString(), const QString &baseName = QString(),
577 const QString &providerLib = "ogr", const QgsVectorLayer::LayerOptions &options = QgsVectorLayer::LayerOptions() );
578
579 ~QgsVectorLayer() override;
580
581 QgsVectorLayer( const QgsVectorLayer &rhs ) = delete;
582 QgsVectorLayer &operator=( QgsVectorLayer const &rhs ) = delete;
583
584#ifdef SIP_RUN
585 SIP_PYOBJECT __repr__();
586 % MethodCode
587 QString str = QStringLiteral( "<QgsVectorLayer: '%1' (%2)>" ).arg( sipCpp->name(), sipCpp->dataProvider() ? sipCpp->dataProvider()->name() : QStringLiteral( "Invalid" ) );
588 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
589 % End
590#endif
591
599 QgsVectorLayer *clone() const override SIP_FACTORY;
600
605 QString storageType() const;
606
610 QString capabilitiesString() const;
611
612
622 bool isSqlQuery() const;
623
630 Qgis::VectorLayerTypeFlags vectorLayerTypeFlags() const;
631
632
636 QString dataComment() const;
637
645 QString displayField() const;
646
654 void setDisplayExpression( const QString &displayExpression );
655
662 QString displayExpression() const;
663
664 bool hasMapTips() const FINAL;
665
666 QgsVectorDataProvider *dataProvider() FINAL;
667 const QgsVectorDataProvider *dataProvider() const FINAL SIP_SKIP;
668 QgsMapLayerSelectionProperties *selectionProperties() override;
669 QgsMapLayerTemporalProperties *temporalProperties() override;
670 QgsMapLayerElevationProperties *elevationProperties() override;
671 QgsAbstractProfileSource *profileSource() override {return this;}
673
684 void setProviderEncoding( const QString &encoding );
685
687 void setCoordinateSystem();
688
694 bool addJoin( const QgsVectorLayerJoinInfo &joinInfo );
695
700 bool removeJoin( const QString &joinLayerId );
701
705 QgsVectorLayerJoinBuffer *joinBuffer() { return mJoinBuffer; }
706
711 const QgsVectorLayerJoinBuffer *joinBuffer() const { return mJoinBuffer; } SIP_SKIP;
712
713 const QList<QgsVectorLayerJoinInfo> vectorJoins() const;
714
722 bool setDependencies( const QSet<QgsMapLayerDependency> &layers ) FINAL;
723
730 QSet<QgsMapLayerDependency> dependencies() const FINAL;
731
741 int addExpressionField( const QString &exp, const QgsField &fld );
742
749 void removeExpressionField( int index );
750
759 QString expressionField( int index ) const;
760
769 void updateExpressionField( int index, const QString &exp );
770
777 QgsActionManager *actions() { return mActions; }
778
784 const QgsActionManager *actions() const SIP_SKIP { return mActions; }
785
791 int selectedFeatureCount() const;
792
802 Q_INVOKABLE void selectByRect( QgsRectangle &rect, Qgis::SelectBehavior behavior = Qgis::SelectBehavior::SetSelection );
803
813 Q_INVOKABLE void selectByExpression( const QString &expression, Qgis::SelectBehavior behavior = Qgis::SelectBehavior::SetSelection, QgsExpressionContext *context = nullptr );
814
824 Q_INVOKABLE void selectByIds( const QgsFeatureIds &ids, Qgis::SelectBehavior behavior = Qgis::SelectBehavior::SetSelection );
825
837 Q_INVOKABLE void modifySelection( const QgsFeatureIds &selectIds, const QgsFeatureIds &deselectIds );
838
840 Q_INVOKABLE void invertSelection();
841
843 Q_INVOKABLE void selectAll();
844
852 Q_INVOKABLE void invertSelectionInRectangle( QgsRectangle &rect );
853
866 Q_INVOKABLE QgsFeatureList selectedFeatures() const;
867
883 QgsFeatureIterator getSelectedFeatures( QgsFeatureRequest request = QgsFeatureRequest() ) const;
884
892 Q_INVOKABLE const QgsFeatureIds &selectedFeatureIds() const;
893
895 Q_INVOKABLE QgsRectangle boundingBoxOfSelected() const;
896
903 bool labelsEnabled() const;
904
914 void setLabelsEnabled( bool enabled );
915
920 bool diagramsEnabled() const;
921
923 void setDiagramRenderer( QgsDiagramRenderer *r SIP_TRANSFER );
924 const QgsDiagramRenderer *diagramRenderer() const { return mDiagramRenderer; }
925
926 void setDiagramLayerSettings( const QgsDiagramLayerSettings &s );
927 const QgsDiagramLayerSettings *diagramLayerSettings() const { return mDiagramLayerSettings; }
928
935 QgsFeatureRenderer *renderer() { return mRenderer; }
936
944 const QgsFeatureRenderer *renderer() const SIP_SKIP { return mRenderer; }
945
952 void setRenderer( QgsFeatureRenderer *r SIP_TRANSFER );
953
963 void addFeatureRendererGenerator( QgsFeatureRendererGenerator *generator SIP_TRANSFER );
964
974 void removeFeatureRendererGenerator( const QString &id );
975
983 QList< const QgsFeatureRendererGenerator * > featureRendererGenerators() const;
984
986 Q_INVOKABLE Qgis::GeometryType geometryType() const;
987
989 Q_INVOKABLE Qgis::WkbType wkbType() const FINAL;
990
991 QgsCoordinateReferenceSystem sourceCrs() const FINAL;
992 QString sourceName() const FINAL;
993
998 bool readXml( const QDomNode &layer_node, QgsReadWriteContext &context ) FINAL;
999
1004 bool writeXml( QDomNode &layer_node, QDomDocument &doc, const QgsReadWriteContext &context ) const FINAL;
1005
1006 QString encodedSource( const QString &source, const QgsReadWriteContext &context ) const FINAL;
1007 QString decodedSource( const QString &source, const QString &provider, const QgsReadWriteContext &context ) const FINAL;
1008
1012 void resolveReferences( QgsProject *project ) FINAL;
1013
1026 bool loadAuxiliaryLayer( const QgsAuxiliaryStorage &storage, const QString &key = QString() );
1027
1036 void setAuxiliaryLayer( QgsAuxiliaryLayer *layer SIP_TRANSFER = nullptr );
1037
1042 QgsAuxiliaryLayer *auxiliaryLayer();
1043
1048 const QgsAuxiliaryLayer *auxiliaryLayer() const SIP_SKIP;
1049
1050 bool readSymbology( const QDomNode &layerNode, QString &errorMessage,
1051 QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories = QgsMapLayer::AllStyleCategories ) FINAL;
1052 bool readStyle( const QDomNode &node, QString &errorMessage,
1053 QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories = QgsMapLayer::AllStyleCategories ) FINAL;
1054 bool writeSymbology( QDomNode &node, QDomDocument &doc, QString &errorMessage,
1055 const QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories = QgsMapLayer::AllStyleCategories ) const FINAL;
1056 bool writeStyle( QDomNode &node, QDomDocument &doc, QString &errorMessage,
1057 const QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories = QgsMapLayer::AllStyleCategories ) const FINAL;
1058
1068 Q_DECL_DEPRECATED bool writeSld( QDomNode &node, QDomDocument &doc, QString &errorMessage, const QVariantMap &props = QVariantMap() ) const SIP_DEPRECATED;
1069
1078 bool writeSld( QDomNode &node, QDomDocument &doc, QgsSldExportContext &context ) const;
1079
1080 bool readSld( const QDomNode &node, QString &errorMessage ) FINAL;
1081
1087 long long featureCount( const QString &legendKey ) const;
1088
1095 QgsFeatureIds symbolFeatureIds( const QString &legendKey ) const;
1096
1107 Qgis::FeatureAvailability hasFeatures() const FINAL;
1108
1109 QString loadDefaultStyle( bool &resultFlag SIP_OUT ) FINAL;
1110
1123 QgsVectorLayerFeatureCounter *countSymbolFeatures( bool storeSymbolFids = false );
1124
1132 virtual bool setSubsetString( const QString &subset );
1133
1138 virtual QString subsetString() const;
1139
1145 QgsFeatureIterator getFeatures( const QgsFeatureRequest &request = QgsFeatureRequest() ) const FINAL;
1146
1150 inline QgsFeatureIterator getFeatures( const QString &expression )
1151 {
1152 return getFeatures( QgsFeatureRequest( expression ) );
1153 }
1154
1159 Q_INVOKABLE inline QgsFeature getFeature( QgsFeatureId fid ) const
1160 {
1161 QgsFeature feature;
1162 getFeatures( QgsFeatureRequest( fid ) ).nextFeature( feature );
1163 return feature;
1164 }
1165
1170 QgsGeometry getGeometry( QgsFeatureId fid ) const;
1171
1176 {
1177 return getFeatures( QgsFeatureRequest( fids ) );
1178 }
1179
1184 {
1185 return getFeatures( QgsFeatureRequest( rectangle ) );
1186 }
1187
1189
1215 bool updateFeature( QgsFeature &feature, bool skipDefaultValues = false );
1216
1228 bool insertVertex( double x, double y, QgsFeatureId atFeatureId, int beforeVertex );
1229
1241 bool insertVertex( const QgsPoint &point, QgsFeatureId atFeatureId, int beforeVertex );
1242
1253 bool moveVertex( double x, double y, QgsFeatureId atFeatureId, int atVertex );
1254
1265 bool moveVertex( const QgsPoint &p, QgsFeatureId atFeatureId, int atVertex ) SIP_PYNAME( moveVertexV2 );
1266
1276 Qgis::VectorEditResult deleteVertex( QgsFeatureId featureId, int vertex );
1277
1285 Q_INVOKABLE bool deleteSelectedFeatures( int *deletedCount = nullptr, QgsVectorLayer::DeleteContext *context = nullptr );
1286
1307 Q_DECL_DEPRECATED Qgis::GeometryOperationResult addRing( const QVector<QgsPointXY> &ring, QgsFeatureId *featureId = nullptr ) SIP_DEPRECATED;
1308
1309
1329 Q_INVOKABLE Qgis::GeometryOperationResult addRing( const QgsPointSequence &ring, QgsFeatureId *featureId = nullptr );
1330
1351 Q_INVOKABLE Qgis::GeometryOperationResult addRing( QgsCurve *ring SIP_TRANSFER, QgsFeatureId *featureId = nullptr ) SIP_PYNAME( addCurvedRing );
1352
1372 Q_DECL_DEPRECATED Qgis::GeometryOperationResult addPart( const QList<QgsPointXY> &ring ) SIP_DEPRECATED;
1373
1374#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
1375
1396 Q_DECL_DEPRECATED Qgis::GeometryOperationResult addPart( const QVector<QgsPointXY> &ring ) SIP_PYNAME( addPartV2 ) SIP_DEPRECATED;
1397#endif
1398
1418 Q_INVOKABLE Qgis::GeometryOperationResult addPart( const QgsPointSequence &ring ) SIP_PYNAME( addPartV2 );
1419
1430 Q_INVOKABLE Qgis::GeometryOperationResult addPart( QgsCurve *ring SIP_TRANSFER ) SIP_PYNAME( addCurvedPart );
1431
1443 Q_INVOKABLE int translateFeature( QgsFeatureId featureId, double dx, double dy );
1444
1465 Q_DECL_DEPRECATED Qgis::GeometryOperationResult splitParts( const QVector<QgsPointXY> &splitLine, bool topologicalEditing = false ) SIP_DEPRECATED;
1466
1486 Q_INVOKABLE Qgis::GeometryOperationResult splitParts( const QgsPointSequence &splitLine, bool topologicalEditing = false );
1487
1508 Q_DECL_DEPRECATED Qgis::GeometryOperationResult splitFeatures( const QVector<QgsPointXY> &splitLine, bool topologicalEditing = false ) SIP_DEPRECATED;
1509
1529 Q_INVOKABLE Qgis::GeometryOperationResult splitFeatures( const QgsPointSequence &splitLine, bool topologicalEditing = false );
1530
1553 Q_INVOKABLE Qgis::GeometryOperationResult splitFeatures( const QgsCurve *curve, QgsPointSequence &topologyTestPoints SIP_OUT, bool preserveCircular = false, bool topologicalEditing = false );
1554
1568 int addTopologicalPoints( const QgsGeometry &geom );
1569
1586 Q_DECL_DEPRECATED int addTopologicalPoints( const QgsPointXY &p ) SIP_DEPRECATED;
1587
1604 int addTopologicalPoints( const QgsPoint &p );
1605
1622 int addTopologicalPoints( const QgsPointSequence &ps );
1623
1629 const QgsAbstractVectorLayerLabeling *labeling() const SIP_SKIP { return mLabeling; }
1630
1637
1641 void setLabeling( QgsAbstractVectorLayerLabeling *labeling SIP_TRANSFER );
1642
1644 bool isEditable() const FINAL;
1645
1647 bool isSpatial() const FINAL;
1648
1650 bool isModified() const override;
1651
1657 bool isAuxiliaryField( int index, int &srcIndex ) const;
1658
1660 void reload() FINAL;
1661
1665 QgsMapLayerRenderer *createMapRenderer( QgsRenderContext &rendererContext ) FINAL SIP_FACTORY;
1666
1667 QgsRectangle extent() const FINAL;
1668 QgsRectangle sourceExtent() const FINAL;
1669
1670 QgsBox3D extent3D() const FINAL;
1671 QgsBox3D sourceExtent3D() const FINAL;
1672
1679 QgsFields fields() const FINAL;
1680
1684 Q_INVOKABLE inline QgsAttributeList attributeList() const { return mFields.allAttributesList(); }
1685
1689 QgsAttributeList primaryKeyAttributes() const;
1690
1696 long long featureCount() const FINAL;
1697
1704 bool setReadOnly( bool readonly = true );
1705
1711 bool supportsEditing() const override;
1712
1733 bool changeGeometry( QgsFeatureId fid, QgsGeometry &geometry, bool skipDefaultValue = false );
1734
1767 Q_INVOKABLE bool changeAttributeValue( QgsFeatureId fid, int field, const QVariant &newValue, const QVariant &oldValue = QVariant(), bool skipDefaultValues = false, QgsVectorLayerToolsContext *context = nullptr );
1768
1805 Q_INVOKABLE bool changeAttributeValues( QgsFeatureId fid, const QgsAttributeMap &newValues, const QgsAttributeMap &oldValues = QgsAttributeMap(), bool skipDefaultValues = false, QgsVectorLayerToolsContext *context = nullptr );
1806
1816 bool addAttribute( const QgsField &field );
1817
1822 void setFieldAlias( int index, const QString &aliasString );
1823
1828 void removeFieldAlias( int index );
1829
1839 bool renameAttribute( int index, const QString &newName );
1840
1847 QString attributeAlias( int index ) const;
1848
1850 QString attributeDisplayName( int index ) const;
1851
1853 QgsStringMap attributeAliases() const;
1854
1855#ifndef SIP_RUN
1856
1862 void setFieldSplitPolicy( int index, Qgis::FieldDomainSplitPolicy policy );
1863
1869 void setFieldDuplicatePolicy( int index, Qgis::FieldDuplicatePolicy policy );
1870
1876 void setFieldMergePolicy( int index, Qgis::FieldDomainMergePolicy policy );
1877#else
1878
1885 void setFieldSplitPolicy( int index, Qgis::FieldDomainSplitPolicy policy );
1886
1887 % MethodCode
1888 if ( a0 < 0 || a0 >= sipCpp->fields().count() )
1889 {
1890 PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
1891 sipIsErr = 1;
1892 }
1893 else
1894 {
1895 sipCpp->setFieldSplitPolicy( a0, a1 );
1896 }
1897 % End
1898
1905 void setFieldDuplicatePolicy( int index, Qgis::FieldDuplicatePolicy policy );
1906
1907 % MethodCode
1908 if ( a0 < 0 || a0 >= sipCpp->fields().count() )
1909 {
1910 PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
1911 sipIsErr = 1;
1912 }
1913 else
1914 {
1915 sipCpp->setFieldDuplicatePolicy( a0, a1 );
1916 }
1917 % End
1918
1925 void setFieldMergePolicy( int index, Qgis::FieldDomainMergePolicy policy );
1926
1927 % MethodCode
1928 if ( a0 < 0 || a0 >= sipCpp->fields().count() )
1929 {
1930 PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
1931 sipIsErr = 1;
1932 }
1933 else
1934 {
1935 sipCpp->setFieldMergePolicy( a0, a1 );
1936 }
1937 % End
1938#endif
1939
1944 Q_DECL_DEPRECATED QSet<QString> excludeAttributesWms() const SIP_DEPRECATED;
1945
1950 Q_DECL_DEPRECATED void setExcludeAttributesWms( const QSet<QString> &att ) SIP_DEPRECATED;
1951
1956 Q_DECL_DEPRECATED QSet<QString> excludeAttributesWfs() const SIP_DEPRECATED;
1957
1962 Q_DECL_DEPRECATED void setExcludeAttributesWfs( const QSet<QString> &att ) SIP_DEPRECATED;
1963
1972 virtual bool deleteAttribute( int attr );
1973
1981 bool deleteAttributes( const QList<int> &attrs );
1982
1983 bool addFeatures( QgsFeatureList &features, QgsFeatureSink::Flags flags = QgsFeatureSink::Flags() ) FINAL;
1984
1995 Q_INVOKABLE bool deleteFeature( QgsFeatureId fid, QgsVectorLayer::DeleteContext *context = nullptr );
1996
2010 Q_INVOKABLE bool deleteFeatures( const QgsFeatureIds &fids, QgsVectorLayer::DeleteContext *context = nullptr );
2011
2035 Q_INVOKABLE bool commitChanges( bool stopEditing = true );
2036
2042 QStringList commitErrors() const;
2043
2053 Q_INVOKABLE bool rollBack( bool deleteBuffer = true );
2054
2061 QList<QgsRelation> referencingRelations( int idx ) const;
2062
2072 QList<QgsWeakRelation> weakRelations() const SIP_SKIP;
2073
2082 void setWeakRelations( const QList< QgsWeakRelation > &relations ) SIP_SKIP;
2083
2085 Q_INVOKABLE QgsVectorLayerEditBuffer *editBuffer() { return mEditBuffer; }
2086
2091 const QgsVectorLayerEditBuffer *editBuffer() const SIP_SKIP { return mEditBuffer; }
2092
2097 void beginEditCommand( const QString &text );
2098
2100 void endEditCommand();
2101
2103 void destroyEditCommand();
2104
2109 Q_DECL_DEPRECATED static void drawVertexMarker( double x, double y, QPainter &p, Qgis::VertexMarkerType type, int vertexSize );
2110
2119 void updateFields();
2120
2134 QVariant defaultValue( int index, const QgsFeature &feature = QgsFeature(),
2135 QgsExpressionContext *context = nullptr ) const;
2136
2147 void setDefaultValueDefinition( int index, const QgsDefaultValue &definition );
2148
2158 QgsDefaultValue defaultValueDefinition( int index ) const;
2159
2166 QgsFieldConstraints::Constraints fieldConstraints( int fieldIndex ) const;
2167
2172 QMap< QgsFieldConstraints::Constraint, QgsFieldConstraints::ConstraintStrength> fieldConstraintsAndStrength( int fieldIndex ) const;
2173
2182
2189 void removeFieldConstraint( int index, QgsFieldConstraints::Constraint constraint );
2190
2197 QString constraintExpression( int index ) const;
2198
2205 QString constraintDescription( int index ) const;
2206
2214 void setConstraintExpression( int index, const QString &expression, const QString &description = QString() );
2215
2221 void setFieldConfigurationFlags( int index, Qgis::FieldConfigurationFlags flags );
2222
2227 void setFieldConfigurationFlag( int index, Qgis::FieldConfigurationFlag flag, bool active );
2228
2234 Qgis::FieldConfigurationFlags fieldConfigurationFlags( int index ) const;
2235
2244 void setEditorWidgetSetup( int index, const QgsEditorWidgetSetup &setup );
2245
2254 QgsEditorWidgetSetup editorWidgetSetup( int index ) const;
2255
2267 QSet<QVariant> uniqueValues( int fieldIndex, int limit = -1 ) const FINAL;
2268
2282 QStringList uniqueStringsMatching( int index, const QString &substring, int limit = -1,
2283 QgsFeedback *feedback = nullptr ) const;
2284
2299 QVariant minimumValue( int index ) const FINAL;
2300
2315 QVariant maximumValue( int index ) const FINAL;
2316
2317
2337 void minimumAndMaximumValue( int index, QVariant &minimum SIP_OUT, QVariant &maximum SIP_OUT ) const;
2338
2352 QVariant aggregate( Qgis::Aggregate aggregate,
2353 const QString &fieldOrExpression,
2354 const QgsAggregateCalculator::AggregateParameters &parameters = QgsAggregateCalculator::AggregateParameters(),
2355 QgsExpressionContext *context = nullptr,
2356 bool *ok = nullptr,
2357 QgsFeatureIds *fids = nullptr,
2358 QgsFeedback *feedback = nullptr,
2359 QString *error SIP_PYARGREMOVE = nullptr ) const;
2360
2362 void setFeatureBlendMode( QPainter::CompositionMode blendMode );
2364 QPainter::CompositionMode featureBlendMode() const;
2365
2366 QString htmlMetadata() const FINAL;
2367
2371 void setSimplifyMethod( const QgsVectorSimplifyMethod &simplifyMethod ) { mSimplifyMethod = simplifyMethod; }
2372
2376 inline const QgsVectorSimplifyMethod &simplifyMethod() const { return mSimplifyMethod; }
2377
2382 bool simplifyDrawingCanbeApplied( const QgsRenderContext &renderContext, Qgis::VectorRenderingSimplificationFlag simplifyHint ) const;
2383
2390 QgsConditionalLayerStyles *conditionalStyles() const;
2391
2396 QgsAttributeTableConfig attributeTableConfig() const;
2397
2402 void setAttributeTableConfig( const QgsAttributeTableConfig &attributeTableConfig );
2403
2405
2406 QgsExpressionContextScope *createExpressionContextScope() const FINAL SIP_FACTORY;
2407
2414 QgsEditFormConfig editFormConfig() const;
2415
2421 void setEditFormConfig( const QgsEditFormConfig &editFormConfig );
2422
2429 void setReadExtentFromXml( bool readExtentFromXml );
2430
2437 bool readExtentFromXml() const;
2438
2443 bool isEditCommandActive() const { return mEditCommandActive; }
2444
2450 QgsGeometryOptions *geometryOptions() const;
2451
2469 bool allowCommit() const SIP_SKIP;
2470
2488 void setAllowCommit( bool allowCommit ) SIP_SKIP;
2489
2495 QgsStoredExpressionManager *storedExpressionManager() { return mStoredExpressionManager; }
2496
2497 public slots:
2498
2506 void select( QgsFeatureId featureId );
2507
2515 Q_INVOKABLE void select( const QgsFeatureIds &featureIds );
2516
2524 void deselect( QgsFeatureId featureId );
2525
2533 Q_INVOKABLE void deselect( const QgsFeatureIds &featureIds );
2534
2541 Q_INVOKABLE void removeSelection();
2542
2553 void reselect();
2554
2561 virtual void updateExtents( bool force = false );
2562
2577 Q_INVOKABLE bool startEditing();
2578
2584 virtual void setTransformContext( const QgsCoordinateTransformContext &transformContext ) override;
2585
2587
2588 bool accept( QgsStyleEntityVisitorInterface *visitor ) const override;
2589
2590 signals:
2591
2599 void selectionChanged( const QgsFeatureIds &selected, const QgsFeatureIds &deselected, bool clearAndSelect );
2600
2607
2610
2613
2619 void beforeCommitChanges( bool stopEditing );
2620
2623
2629
2635
2644 void attributeAdded( int idx );
2645
2652 void beforeAddingExpressionField( const QString &fieldName );
2653
2662 void attributeDeleted( int idx );
2663
2671
2678
2688
2698 void featuresDeleted( const QgsFeatureIds &fids );
2699
2705
2711
2720 void attributeValueChanged( QgsFeatureId fid, int idx, const QVariant &value );
2721
2729 void geometryChanged( QgsFeatureId fid, const QgsGeometry &geometry );
2730
2732 void committedAttributesDeleted( const QString &layerId, const QgsAttributeList &deletedAttributes );
2734 void committedAttributesAdded( const QString &layerId, const QList<QgsField> &addedAttributes );
2736 void committedFeaturesAdded( const QString &layerId, const QgsFeatureList &addedFeatures );
2738 void committedFeaturesRemoved( const QString &layerId, const QgsFeatureIds &deletedFeatureIds );
2740 void committedAttributeValuesChanges( const QString &layerId, const QgsChangedAttributesMap &changedAttributesValues );
2742 void committedGeometriesChanges( const QString &layerId, const QgsGeometryMap &changedGeometries );
2743
2745 void labelingFontNotFound( QgsVectorLayer *layer, const QString &fontfamily );
2746
2748 void featureBlendModeChanged( QPainter::CompositionMode blendMode );
2749
2755 void editCommandStarted( const QString &text );
2756
2763
2770
2780 void readCustomSymbology( const QDomElement &element, QString &errorMessage );
2781
2791 void writeCustomSymbology( QDomElement &element, QDomDocument &doc, QString &errorMessage ) const;
2792
2798
2802 void raiseError( const QString &msg );
2803
2809
2818
2825
2831
2832 protected:
2834 void setExtent( const QgsRectangle &rect ) FINAL;
2836 void setExtent3D( const QgsBox3D &rect ) FINAL;
2837
2838 private slots:
2839 void invalidateSymbolCountedFlag();
2840 void onFeatureCounterCompleted();
2841 void onFeatureCounterTerminated();
2842 void onJoinedFieldsChanged();
2843 void onFeatureAdded( QgsFeatureId fid );
2844 void onFeatureDeleted( QgsFeatureId fid );
2845 void onRelationsLoaded();
2846 void onSymbolsCounted();
2847 void onDirtyTransaction( const QString &sql, const QString &name );
2848 void emitDataChanged();
2849
2850 private:
2851 void updateDefaultValues( QgsFeatureId fid, QgsFeature feature = QgsFeature(), QgsExpressionContext *context = nullptr );
2852
2862 bool isReadOnly() const FINAL;
2863
2870 bool setDataProvider( QString const &provider, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() );
2871
2883 void setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) override;
2884
2886 void readSldLabeling( const QDomNode &node );
2887
2889 bool readSldTextSymbolizer( const QDomNode &node, QgsPalLayerSettings &settings ) const;
2890
2892 QgsAbstractVectorLayerLabeling *readLabelingFromCustomProperties();
2893
2894 bool deleteFeatureCascade( QgsFeatureId fid, DeleteContext *context = nullptr );
2895
2896#ifdef SIP_RUN
2897 QgsVectorLayer( const QgsVectorLayer &rhs );
2898#endif
2900 void minimumOrMaximumValue( int index, QVariant *minimum, QVariant *maximum ) const;
2901
2902 void createEditBuffer();
2903 void clearEditBuffer();
2904
2905 QgsConditionalLayerStyles *mConditionalStyles = nullptr;
2906 QgsVectorDataProvider *mDataProvider = nullptr;
2907 QgsVectorLayerSelectionProperties *mSelectionProperties = nullptr;
2908 QgsVectorLayerTemporalProperties *mTemporalProperties = nullptr;
2909 QgsVectorLayerElevationProperties *mElevationProperties = nullptr;
2910
2912 QString mDisplayExpression;
2913
2915 QgsActionManager *mActions = nullptr;
2916
2918 bool mDataSourceReadOnly = false;
2919
2926 bool mReadOnly = false;
2927
2933 QgsFeatureIds mSelectedFeatureIds;
2934
2938 QgsFeatureIds mPreviousSelectedFeatureIds;
2939
2941 QgsFields mFields;
2942
2944 QgsStringMap mAttributeAliasMap;
2945
2947 QMap<QString, QgsDefaultValue> mDefaultExpressionMap;
2948
2950 QMap< QString, Qgis::FieldDomainSplitPolicy > mAttributeSplitPolicy;
2951
2953 QMap< QString, Qgis::FieldDuplicatePolicy > mAttributeDuplicatePolicy;
2954
2956 QMap< QString, Qgis::FieldDomainMergePolicy > mAttributeMergePolicy;
2957
2959 QSet<int> mDefaultValueOnUpdateFields;
2960
2962 QMap< QString, QgsFieldConstraints::Constraints > mFieldConstraints;
2963
2965 QMap< QPair< QString, QgsFieldConstraints::Constraint >, QgsFieldConstraints::ConstraintStrength > mFieldConstraintStrength;
2966
2968 QMap< QString, QPair< QString, QString > > mFieldConstraintExpressions;
2969
2970 QMap< QString, Qgis::FieldConfigurationFlags > mFieldConfigurationFlags;
2971 QMap< QString, QgsEditorWidgetSetup > mFieldWidgetSetups;
2972
2974 QgsEditFormConfig mEditFormConfig;
2975
2978
2980 QgsFeatureRenderer *mRenderer = nullptr;
2981
2983 QgsVectorSimplifyMethod mSimplifyMethod;
2984
2986 QgsAbstractVectorLayerLabeling *mLabeling = nullptr;
2987
2989 bool mLabelsEnabled = false;
2990
2992 bool mLabelFontNotFoundNotified = false;
2993
2995 QPainter::CompositionMode mFeatureBlendMode = QPainter::CompositionMode_SourceOver;
2996
2998 bool mVertexMarkerOnlyForSelection = false;
2999
3000 QStringList mCommitErrors;
3001
3003 QgsVectorLayerEditBuffer *mEditBuffer = nullptr;
3007
3008 //stores information about joined layers
3009 QgsVectorLayerJoinBuffer *mJoinBuffer = nullptr;
3010
3012 QgsExpressionFieldBuffer *mExpressionFieldBuffer = nullptr;
3013
3014 //diagram rendering object. 0 if diagram drawing is disabled
3015 QgsDiagramRenderer *mDiagramRenderer = nullptr;
3016
3017 //stores infos about diagram placement (placement type, priority, position distance)
3018 QgsDiagramLayerSettings *mDiagramLayerSettings = nullptr;
3019
3020 mutable bool mValidExtent2D = false;
3021 mutable bool mLazyExtent2D = true;
3022 mutable bool mValidExtent3D = false;
3023 mutable bool mLazyExtent3D = true;
3024
3026 std::unique_ptr<QgsAuxiliaryLayer> mAuxiliaryLayer;
3027
3029 QString mAuxiliaryLayerKey;
3030
3031 // Features in renderer classes counted
3032 bool mSymbolFeatureCounted = false;
3033
3034 // Feature counts for each renderer legend key
3035 QHash<QString, long long> mSymbolFeatureCountMap;
3036 QHash<QString, QgsFeatureIds> mSymbolFeatureIdMap;
3037
3039 bool mEditCommandActive = false;
3040
3042 bool mCommitChangesActive = false;
3043
3044 bool mReadExtentFromXml;
3045 QgsRectangle mXmlExtent2D;
3046 QgsBox3D mXmlExtent3D;
3047
3048 QgsFeatureIds mDeletedFids;
3049
3050 QgsAttributeTableConfig mAttributeTableConfig;
3051
3052 mutable QMutex mFeatureSourceConstructorMutex;
3053
3054 QgsVectorLayerFeatureCounter *mFeatureCounter = nullptr;
3055
3056 std::unique_ptr<QgsGeometryOptions> mGeometryOptions;
3057
3058 bool mAllowCommit = true;
3059
3061 QgsStoredExpressionManager *mStoredExpressionManager = nullptr;
3062
3064
3066 bool mDataChangedFired = false;
3067
3068 QList<QgsWeakRelation> mWeakRelations;
3069
3070 bool mSetLegendFromStyle = false;
3071
3072 QList< QgsFeatureRendererGenerator * > mRendererGenerators;
3073
3075 QTimer *mRefreshRendererTimer = nullptr;
3076
3080 bool mLoadAllStoredStyle = false;
3081
3082};
3083
3084
3085
3086// clazy:excludeall=qstring-allocations
3087
3088#endif
Provides global constants and enumerations for use throughout the application.
Definition qgis.h:54
GeometryOperationResult
Success or failure of a geometry operation.
Definition qgis.h:2005
SpatialIndexPresence
Enumeration of spatial index presence states.
Definition qgis.h:522
VectorRenderingSimplificationFlag
Simplification flags for vector feature rendering.
Definition qgis.h:2958
FieldDomainMergePolicy
Merge policy for field domains.
Definition qgis.h:3824
FieldDomainSplitPolicy
Split policy for field domains.
Definition qgis.h:3807
GeometryType
The geometry types are used to group Qgis::WkbType in a coarse way.
Definition qgis.h:337
FieldDuplicatePolicy
Duplicate policy for fields.
Definition qgis.h:3844
VertexMarkerType
Editing vertex markers, used for showing vertices during a edit operation.
Definition qgis.h:1796
WkbType
The WKB type describes the number of dimensions a geometry has.
Definition qgis.h:256
@ Unknown
Unknown.
FieldConfigurationFlag
Configuration flags for fields These flags are meant to be user-configurable and are not describing a...
Definition qgis.h:1684
QFlags< FieldConfigurationFlag > FieldConfigurationFlags
Configuration flags for fields These flags are meant to be user-configurable and are not describing a...
Definition qgis.h:1699
SelectBehavior
Specifies how a selection should be applied.
Definition qgis.h:1734
@ SetSelection
Set selection, removing any existing selection.
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:43
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:35
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:58
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:53
Container of fields for a vector layer.
Definition qgsfields.h:46
QgsAttributeList allAttributesList() const
Utility function to get list of attribute indexes.
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:78
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
virtual bool isEditable() const
Returns true if the layer can be edited.
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.
Contains settings for how a map layer will be labeled.
Represents a 2D point.
Definition qgspointxy.h:60
Point geometry type, with support for z-dimension and m-values.
Definition qgspoint.h:49
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:107
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:44
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.
The edit buffer group manages a group of edit buffers.
Stores queued vector layer edit operations prior to committing changes to the layer's data provider.
An edit buffer which directly passes commands through, used when a layer is within a transaction.
Vector layer specific subclass of QgsMapLayerElevationProperties.
Counts the features in a QgsVectorLayer in task.
Partial snapshot of vector layer's state (only the members necessary for access to features).
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.
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.
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.
void attributeAdded(int idx)
Will be emitted, when a new attribute has been added to this vector layer.
QgsAbstractVectorLayerLabeling * labeling()
Access to labeling configuration.
void allowCommitChanged()
Emitted whenever the allowCommit() property of this layer changes.
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.
void editCommandDestroyed()
Signal emitted, when an edit command is destroyed.
QgsVectorLayer(const QgsVectorLayer &rhs)=delete
void featuresDeleted(const QgsFeatureIds &fids)
Emitted when features have been deleted.
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.
void symbolFeatureCountMapChanged()
Emitted when the feature count for symbols on this layer has been recalculated.
void writeCustomSymbology(QDomElement &element, QDomDocument &doc, QString &errorMessage) const
Signal emitted whenever the symbology (QML-file) for this layer is being written.
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.
void committedAttributesDeleted(const QString &layerId, const QgsAttributeList &deletedAttributes)
Emitted when attributes are deleted from the provider if not in transaction mode.
void displayExpressionChanged()
Emitted when the display expression changes.
const QgsActionManager * actions() const
Returns all layer actions defined on this layer.
void editFormConfigChanged()
Will be emitted whenever the edit form configuration of this layer changes.
QgsVectorLayerJoinBuffer * joinBuffer()
Returns the join buffer object.
void afterCommitChanges()
Emitted after changes are committed to the data provider.
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.
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.
const QgsVectorLayerEditBuffer * editBuffer() const
Buffer with uncommitted editing operations.
void beforeRollBack()
Emitted before changes are rolled back.
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.
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
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:6906
#define SIP_DEPRECATED
Definition qgis_sip.h:106
#define SIP_SKIP
Definition qgis_sip.h:126
#define FINAL
Definition qgis_sip.h:242
#define SIP_PYNAME(name)
Definition qgis_sip.h:81
#define SIP_PYARGREMOVE
Definition qgis_sip.h:151
#define SIP_TRANSFER
Definition qgis_sip.h:36
#define SIP_OUT
Definition qgis_sip.h:58
#define SIP_FACTORY
Definition qgis_sip.h:76
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:27
QList< int > QgsAttributeList
QSet< int > QgsAttributeIds
Context for cascade delete features.
DeleteContext(bool cascade=false, QgsProject *project=nullptr)
Constructor for DeleteContext.
Setting options for loading vector layers.
LayerOptions(bool loadDefaultStyle=true, bool readExtentFromXml=false)
Constructor for LayerOptions.
LayerOptions(const QgsCoordinateTransformContext &transformContext, bool loadDefaultStyle=true, bool readExtentFromXml=false)
Constructor for LayerOptions.
QgsCoordinateReferenceSystem fallbackCrs
Fallback layer coordinate reference system.