QGIS API Documentation 3.41.0-Master (af5edcb665c)
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_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
401{
402 Q_OBJECT
403
404 Q_PROPERTY( QString subsetString READ subsetString WRITE setSubsetString NOTIFY subsetStringChanged )
405 Q_PROPERTY( QString displayExpression READ displayExpression WRITE setDisplayExpression NOTIFY displayExpressionChanged )
406 Q_PROPERTY( QgsEditFormConfig editFormConfig READ editFormConfig WRITE setEditFormConfig NOTIFY editFormConfigChanged )
407 Q_PROPERTY( bool readOnly READ isReadOnly WRITE setReadOnly NOTIFY readOnlyChanged )
408 Q_PROPERTY( bool supportsEditing READ supportsEditing NOTIFY supportsEditingChanged )
409 Q_PROPERTY( QgsFields fields READ fields NOTIFY updatedFields )
410
411 public:
412
413 static const QgsSettingsEntryBool *settingsSimplifyLocal SIP_SKIP;
414
415 static const QgsSettingsEntryDouble *settingsSimplifyMaxScale SIP_SKIP;
416 static const QgsSettingsEntryDouble *settingsSimplifyDrawingTol SIP_SKIP;
417 static const QgsSettingsEntryEnumFlag<Qgis::VectorSimplificationAlgorithm> *settingsSimplifyAlgorithm SIP_SKIP;
418 static const QgsSettingsEntryEnumFlag<Qgis::VectorRenderingSimplificationFlags> *settingsSimplifyDrawingHints SIP_SKIP;
419
424 {
425
429 explicit LayerOptions( bool loadDefaultStyle = true,
430 bool readExtentFromXml = false )
431 : loadDefaultStyle( loadDefaultStyle )
432 , readExtentFromXml( readExtentFromXml )
433 {}
434
439 explicit LayerOptions( const QgsCoordinateTransformContext &transformContext,
440 bool loadDefaultStyle = true,
441 bool readExtentFromXml = false
442 )
443 : loadDefaultStyle( loadDefaultStyle )
444 , readExtentFromXml( readExtentFromXml )
445 , transformContext( transformContext )
446 {}
447
449 bool loadDefaultStyle = true;
450
455 bool readExtentFromXml = false;
456
462
475
488
502 bool skipCrsValidation = false;
503
515 bool forceReadOnly = false;
516
529 bool loadAllStoredStyles = false;
530 };
531
536 struct CORE_EXPORT DeleteContext
537 {
538
542 explicit DeleteContext( bool cascade = false, QgsProject *project = nullptr ): cascade( cascade ), project( project ) {}
543
550 QList<QgsVectorLayer *> handledLayers( bool includeAuxiliaryLayers = true ) const;
551
555 QgsFeatureIds handledFeatures( QgsVectorLayer *layer ) const;
556
557 QMap<QgsVectorLayer *, QgsFeatureIds> mHandledFeatures SIP_SKIP;
560 };
561
575 explicit QgsVectorLayer( const QString &path = QString(), const QString &baseName = QString(),
576 const QString &providerLib = "ogr", const QgsVectorLayer::LayerOptions &options = QgsVectorLayer::LayerOptions() );
577
578 ~QgsVectorLayer() override;
579
580 QgsVectorLayer( const QgsVectorLayer &rhs ) = delete;
581 QgsVectorLayer &operator=( QgsVectorLayer const &rhs ) = delete;
582
583#ifdef SIP_RUN
584 SIP_PYOBJECT __repr__();
585 % MethodCode
586 QString str = QStringLiteral( "<QgsVectorLayer: '%1' (%2)>" ).arg( sipCpp->name(), sipCpp->dataProvider() ? sipCpp->dataProvider()->name() : QStringLiteral( "Invalid" ) );
587 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
588 % End
589#endif
590
598 QgsVectorLayer *clone() const override SIP_FACTORY;
599
604 QString storageType() const;
605
609 QString capabilitiesString() const;
610
611
621 bool isSqlQuery() const;
622
629 Qgis::VectorLayerTypeFlags vectorLayerTypeFlags() const;
630
631
635 QString dataComment() const;
636
644 QString displayField() const;
645
653 void setDisplayExpression( const QString &displayExpression );
654
661 QString displayExpression() const;
662
663 bool hasMapTips() const FINAL;
664
665 QgsVectorDataProvider *dataProvider() FINAL;
666 const QgsVectorDataProvider *dataProvider() const FINAL SIP_SKIP;
667 QgsMapLayerSelectionProperties *selectionProperties() override;
668 QgsMapLayerTemporalProperties *temporalProperties() override;
669 QgsMapLayerElevationProperties *elevationProperties() override;
670 QgsAbstractProfileGenerator *createProfileGenerator( const QgsProfileRequest &request ) override SIP_FACTORY;
671
682 void setProviderEncoding( const QString &encoding );
683
685 void setCoordinateSystem();
686
692 bool addJoin( const QgsVectorLayerJoinInfo &joinInfo );
693
698 bool removeJoin( const QString &joinLayerId );
699
703 QgsVectorLayerJoinBuffer *joinBuffer() { return mJoinBuffer; }
704
709 const QgsVectorLayerJoinBuffer *joinBuffer() const { return mJoinBuffer; } SIP_SKIP;
710
711 const QList<QgsVectorLayerJoinInfo> vectorJoins() const;
712
720 bool setDependencies( const QSet<QgsMapLayerDependency> &layers ) FINAL;
721
728 QSet<QgsMapLayerDependency> dependencies() const FINAL;
729
739 int addExpressionField( const QString &exp, const QgsField &fld );
740
747 void removeExpressionField( int index );
748
757 QString expressionField( int index ) const;
758
767 void updateExpressionField( int index, const QString &exp );
768
775 QgsActionManager *actions() { return mActions; }
776
782 const QgsActionManager *actions() const SIP_SKIP { return mActions; }
783
789 int selectedFeatureCount() const;
790
800 Q_INVOKABLE void selectByRect( QgsRectangle &rect, Qgis::SelectBehavior behavior = Qgis::SelectBehavior::SetSelection );
801
811 Q_INVOKABLE void selectByExpression( const QString &expression, Qgis::SelectBehavior behavior = Qgis::SelectBehavior::SetSelection, QgsExpressionContext *context = nullptr );
812
822 Q_INVOKABLE void selectByIds( const QgsFeatureIds &ids, Qgis::SelectBehavior behavior = Qgis::SelectBehavior::SetSelection );
823
835 Q_INVOKABLE void modifySelection( const QgsFeatureIds &selectIds, const QgsFeatureIds &deselectIds );
836
838 Q_INVOKABLE void invertSelection();
839
841 Q_INVOKABLE void selectAll();
842
850 Q_INVOKABLE void invertSelectionInRectangle( QgsRectangle &rect );
851
864 Q_INVOKABLE QgsFeatureList selectedFeatures() const;
865
881 QgsFeatureIterator getSelectedFeatures( QgsFeatureRequest request = QgsFeatureRequest() ) const;
882
890 Q_INVOKABLE const QgsFeatureIds &selectedFeatureIds() const;
891
893 Q_INVOKABLE QgsRectangle boundingBoxOfSelected() const;
894
901 bool labelsEnabled() const;
902
912 void setLabelsEnabled( bool enabled );
913
918 bool diagramsEnabled() const;
919
921 void setDiagramRenderer( QgsDiagramRenderer *r SIP_TRANSFER );
922 const QgsDiagramRenderer *diagramRenderer() const { return mDiagramRenderer; }
923
924 void setDiagramLayerSettings( const QgsDiagramLayerSettings &s );
925 const QgsDiagramLayerSettings *diagramLayerSettings() const { return mDiagramLayerSettings; }
926
933 QgsFeatureRenderer *renderer() { return mRenderer; }
934
942 const QgsFeatureRenderer *renderer() const SIP_SKIP { return mRenderer; }
943
950 void setRenderer( QgsFeatureRenderer *r SIP_TRANSFER );
951
961 void addFeatureRendererGenerator( QgsFeatureRendererGenerator *generator SIP_TRANSFER );
962
972 void removeFeatureRendererGenerator( const QString &id );
973
981 QList< const QgsFeatureRendererGenerator * > featureRendererGenerators() const;
982
984 Q_INVOKABLE Qgis::GeometryType geometryType() const;
985
987 Q_INVOKABLE Qgis::WkbType wkbType() const FINAL;
988
989 QgsCoordinateReferenceSystem sourceCrs() const FINAL;
990 QString sourceName() const FINAL;
991
996 bool readXml( const QDomNode &layer_node, QgsReadWriteContext &context ) FINAL;
997
1002 bool writeXml( QDomNode &layer_node, QDomDocument &doc, const QgsReadWriteContext &context ) const FINAL;
1003
1004 QString encodedSource( const QString &source, const QgsReadWriteContext &context ) const FINAL;
1005 QString decodedSource( const QString &source, const QString &provider, const QgsReadWriteContext &context ) const FINAL;
1006
1010 void resolveReferences( QgsProject *project ) FINAL;
1011
1024 bool loadAuxiliaryLayer( const QgsAuxiliaryStorage &storage, const QString &key = QString() );
1025
1034 void setAuxiliaryLayer( QgsAuxiliaryLayer *layer SIP_TRANSFER = nullptr );
1035
1040 QgsAuxiliaryLayer *auxiliaryLayer();
1041
1046 const QgsAuxiliaryLayer *auxiliaryLayer() const SIP_SKIP;
1047
1048 bool readSymbology( const QDomNode &layerNode, QString &errorMessage,
1049 QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories = QgsMapLayer::AllStyleCategories ) FINAL;
1050 bool readStyle( const QDomNode &node, QString &errorMessage,
1051 QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories = QgsMapLayer::AllStyleCategories ) FINAL;
1052 bool writeSymbology( QDomNode &node, QDomDocument &doc, QString &errorMessage,
1053 const QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories = QgsMapLayer::AllStyleCategories ) const FINAL;
1054 bool writeStyle( QDomNode &node, QDomDocument &doc, QString &errorMessage,
1055 const QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories = QgsMapLayer::AllStyleCategories ) const FINAL;
1056
1065 bool writeSld( QDomNode &node, QDomDocument &doc, QString &errorMessage, const QVariantMap &props = QVariantMap() ) const;
1066
1067 bool readSld( const QDomNode &node, QString &errorMessage ) FINAL;
1068
1074 long long featureCount( const QString &legendKey ) const;
1075
1082 QgsFeatureIds symbolFeatureIds( const QString &legendKey ) const;
1083
1094 Qgis::FeatureAvailability hasFeatures() const FINAL;
1095
1096 QString loadDefaultStyle( bool &resultFlag SIP_OUT ) FINAL;
1097
1110 QgsVectorLayerFeatureCounter *countSymbolFeatures( bool storeSymbolFids = false );
1111
1119 virtual bool setSubsetString( const QString &subset );
1120
1125 virtual QString subsetString() const;
1126
1132 QgsFeatureIterator getFeatures( const QgsFeatureRequest &request = QgsFeatureRequest() ) const FINAL;
1133
1137 inline QgsFeatureIterator getFeatures( const QString &expression )
1138 {
1139 return getFeatures( QgsFeatureRequest( expression ) );
1140 }
1141
1146 Q_INVOKABLE inline QgsFeature getFeature( QgsFeatureId fid ) const
1147 {
1148 QgsFeature feature;
1149 getFeatures( QgsFeatureRequest( fid ) ).nextFeature( feature );
1150 return feature;
1151 }
1152
1157 QgsGeometry getGeometry( QgsFeatureId fid ) const;
1158
1163 {
1164 return getFeatures( QgsFeatureRequest( fids ) );
1165 }
1166
1171 {
1172 return getFeatures( QgsFeatureRequest( rectangle ) );
1173 }
1174
1176
1202 bool updateFeature( QgsFeature &feature, bool skipDefaultValues = false );
1203
1215 bool insertVertex( double x, double y, QgsFeatureId atFeatureId, int beforeVertex );
1216
1228 bool insertVertex( const QgsPoint &point, QgsFeatureId atFeatureId, int beforeVertex );
1229
1240 bool moveVertex( double x, double y, QgsFeatureId atFeatureId, int atVertex );
1241
1252 bool moveVertex( const QgsPoint &p, QgsFeatureId atFeatureId, int atVertex ) SIP_PYNAME( moveVertexV2 );
1253
1263 Qgis::VectorEditResult deleteVertex( QgsFeatureId featureId, int vertex );
1264
1272 Q_INVOKABLE bool deleteSelectedFeatures( int *deletedCount = nullptr, QgsVectorLayer::DeleteContext *context = nullptr );
1273
1294 Q_DECL_DEPRECATED Qgis::GeometryOperationResult addRing( const QVector<QgsPointXY> &ring, QgsFeatureId *featureId = nullptr ) SIP_DEPRECATED;
1295
1296
1316 Q_INVOKABLE Qgis::GeometryOperationResult addRing( const QgsPointSequence &ring, QgsFeatureId *featureId = nullptr );
1317
1338 Q_INVOKABLE Qgis::GeometryOperationResult addRing( QgsCurve *ring SIP_TRANSFER, QgsFeatureId *featureId = nullptr ) SIP_PYNAME( addCurvedRing );
1339
1359 Q_DECL_DEPRECATED Qgis::GeometryOperationResult addPart( const QList<QgsPointXY> &ring ) SIP_DEPRECATED;
1360
1361#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
1362
1383 Q_DECL_DEPRECATED Qgis::GeometryOperationResult addPart( const QVector<QgsPointXY> &ring ) SIP_PYNAME( addPartV2 ) SIP_DEPRECATED;
1384#endif
1385
1405 Q_INVOKABLE Qgis::GeometryOperationResult addPart( const QgsPointSequence &ring ) SIP_PYNAME( addPartV2 );
1406
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 bool supportsEditing() const override;
1696
1717 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 bool addAttribute( const QgsField &field );
1801
1806 void setFieldAlias( int index, const QString &aliasString );
1807
1812 void removeFieldAlias( int index );
1813
1823 bool renameAttribute( int index, const QString &newName );
1824
1831 QString attributeAlias( int index ) const;
1832
1834 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#else
1855
1862 void setFieldSplitPolicy( int index, Qgis::FieldDomainSplitPolicy policy );
1863
1864 % MethodCode
1865 if ( a0 < 0 || a0 >= sipCpp->fields().count() )
1866 {
1867 PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
1868 sipIsErr = 1;
1869 }
1870 else
1871 {
1872 sipCpp->setFieldSplitPolicy( a0, a1 );
1873 }
1874 % End
1875
1882 void setFieldDuplicatePolicy( int index, Qgis::FieldDuplicatePolicy policy );
1883
1884 % MethodCode
1885 if ( a0 < 0 || a0 >= sipCpp->fields().count() )
1886 {
1887 PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
1888 sipIsErr = 1;
1889 }
1890 else
1891 {
1892 sipCpp->setFieldDuplicatePolicy( a0, a1 );
1893 }
1894 % End
1895#endif
1896
1901 Q_DECL_DEPRECATED QSet<QString> excludeAttributesWms() const SIP_DEPRECATED;
1902
1907 Q_DECL_DEPRECATED void setExcludeAttributesWms( const QSet<QString> &att ) SIP_DEPRECATED;
1908
1913 Q_DECL_DEPRECATED QSet<QString> excludeAttributesWfs() const SIP_DEPRECATED;
1914
1919 Q_DECL_DEPRECATED void setExcludeAttributesWfs( const QSet<QString> &att ) SIP_DEPRECATED;
1920
1929 virtual bool deleteAttribute( int attr );
1930
1938 bool deleteAttributes( const QList<int> &attrs );
1939
1940 bool addFeatures( QgsFeatureList &features, QgsFeatureSink::Flags flags = QgsFeatureSink::Flags() ) FINAL;
1941
1952 Q_INVOKABLE bool deleteFeature( QgsFeatureId fid, QgsVectorLayer::DeleteContext *context = nullptr );
1953
1967 Q_INVOKABLE bool deleteFeatures( const QgsFeatureIds &fids, QgsVectorLayer::DeleteContext *context = nullptr );
1968
1992 Q_INVOKABLE bool commitChanges( bool stopEditing = true );
1993
1999 QStringList commitErrors() const;
2000
2010 Q_INVOKABLE bool rollBack( bool deleteBuffer = true );
2011
2018 QList<QgsRelation> referencingRelations( int idx ) const;
2019
2029 QList<QgsWeakRelation> weakRelations() const SIP_SKIP;
2030
2039 void setWeakRelations( const QList< QgsWeakRelation > &relations ) SIP_SKIP;
2040
2042 Q_INVOKABLE QgsVectorLayerEditBuffer *editBuffer() { return mEditBuffer; }
2043
2048 const QgsVectorLayerEditBuffer *editBuffer() const SIP_SKIP { return mEditBuffer; }
2049
2054 void beginEditCommand( const QString &text );
2055
2057 void endEditCommand();
2058
2060 void destroyEditCommand();
2061
2066 Q_DECL_DEPRECATED static void drawVertexMarker( double x, double y, QPainter &p, Qgis::VertexMarkerType type, int vertexSize );
2067
2076 void updateFields();
2077
2091 QVariant defaultValue( int index, const QgsFeature &feature = QgsFeature(),
2092 QgsExpressionContext *context = nullptr ) const;
2093
2104 void setDefaultValueDefinition( int index, const QgsDefaultValue &definition );
2105
2115 QgsDefaultValue defaultValueDefinition( int index ) const;
2116
2123 QgsFieldConstraints::Constraints fieldConstraints( int fieldIndex ) const;
2124
2129 QMap< QgsFieldConstraints::Constraint, QgsFieldConstraints::ConstraintStrength> fieldConstraintsAndStrength( int fieldIndex ) const;
2130
2139
2146 void removeFieldConstraint( int index, QgsFieldConstraints::Constraint constraint );
2147
2154 QString constraintExpression( int index ) const;
2155
2162 QString constraintDescription( int index ) const;
2163
2171 void setConstraintExpression( int index, const QString &expression, const QString &description = QString() );
2172
2178 void setFieldConfigurationFlags( int index, Qgis::FieldConfigurationFlags flags );
2179
2184 void setFieldConfigurationFlag( int index, Qgis::FieldConfigurationFlag flag, bool active );
2185
2191 Qgis::FieldConfigurationFlags fieldConfigurationFlags( int index ) const;
2192
2201 void setEditorWidgetSetup( int index, const QgsEditorWidgetSetup &setup );
2202
2211 QgsEditorWidgetSetup editorWidgetSetup( int index ) const;
2212
2224 QSet<QVariant> uniqueValues( int fieldIndex, int limit = -1 ) const FINAL;
2225
2239 QStringList uniqueStringsMatching( int index, const QString &substring, int limit = -1,
2240 QgsFeedback *feedback = nullptr ) const;
2241
2256 QVariant minimumValue( int index ) const FINAL;
2257
2272 QVariant maximumValue( int index ) const FINAL;
2273
2274
2294 void minimumAndMaximumValue( int index, QVariant &minimum SIP_OUT, QVariant &maximum SIP_OUT ) const;
2295
2309 QVariant aggregate( Qgis::Aggregate aggregate,
2310 const QString &fieldOrExpression,
2311 const QgsAggregateCalculator::AggregateParameters &parameters = QgsAggregateCalculator::AggregateParameters(),
2312 QgsExpressionContext *context = nullptr,
2313 bool *ok = nullptr,
2314 QgsFeatureIds *fids = nullptr,
2315 QgsFeedback *feedback = nullptr,
2316 QString *error SIP_PYARGREMOVE = nullptr ) const;
2317
2319 void setFeatureBlendMode( QPainter::CompositionMode blendMode );
2321 QPainter::CompositionMode featureBlendMode() const;
2322
2323 QString htmlMetadata() const FINAL;
2324
2328 void setSimplifyMethod( const QgsVectorSimplifyMethod &simplifyMethod ) { mSimplifyMethod = simplifyMethod; }
2329
2333 inline const QgsVectorSimplifyMethod &simplifyMethod() const { return mSimplifyMethod; }
2334
2339 bool simplifyDrawingCanbeApplied( const QgsRenderContext &renderContext, Qgis::VectorRenderingSimplificationFlag simplifyHint ) const;
2340
2347 QgsConditionalLayerStyles *conditionalStyles() const;
2348
2353 QgsAttributeTableConfig attributeTableConfig() const;
2354
2359 void setAttributeTableConfig( const QgsAttributeTableConfig &attributeTableConfig );
2360
2362
2363 QgsExpressionContextScope *createExpressionContextScope() const FINAL SIP_FACTORY;
2364
2371 QgsEditFormConfig editFormConfig() const;
2372
2378 void setEditFormConfig( const QgsEditFormConfig &editFormConfig );
2379
2386 void setReadExtentFromXml( bool readExtentFromXml );
2387
2394 bool readExtentFromXml() const;
2395
2400 bool isEditCommandActive() const { return mEditCommandActive; }
2401
2407 QgsGeometryOptions *geometryOptions() const;
2408
2426 bool allowCommit() const SIP_SKIP;
2427
2445 void setAllowCommit( bool allowCommit ) SIP_SKIP;
2446
2452 QgsStoredExpressionManager *storedExpressionManager() { return mStoredExpressionManager; }
2453
2454 public slots:
2455
2463 void select( QgsFeatureId featureId );
2464
2472 Q_INVOKABLE void select( const QgsFeatureIds &featureIds );
2473
2481 void deselect( QgsFeatureId featureId );
2482
2490 Q_INVOKABLE void deselect( const QgsFeatureIds &featureIds );
2491
2498 Q_INVOKABLE void removeSelection();
2499
2510 void reselect();
2511
2518 virtual void updateExtents( bool force = false );
2519
2534 Q_INVOKABLE bool startEditing();
2535
2541 virtual void setTransformContext( const QgsCoordinateTransformContext &transformContext ) override;
2542
2544
2545 bool accept( QgsStyleEntityVisitorInterface *visitor ) const override;
2546
2547 signals:
2548
2556 void selectionChanged( const QgsFeatureIds &selected, const QgsFeatureIds &deselected, bool clearAndSelect );
2557
2564
2567
2570
2576 void beforeCommitChanges( bool stopEditing );
2577
2580
2586
2592
2601 void attributeAdded( int idx );
2602
2609 void beforeAddingExpressionField( const QString &fieldName );
2610
2619 void attributeDeleted( int idx );
2620
2628
2635
2645
2655 void featuresDeleted( const QgsFeatureIds &fids );
2656
2662
2668
2677 void attributeValueChanged( QgsFeatureId fid, int idx, const QVariant &value );
2678
2686 void geometryChanged( QgsFeatureId fid, const QgsGeometry &geometry );
2687
2689 void committedAttributesDeleted( const QString &layerId, const QgsAttributeList &deletedAttributes );
2691 void committedAttributesAdded( const QString &layerId, const QList<QgsField> &addedAttributes );
2693 void committedFeaturesAdded( const QString &layerId, const QgsFeatureList &addedFeatures );
2695 void committedFeaturesRemoved( const QString &layerId, const QgsFeatureIds &deletedFeatureIds );
2697 void committedAttributeValuesChanges( const QString &layerId, const QgsChangedAttributesMap &changedAttributesValues );
2699 void committedGeometriesChanges( const QString &layerId, const QgsGeometryMap &changedGeometries );
2700
2702 void labelingFontNotFound( QgsVectorLayer *layer, const QString &fontfamily );
2703
2705 void featureBlendModeChanged( QPainter::CompositionMode blendMode );
2706
2712 void editCommandStarted( const QString &text );
2713
2720
2727
2737 void readCustomSymbology( const QDomElement &element, QString &errorMessage );
2738
2748 void writeCustomSymbology( QDomElement &element, QDomDocument &doc, QString &errorMessage ) const;
2749
2755
2759 void raiseError( const QString &msg );
2760
2766
2775
2782
2788
2789 protected:
2791 void setExtent( const QgsRectangle &rect ) FINAL;
2793 void setExtent3D( const QgsBox3D &rect ) FINAL;
2794
2795 private slots:
2796 void invalidateSymbolCountedFlag();
2797 void onFeatureCounterCompleted();
2798 void onFeatureCounterTerminated();
2799 void onJoinedFieldsChanged();
2800 void onFeatureDeleted( QgsFeatureId fid );
2801 void onRelationsLoaded();
2802 void onSymbolsCounted();
2803 void onDirtyTransaction( const QString &sql, const QString &name );
2804 void emitDataChanged();
2805
2806 private:
2807 void updateDefaultValues( QgsFeatureId fid, QgsFeature feature = QgsFeature(), QgsExpressionContext *context = nullptr );
2808
2818 bool isReadOnly() const FINAL;
2819
2826 bool setDataProvider( QString const &provider, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags = Qgis::DataProviderReadFlags() );
2827
2839 void setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags ) override;
2840
2842 void readSldLabeling( const QDomNode &node );
2843
2845 bool readSldTextSymbolizer( const QDomNode &node, QgsPalLayerSettings &settings ) const;
2846
2848 QgsAbstractVectorLayerLabeling *readLabelingFromCustomProperties();
2849
2850 bool deleteFeatureCascade( QgsFeatureId fid, DeleteContext *context = nullptr );
2851
2852#ifdef SIP_RUN
2853 QgsVectorLayer( const QgsVectorLayer &rhs );
2854#endif
2856 void minimumOrMaximumValue( int index, QVariant *minimum, QVariant *maximum ) const;
2857
2858 void createEditBuffer();
2859 void clearEditBuffer();
2860
2861 QgsConditionalLayerStyles *mConditionalStyles = nullptr;
2862 QgsVectorDataProvider *mDataProvider = nullptr;
2863 QgsVectorLayerSelectionProperties *mSelectionProperties = nullptr;
2864 QgsVectorLayerTemporalProperties *mTemporalProperties = nullptr;
2865 QgsVectorLayerElevationProperties *mElevationProperties = nullptr;
2866
2868 QString mDisplayExpression;
2869
2871 QgsActionManager *mActions = nullptr;
2872
2874 bool mDataSourceReadOnly = false;
2875
2882 bool mReadOnly = false;
2883
2889 QgsFeatureIds mSelectedFeatureIds;
2890
2894 QgsFeatureIds mPreviousSelectedFeatureIds;
2895
2897 QgsFields mFields;
2898
2900 QgsStringMap mAttributeAliasMap;
2901
2903 QMap<QString, QgsDefaultValue> mDefaultExpressionMap;
2904
2906 QMap< QString, Qgis::FieldDomainSplitPolicy > mAttributeSplitPolicy;
2907
2909 QMap< QString, Qgis::FieldDuplicatePolicy > mAttributeDuplicatePolicy;
2910
2912 QSet<int> mDefaultValueOnUpdateFields;
2913
2915 QMap< QString, QgsFieldConstraints::Constraints > mFieldConstraints;
2916
2918 QMap< QPair< QString, QgsFieldConstraints::Constraint >, QgsFieldConstraints::ConstraintStrength > mFieldConstraintStrength;
2919
2921 QMap< QString, QPair< QString, QString > > mFieldConstraintExpressions;
2922
2923 QMap< QString, Qgis::FieldConfigurationFlags > mFieldConfigurationFlags;
2924 QMap< QString, QgsEditorWidgetSetup > mFieldWidgetSetups;
2925
2927 QgsEditFormConfig mEditFormConfig;
2928
2931
2933 QgsFeatureRenderer *mRenderer = nullptr;
2934
2936 QgsVectorSimplifyMethod mSimplifyMethod;
2937
2939 QgsAbstractVectorLayerLabeling *mLabeling = nullptr;
2940
2942 bool mLabelsEnabled = false;
2943
2945 bool mLabelFontNotFoundNotified = false;
2946
2948 QPainter::CompositionMode mFeatureBlendMode = QPainter::CompositionMode_SourceOver;
2949
2951 bool mVertexMarkerOnlyForSelection = false;
2952
2953 QStringList mCommitErrors;
2954
2956 QgsVectorLayerEditBuffer *mEditBuffer = nullptr;
2960
2961 //stores information about joined layers
2962 QgsVectorLayerJoinBuffer *mJoinBuffer = nullptr;
2963
2965 QgsExpressionFieldBuffer *mExpressionFieldBuffer = nullptr;
2966
2967 //diagram rendering object. 0 if diagram drawing is disabled
2968 QgsDiagramRenderer *mDiagramRenderer = nullptr;
2969
2970 //stores infos about diagram placement (placement type, priority, position distance)
2971 QgsDiagramLayerSettings *mDiagramLayerSettings = nullptr;
2972
2973 mutable bool mValidExtent2D = false;
2974 mutable bool mLazyExtent2D = true;
2975 mutable bool mValidExtent3D = false;
2976 mutable bool mLazyExtent3D = true;
2977
2979 std::unique_ptr<QgsAuxiliaryLayer> mAuxiliaryLayer;
2980
2982 QString mAuxiliaryLayerKey;
2983
2984 // Features in renderer classes counted
2985 bool mSymbolFeatureCounted = false;
2986
2987 // Feature counts for each renderer legend key
2988 QHash<QString, long long> mSymbolFeatureCountMap;
2989 QHash<QString, QgsFeatureIds> mSymbolFeatureIdMap;
2990
2992 bool mEditCommandActive = false;
2993
2995 bool mCommitChangesActive = false;
2996
2997 bool mReadExtentFromXml;
2998 QgsRectangle mXmlExtent2D;
2999 QgsBox3D mXmlExtent3D;
3000
3001 QgsFeatureIds mDeletedFids;
3002
3003 QgsAttributeTableConfig mAttributeTableConfig;
3004
3005 mutable QMutex mFeatureSourceConstructorMutex;
3006
3007 QgsVectorLayerFeatureCounter *mFeatureCounter = nullptr;
3008
3009 std::unique_ptr<QgsGeometryOptions> mGeometryOptions;
3010
3011 bool mAllowCommit = true;
3012
3014 QgsStoredExpressionManager *mStoredExpressionManager = nullptr;
3015
3017
3019 bool mDataChangedFired = false;
3020
3021 QList<QgsWeakRelation> mWeakRelations;
3022
3023 bool mSetLegendFromStyle = false;
3024
3025 QList< QgsFeatureRendererGenerator * > mRendererGenerators;
3026
3028 QTimer *mRefreshRendererTimer = nullptr;
3029
3033 bool mLoadAllStoredStyle = false;
3034
3035};
3036
3037
3038
3039// clazy:excludeall=qstring-allocations
3040
3041#endif
The Qgis class provides global constants for use throughout the application.
Definition qgis.h:54
GeometryOperationResult
Success or failure of a geometry operation.
Definition qgis.h:1952
SpatialIndexPresence
Enumeration of spatial index presence states.
Definition qgis.h:522
VectorRenderingSimplificationFlag
Simplification flags for vector feature rendering.
Definition qgis.h:2869
FieldDomainSplitPolicy
Split policy for field domains.
Definition qgis.h:3691
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:3723
VertexMarkerType
Editing vertex markers, used for showing vertices during a edit operation.
Definition qgis.h:1743
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:1631
QFlags< FieldConfigurationFlag > FieldConfigurationFlags
Configuration flags for fields These flags are meant to be user-configurable and are not describing a...
Definition qgis.h:1646
SelectBehavior
Specifies how a selection should be applied.
Definition qgis.h:1681
@ SetSelection
Set selection, removing any existing selection.
Abstract base class for simplify geometries using a specific algorithm.
Abstract base class for objects which generate elevation profiles.
Interface for classes which can generate 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 ...
This is a container for configuration of the attribute table.
Class allowing to manage the auxiliary storage for a vector layer.
Class providing some utility methods to manage auxiliary storage.
A 3-dimensional box composed of x, y, z coordinates.
Definition qgsbox3d.h:43
The QgsConditionalLayerStyles class holds conditional style information for a layer.
This class 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.
The QgsDefaultValue class 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 Widget and wrapper share the same parent.
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.
This class 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.
The QgsGeometryOptions class contains options to automatically adjust geometries to constraints on a ...
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:76
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.
A class to represent 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
The class is used as a container of context for various read/write operations on other objects.
A rectangle specified with double values.
This class 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.
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
This is the 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.
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 consider.
Represents a vector layer which manages a vector based data sets.
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.
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
This class contains information how to simplify geometries fetched from a vector layer.
The QgsWeakRelation class represent a QgsRelation with possibly unresolved layers or unmatched fields...
QMap< QString, QString > QgsStringMap
Definition qgis.h:6604
#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.