QGIS API Documentation  3.27.0-Master (597e8eebd4)
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 
22 #include "qgis_core.h"
23 #include <QMap>
24 #include <QSet>
25 #include <QList>
26 #include <QStringList>
27 #include <QFont>
28 #include <QMutex>
29 
30 #include "qgis.h"
31 #include "qgsmaplayer.h"
32 #include "qgsfeature.h"
33 #include "qgsfeaturerequest.h"
34 #include "qgsfeaturesource.h"
35 #include "qgsfields.h"
36 #include "qgsvectordataprovider.h"
38 #include "qgseditformconfig.h"
40 #include "qgsaggregatecalculator.h"
41 #include "qgsfeatureiterator.h"
44 #include "qgsexpressioncontext.h"
46 
47 class QPainter;
48 class QImage;
49 
51 class QgsActionManager;
53 class QgsCurve;
55 class QgsDiagramRenderer;
58 class QgsFeatureRenderer;
59 class QgsGeometry;
60 class QgsGeometryVertexIndex;
61 class QgsMapToPixel;
62 class QgsRectangle;
63 class QgsRectangle;
64 class QgsRelation;
65 class QgsWeakRelation;
66 class QgsRelationManager;
69 class QgsSymbol;
76 class QgsPoint;
77 class QgsFeedback;
79 class QgsAuxiliaryLayer;
80 class QgsGeometryOptions;
85 
86 typedef QList<int> QgsAttributeList;
87 typedef QSet<int> QgsAttributeIds;
88 
89 // TODO QGIS4: Remove virtual from non-inherited methods (like isModified)
90 
392 {
393  Q_OBJECT
394 
395  Q_PROPERTY( QString subsetString READ subsetString WRITE setSubsetString NOTIFY subsetStringChanged )
396  Q_PROPERTY( QString displayExpression READ displayExpression WRITE setDisplayExpression NOTIFY displayExpressionChanged )
397  Q_PROPERTY( QString mapTipTemplate READ mapTipTemplate WRITE setMapTipTemplate NOTIFY mapTipTemplateChanged )
398  Q_PROPERTY( QgsEditFormConfig editFormConfig READ editFormConfig WRITE setEditFormConfig NOTIFY editFormConfigChanged )
399  Q_PROPERTY( bool readOnly READ isReadOnly WRITE setReadOnly NOTIFY readOnlyChanged )
400  Q_PROPERTY( bool supportsEditing READ supportsEditing NOTIFY supportsEditingChanged )
401 
402  public:
403 
409  {
410 
414  explicit LayerOptions( bool loadDefaultStyle = true,
415  bool readExtentFromXml = false )
416  : loadDefaultStyle( loadDefaultStyle )
417  , readExtentFromXml( readExtentFromXml )
418  {}
419 
424  explicit LayerOptions( const QgsCoordinateTransformContext &transformContext,
425  bool loadDefaultStyle = true,
426  bool readExtentFromXml = false
427  )
428  : loadDefaultStyle( loadDefaultStyle )
429  , readExtentFromXml( readExtentFromXml )
430  , transformContext( transformContext )
431  {}
432 
434  bool loadDefaultStyle = true;
435 
440  bool readExtentFromXml = false;
441 
447 
460 
473 
487  bool skipCrsValidation = false;
488 
489  };
490 
495  struct CORE_EXPORT DeleteContext
496  {
497 
501  explicit DeleteContext( bool cascade = false, QgsProject *project = nullptr ): cascade( cascade ), project( project ) {}
502 
509  QList<QgsVectorLayer *> handledLayers( bool includeAuxiliaryLayers = true ) const;
510 
514  QgsFeatureIds handledFeatures( QgsVectorLayer *layer ) const;
515 
516  QMap<QgsVectorLayer *, QgsFeatureIds> mHandledFeatures SIP_SKIP;
517  bool cascade;
519  };
520 
534  explicit QgsVectorLayer( const QString &path = QString(), const QString &baseName = QString(),
535  const QString &providerLib = "ogr", const QgsVectorLayer::LayerOptions &options = QgsVectorLayer::LayerOptions() );
536 
537  ~QgsVectorLayer() override;
538 
540  QgsVectorLayer( const QgsVectorLayer &rhs ) = delete;
542  QgsVectorLayer &operator=( QgsVectorLayer const &rhs ) = delete;
543 
544 #ifdef SIP_RUN
545  SIP_PYOBJECT __repr__();
546  % MethodCode
547  QString str = QStringLiteral( "<QgsVectorLayer: '%1' (%2)>" ).arg( sipCpp->name(), sipCpp->dataProvider() ? sipCpp->dataProvider()->name() : QStringLiteral( "Invalid" ) );
548  sipRes = PyUnicode_FromString( str.toUtf8().constData() );
549  % End
550 #endif
551 
560  QgsVectorLayer *clone() const override SIP_FACTORY;
561 
566  QString storageType() const;
567 
571  QString capabilitiesString() const;
572 
573 
583  bool isSqlQuery() const;
584 
591  Qgis::VectorLayerTypeFlags vectorLayerTypeFlags() const;
592 
593 
597  QString dataComment() const;
598 
606  QString displayField() const;
607 
615  void setDisplayExpression( const QString &displayExpression );
616 
623  QString displayExpression() const;
624 
625  QgsVectorDataProvider *dataProvider() FINAL;
626  const QgsVectorDataProvider *dataProvider() const FINAL SIP_SKIP;
627  QgsMapLayerTemporalProperties *temporalProperties() override;
628  QgsMapLayerElevationProperties *elevationProperties() override;
629  QgsAbstractProfileGenerator *createProfileGenerator( const QgsProfileRequest &request ) override SIP_FACTORY;
630 
641  void setProviderEncoding( const QString &encoding );
642 
644  void setCoordinateSystem();
645 
651  bool addJoin( const QgsVectorLayerJoinInfo &joinInfo );
652 
657  bool removeJoin( const QString &joinLayerId );
658 
663  QgsVectorLayerJoinBuffer *joinBuffer() { return mJoinBuffer; }
664 
669  const QgsVectorLayerJoinBuffer *joinBuffer() const { return mJoinBuffer; } SIP_SKIP;
670 
671  const QList<QgsVectorLayerJoinInfo> vectorJoins() const;
672 
681  bool setDependencies( const QSet<QgsMapLayerDependency> &layers ) FINAL;
682 
690  QSet<QgsMapLayerDependency> dependencies() const FINAL;
691 
702  int addExpressionField( const QString &exp, const QgsField &fld );
703 
711  void removeExpressionField( int index );
712 
722  QString expressionField( int index ) const;
723 
733  void updateExpressionField( int index, const QString &exp );
734 
741  QgsActionManager *actions() { return mActions; }
742 
748  const QgsActionManager *actions() const SIP_SKIP { return mActions; }
749 
755  int selectedFeatureCount() const;
756 
766  Q_INVOKABLE void selectByRect( QgsRectangle &rect, Qgis::SelectBehavior behavior = Qgis::SelectBehavior::SetSelection );
767 
778  Q_INVOKABLE void selectByExpression( const QString &expression, Qgis::SelectBehavior behavior = Qgis::SelectBehavior::SetSelection, QgsExpressionContext *context = nullptr );
779 
790  Q_INVOKABLE void selectByIds( const QgsFeatureIds &ids, Qgis::SelectBehavior behavior = Qgis::SelectBehavior::SetSelection );
791 
803  Q_INVOKABLE void modifySelection( const QgsFeatureIds &selectIds, const QgsFeatureIds &deselectIds );
804 
806  Q_INVOKABLE void invertSelection();
807 
809  Q_INVOKABLE void selectAll();
810 
818  Q_INVOKABLE void invertSelectionInRectangle( QgsRectangle &rect );
819 
832  Q_INVOKABLE QgsFeatureList selectedFeatures() const;
833 
849  QgsFeatureIterator getSelectedFeatures( QgsFeatureRequest request = QgsFeatureRequest() ) const;
850 
858  Q_INVOKABLE const QgsFeatureIds &selectedFeatureIds() const;
859 
861  Q_INVOKABLE QgsRectangle boundingBoxOfSelected() const;
862 
870  bool labelsEnabled() const;
871 
881  void setLabelsEnabled( bool enabled );
882 
888  bool diagramsEnabled() const;
889 
891  void setDiagramRenderer( QgsDiagramRenderer *r SIP_TRANSFER );
892  const QgsDiagramRenderer *diagramRenderer() const { return mDiagramRenderer; }
893 
894  void setDiagramLayerSettings( const QgsDiagramLayerSettings &s );
895  const QgsDiagramLayerSettings *diagramLayerSettings() const { return mDiagramLayerSettings; }
896 
903  QgsFeatureRenderer *renderer() { return mRenderer; }
904 
912  const QgsFeatureRenderer *renderer() const SIP_SKIP { return mRenderer; }
913 
920  void setRenderer( QgsFeatureRenderer *r SIP_TRANSFER );
921 
931  void addFeatureRendererGenerator( QgsFeatureRendererGenerator *generator SIP_TRANSFER );
932 
942  void removeFeatureRendererGenerator( const QString &id );
943 
951  QList< const QgsFeatureRendererGenerator * > featureRendererGenerators() const;
952 
954  Q_INVOKABLE QgsWkbTypes::GeometryType geometryType() const;
955 
957  Q_INVOKABLE QgsWkbTypes::Type wkbType() const FINAL;
958 
959  QgsCoordinateReferenceSystem sourceCrs() const FINAL;
960  QString sourceName() const FINAL;
961 
966  bool readXml( const QDomNode &layer_node, QgsReadWriteContext &context ) FINAL;
967 
972  bool writeXml( QDomNode &layer_node, QDomDocument &doc, const QgsReadWriteContext &context ) const FINAL;
973 
974  QString encodedSource( const QString &source, const QgsReadWriteContext &context ) const FINAL;
975  QString decodedSource( const QString &source, const QString &provider, const QgsReadWriteContext &context ) const FINAL;
976 
981  void resolveReferences( QgsProject *project ) FINAL;
982 
999  virtual void saveStyleToDatabase( const QString &name, const QString &description,
1000  bool useAsDefault, const QString &uiFileContent,
1001  QString &msgError SIP_OUT,
1002  QgsMapLayer::StyleCategories categories = QgsMapLayer::AllStyleCategories );
1003 
1013  virtual int listStylesInDatabase( QStringList &ids SIP_OUT, QStringList &names SIP_OUT,
1014  QStringList &descriptions SIP_OUT, QString &msgError SIP_OUT );
1015 
1019  virtual QString getStyleFromDatabase( const QString &styleId, QString &msgError SIP_OUT );
1020 
1028  virtual bool deleteStyleFromDatabase( const QString &styleId, QString &msgError SIP_OUT );
1029 
1037  virtual QString loadNamedStyle( const QString &theURI, bool &resultFlag SIP_OUT, bool loadFromLocalDb,
1038  QgsMapLayer::StyleCategories categories = QgsMapLayer::AllStyleCategories );
1039 
1044  QString loadNamedStyle( const QString &theURI, bool &resultFlag SIP_OUT,
1045  QgsMapLayer::StyleCategories categories = QgsMapLayer::AllStyleCategories ) FINAL;
1046 
1060  bool loadAuxiliaryLayer( const QgsAuxiliaryStorage &storage, const QString &key = QString() );
1061 
1071  void setAuxiliaryLayer( QgsAuxiliaryLayer *layer SIP_TRANSFER = nullptr );
1072 
1078  QgsAuxiliaryLayer *auxiliaryLayer();
1079 
1085  const QgsAuxiliaryLayer *auxiliaryLayer() const SIP_SKIP;
1086 
1087  bool readSymbology( const QDomNode &layerNode, QString &errorMessage,
1088  QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories = QgsMapLayer::AllStyleCategories ) FINAL;
1089  bool readStyle( const QDomNode &node, QString &errorMessage,
1090  QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories = QgsMapLayer::AllStyleCategories ) FINAL;
1091  bool writeSymbology( QDomNode &node, QDomDocument &doc, QString &errorMessage,
1092  const QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories = QgsMapLayer::AllStyleCategories ) const FINAL;
1093  bool writeStyle( QDomNode &node, QDomDocument &doc, QString &errorMessage,
1094  const QgsReadWriteContext &context, QgsMapLayer::StyleCategories categories = QgsMapLayer::AllStyleCategories ) const FINAL;
1095 
1104  bool writeSld( QDomNode &node, QDomDocument &doc, QString &errorMessage, const QVariantMap &props = QVariantMap() ) const;
1105 
1106  bool readSld( const QDomNode &node, QString &errorMessage ) FINAL;
1107 
1113  long long featureCount( const QString &legendKey ) const;
1114 
1121  QgsFeatureIds symbolFeatureIds( const QString &legendKey ) const;
1122 
1133  FeatureAvailability hasFeatures() const FINAL;
1134 
1135 
1136  QString loadDefaultStyle( bool &resultFlag SIP_OUT ) FINAL;
1137 
1151  QgsVectorLayerFeatureCounter *countSymbolFeatures( bool storeSymbolFids = false );
1152 
1160  virtual bool setSubsetString( const QString &subset );
1161 
1166  virtual QString subsetString() const;
1167 
1173  QgsFeatureIterator getFeatures( const QgsFeatureRequest &request = QgsFeatureRequest() ) const FINAL;
1174 
1178  inline QgsFeatureIterator getFeatures( const QString &expression )
1179  {
1180  return getFeatures( QgsFeatureRequest( expression ) );
1181  }
1182 
1187  inline QgsFeature getFeature( QgsFeatureId fid ) const
1188  {
1189  QgsFeature feature;
1190  getFeatures( QgsFeatureRequest( fid ) ).nextFeature( feature );
1191  return feature;
1192  }
1193 
1198  QgsGeometry getGeometry( QgsFeatureId fid ) const;
1199 
1204  {
1205  return getFeatures( QgsFeatureRequest( fids ) );
1206  }
1207 
1211  inline QgsFeatureIterator getFeatures( const QgsRectangle &rectangle )
1212  {
1213  return getFeatures( QgsFeatureRequest( rectangle ) );
1214  }
1215 
1216  bool addFeature( QgsFeature &feature, QgsFeatureSink::Flags flags = QgsFeatureSink::Flags() ) FINAL;
1217 
1243  bool updateFeature( QgsFeature &feature, bool skipDefaultValues = false );
1244 
1256  bool insertVertex( double x, double y, QgsFeatureId atFeatureId, int beforeVertex );
1257 
1269  bool insertVertex( const QgsPoint &point, QgsFeatureId atFeatureId, int beforeVertex );
1270 
1281  bool moveVertex( double x, double y, QgsFeatureId atFeatureId, int atVertex );
1282 
1293  bool moveVertex( const QgsPoint &p, QgsFeatureId atFeatureId, int atVertex ) SIP_PYNAME( moveVertexV2 );
1294 
1305  Qgis::VectorEditResult deleteVertex( QgsFeatureId featureId, int vertex );
1306 
1314  Q_INVOKABLE bool deleteSelectedFeatures( int *deletedCount = nullptr, QgsVectorLayer::DeleteContext *context = nullptr );
1315 
1336  Q_DECL_DEPRECATED Qgis::GeometryOperationResult addRing( const QVector<QgsPointXY> &ring, QgsFeatureId *featureId = nullptr ) SIP_DEPRECATED;
1337 
1338 
1358  Q_INVOKABLE Qgis::GeometryOperationResult addRing( const QgsPointSequence &ring, QgsFeatureId *featureId = nullptr );
1359 
1380  Q_INVOKABLE Qgis::GeometryOperationResult addRing( QgsCurve *ring SIP_TRANSFER, QgsFeatureId *featureId = nullptr ) SIP_PYNAME( addCurvedRing );
1381 
1401  Q_DECL_DEPRECATED Qgis::GeometryOperationResult addPart( const QList<QgsPointXY> &ring ) SIP_DEPRECATED;
1402 
1403 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
1404 
1425  Q_DECL_DEPRECATED Qgis::GeometryOperationResult addPart( const QVector<QgsPointXY> &ring ) SIP_PYNAME( addPartV2 ) SIP_DEPRECATED;
1426 #endif
1427 
1447  Q_INVOKABLE Qgis::GeometryOperationResult addPart( const QgsPointSequence &ring ) SIP_PYNAME( addPartV2 );
1448 
1456  Q_INVOKABLE Qgis::GeometryOperationResult addPart( QgsCurve *ring SIP_TRANSFER ) SIP_PYNAME( addCurvedPart );
1457 
1469  Q_INVOKABLE int translateFeature( QgsFeatureId featureId, double dx, double dy );
1470 
1491  Q_DECL_DEPRECATED Qgis::GeometryOperationResult splitParts( const QVector<QgsPointXY> &splitLine, bool topologicalEditing = false ) SIP_DEPRECATED;
1492 
1512  Q_INVOKABLE Qgis::GeometryOperationResult splitParts( const QgsPointSequence &splitLine, bool topologicalEditing = false );
1513 
1534  Q_DECL_DEPRECATED Qgis::GeometryOperationResult splitFeatures( const QVector<QgsPointXY> &splitLine, bool topologicalEditing = false ) SIP_DEPRECATED;
1535 
1555  Q_INVOKABLE Qgis::GeometryOperationResult splitFeatures( const QgsPointSequence &splitLine, bool topologicalEditing = false );
1556 
1579  Q_INVOKABLE Qgis::GeometryOperationResult splitFeatures( const QgsCurve *curve, QgsPointSequence &topologyTestPoints SIP_OUT, bool preserveCircular = false, bool topologicalEditing = false );
1580 
1594  int addTopologicalPoints( const QgsGeometry &geom );
1595 
1612  Q_DECL_DEPRECATED int addTopologicalPoints( const QgsPointXY &p ) SIP_DEPRECATED;
1613 
1630  int addTopologicalPoints( const QgsPoint &p );
1631 
1648  int addTopologicalPoints( const QgsPointSequence &ps );
1649 
1656  const QgsAbstractVectorLayerLabeling *labeling() const SIP_SKIP { return mLabeling; }
1657 
1664  QgsAbstractVectorLayerLabeling *labeling() { return mLabeling; }
1665 
1670  void setLabeling( QgsAbstractVectorLayerLabeling *labeling SIP_TRANSFER );
1671 
1673  bool isEditable() const FINAL;
1674 
1676  bool isSpatial() const FINAL;
1677 
1679  bool isModified() const override;
1680 
1687  bool isAuxiliaryField( int index, int &srcIndex ) const;
1688 
1690  void reload() FINAL;
1691 
1696  QgsMapLayerRenderer *createMapRenderer( QgsRenderContext &rendererContext ) FINAL SIP_FACTORY;
1697 
1698  QgsRectangle extent() const FINAL;
1699  QgsRectangle sourceExtent() const FINAL;
1700 
1707  QgsFields fields() const FINAL;
1708 
1712  inline QgsAttributeList attributeList() const { return mFields.allAttributesList(); }
1713 
1717  QgsAttributeList primaryKeyAttributes() const;
1718 
1724  long long featureCount() const FINAL;
1725 
1730  bool setReadOnly( bool readonly = true );
1731 
1737  bool supportsEditing() const override;
1738 
1759  bool changeGeometry( QgsFeatureId fid, QgsGeometry &geometry, bool skipDefaultValue = false );
1760 
1791  bool changeAttributeValue( QgsFeatureId fid, int field, const QVariant &newValue, const QVariant &oldValue = QVariant(), bool skipDefaultValues = false );
1792 
1828  bool changeAttributeValues( QgsFeatureId fid, const QgsAttributeMap &newValues, const QgsAttributeMap &oldValues = QgsAttributeMap(), bool skipDefaultValues = false );
1829 
1839  bool addAttribute( const QgsField &field );
1840 
1846  void setFieldAlias( int index, const QString &aliasString );
1847 
1853  void removeFieldAlias( int index );
1854 
1865  bool renameAttribute( int index, const QString &newName );
1866 
1873  QString attributeAlias( int index ) const;
1874 
1876  QString attributeDisplayName( int index ) const;
1877 
1879  QgsStringMap attributeAliases() const;
1880 
1885  Q_DECL_DEPRECATED QSet<QString> excludeAttributesWms() const SIP_DEPRECATED;
1886 
1891  Q_DECL_DEPRECATED void setExcludeAttributesWms( const QSet<QString> &att ) SIP_DEPRECATED;
1892 
1897  Q_DECL_DEPRECATED QSet<QString> excludeAttributesWfs() const SIP_DEPRECATED;
1898 
1903  Q_DECL_DEPRECATED void setExcludeAttributesWfs( const QSet<QString> &att ) SIP_DEPRECATED;
1904 
1913  virtual bool deleteAttribute( int attr );
1914 
1922  bool deleteAttributes( const QList<int> &attrs );
1923 
1924  bool addFeatures( QgsFeatureList &features, QgsFeatureSink::Flags flags = QgsFeatureSink::Flags() ) FINAL;
1925 
1936  bool deleteFeature( QgsFeatureId fid, DeleteContext *context = nullptr );
1937 
1951  bool deleteFeatures( const QgsFeatureIds &fids, DeleteContext *context = nullptr );
1952 
1976  Q_INVOKABLE bool commitChanges( bool stopEditing = true );
1977 
1983  QStringList commitErrors() const;
1984 
1994  Q_INVOKABLE bool rollBack( bool deleteBuffer = true );
1995 
2002  QList<QgsRelation> referencingRelations( int idx ) const;
2003 
2010  QList<QgsWeakRelation> weakRelations( ) const SIP_SKIP;
2011 
2012 
2014  Q_INVOKABLE QgsVectorLayerEditBuffer *editBuffer() { return mEditBuffer; }
2015 
2020  const QgsVectorLayerEditBuffer *editBuffer() const SIP_SKIP { return mEditBuffer; }
2021 
2026  void beginEditCommand( const QString &text );
2027 
2029  void endEditCommand();
2030 
2032  void destroyEditCommand();
2033 
2038  Q_DECL_DEPRECATED static void drawVertexMarker( double x, double y, QPainter &p, Qgis::VertexMarkerType type, int vertexSize );
2039 
2048  void updateFields();
2049 
2064  QVariant defaultValue( int index, const QgsFeature &feature = QgsFeature(),
2065  QgsExpressionContext *context = nullptr ) const;
2066 
2078  void setDefaultValueDefinition( int index, const QgsDefaultValue &definition );
2079 
2090  QgsDefaultValue defaultValueDefinition( int index ) const;
2091 
2099  QgsFieldConstraints::Constraints fieldConstraints( int fieldIndex ) const;
2100 
2106  QMap< QgsFieldConstraints::Constraint, QgsFieldConstraints::ConstraintStrength> fieldConstraintsAndStrength( int fieldIndex ) const;
2107 
2117 
2125  void removeFieldConstraint( int index, QgsFieldConstraints::Constraint constraint );
2126 
2134  QString constraintExpression( int index ) const;
2135 
2143  QString constraintDescription( int index ) const;
2144 
2153  void setConstraintExpression( int index, const QString &expression, const QString &description = QString() );
2154 
2160  void setFieldConfigurationFlags( int index, QgsField::ConfigurationFlags flags ) SIP_SKIP;
2161 
2166  void setFieldConfigurationFlag( int index, QgsField::ConfigurationFlag flag, bool active ) SIP_SKIP;
2167 
2173  QgsField::ConfigurationFlags fieldConfigurationFlags( int index ) const SIP_SKIP;
2174 
2178  void setEditorWidgetSetup( int index, const QgsEditorWidgetSetup &setup );
2179 
2186  QgsEditorWidgetSetup editorWidgetSetup( int index ) const;
2187 
2199  QSet<QVariant> uniqueValues( int fieldIndex, int limit = -1 ) const FINAL;
2200 
2214  QStringList uniqueStringsMatching( int index, const QString &substring, int limit = -1,
2215  QgsFeedback *feedback = nullptr ) const;
2216 
2231  QVariant minimumValue( int index ) const FINAL;
2232 
2247  QVariant maximumValue( int index ) const FINAL;
2248 
2249 
2269  void minimumAndMaximumValue( int index, QVariant &minimum SIP_OUT, QVariant &maximum SIP_OUT ) const;
2270 
2285  QVariant aggregate( QgsAggregateCalculator::Aggregate aggregate,
2286  const QString &fieldOrExpression,
2287  const QgsAggregateCalculator::AggregateParameters &parameters = QgsAggregateCalculator::AggregateParameters(),
2288  QgsExpressionContext *context = nullptr,
2289  bool *ok = nullptr,
2290  QgsFeatureIds *fids = nullptr,
2291  QgsFeedback *feedback = nullptr,
2292  QString *error SIP_PYARGREMOVE = nullptr ) const;
2293 
2295  void setFeatureBlendMode( QPainter::CompositionMode blendMode );
2297  QPainter::CompositionMode featureBlendMode() const;
2298 
2299  QString htmlMetadata() const FINAL;
2300 
2305  void setSimplifyMethod( const QgsVectorSimplifyMethod &simplifyMethod ) { mSimplifyMethod = simplifyMethod; }
2306 
2311  inline const QgsVectorSimplifyMethod &simplifyMethod() const { return mSimplifyMethod; }
2312 
2318  bool simplifyDrawingCanbeApplied( const QgsRenderContext &renderContext, QgsVectorSimplifyMethod::SimplifyHint simplifyHint ) const;
2319 
2327  QgsConditionalLayerStyles *conditionalStyles() const;
2328 
2333  QgsAttributeTableConfig attributeTableConfig() const;
2334 
2339  void setAttributeTableConfig( const QgsAttributeTableConfig &attributeTableConfig );
2340 
2348  QString mapTipTemplate() const;
2349 
2357  void setMapTipTemplate( const QString &mapTipTemplate );
2358 
2360 
2361  QgsExpressionContextScope *createExpressionContextScope() const FINAL SIP_FACTORY;
2362 
2370  QgsEditFormConfig editFormConfig() const;
2371 
2378  void setEditFormConfig( const QgsEditFormConfig &editFormConfig );
2379 
2387  void setReadExtentFromXml( bool readExtentFromXml );
2388 
2396  bool readExtentFromXml() const;
2397 
2403  bool isEditCommandActive() const { return mEditCommandActive; }
2404 
2410  QgsGeometryOptions *geometryOptions() const;
2411 
2429  bool allowCommit() const SIP_SKIP;
2430 
2448  void setAllowCommit( bool allowCommit ) SIP_SKIP;
2449 
2455  QgsStoredExpressionManager *storedExpressionManager() { return mStoredExpressionManager; }
2456 
2457  public slots:
2458 
2466  void select( QgsFeatureId featureId );
2467 
2475  Q_INVOKABLE void select( const QgsFeatureIds &featureIds );
2476 
2484  void deselect( QgsFeatureId featureId );
2485 
2493  Q_INVOKABLE void deselect( const QgsFeatureIds &featureIds );
2494 
2501  Q_INVOKABLE void removeSelection();
2502 
2513  void reselect();
2514 
2521  virtual void updateExtents( bool force = false );
2522 
2537  Q_INVOKABLE bool startEditing();
2538 
2544  virtual void setTransformContext( const QgsCoordinateTransformContext &transformContext ) override;
2545 
2547 
2548  bool accept( QgsStyleEntityVisitorInterface *visitor ) const override;
2549 
2550  signals:
2551 
2559  void selectionChanged( const QgsFeatureIds &selected, const QgsFeatureIds &deselected, bool clearAndSelect );
2560 
2567 
2569  void beforeModifiedCheck() const;
2570 
2573 
2579  void beforeCommitChanges( bool stopEditing );
2580 
2583 
2589 
2595 
2604  void attributeAdded( int idx );
2605 
2612  void beforeAddingExpressionField( const QString &fieldName );
2613 
2622  void attributeDeleted( int idx );
2623 
2631 
2638 
2648 
2658  void featuresDeleted( const QgsFeatureIds &fids );
2659 
2665 
2671 
2680  void attributeValueChanged( QgsFeatureId fid, int idx, const QVariant &value );
2681 
2689  void geometryChanged( QgsFeatureId fid, const QgsGeometry &geometry );
2690 
2692  void committedAttributesDeleted( const QString &layerId, const QgsAttributeList &deletedAttributes );
2694  void committedAttributesAdded( const QString &layerId, const QList<QgsField> &addedAttributes );
2696  void committedFeaturesAdded( const QString &layerId, const QgsFeatureList &addedFeatures );
2698  void committedFeaturesRemoved( const QString &layerId, const QgsFeatureIds &deletedFeatureIds );
2700  void committedAttributeValuesChanges( const QString &layerId, const QgsChangedAttributesMap &changedAttributesValues );
2702  void committedGeometriesChanges( const QString &layerId, const QgsGeometryMap &changedGeometries );
2703 
2705  void labelingFontNotFound( QgsVectorLayer *layer, const QString &fontfamily );
2706 
2708  void featureBlendModeChanged( QPainter::CompositionMode blendMode );
2709 
2715  void editCommandStarted( const QString &text );
2716 
2723 
2730 
2740  void readCustomSymbology( const QDomElement &element, QString &errorMessage );
2741 
2751  void writeCustomSymbology( QDomElement &element, QDomDocument &doc, QString &errorMessage ) const;
2752 
2759 
2766 
2770  void raiseError( const QString &msg );
2771 
2778 
2786 
2793 
2800 
2801  protected:
2803  void setExtent( const QgsRectangle &rect ) FINAL;
2804 
2805  private slots:
2806  void invalidateSymbolCountedFlag();
2807  void onFeatureCounterCompleted();
2808  void onFeatureCounterTerminated();
2809  void onJoinedFieldsChanged();
2810  void onFeatureDeleted( QgsFeatureId fid );
2811  void onRelationsLoaded();
2812  void onSymbolsCounted();
2813  void onDirtyTransaction( const QString &sql, const QString &name );
2814  void emitDataChanged();
2815  void onAfterCommitChangesDependency();
2816 
2817  private:
2818  void updateDefaultValues( QgsFeatureId fid, QgsFeature feature = QgsFeature() );
2819 
2823  bool isReadOnly() const FINAL;
2824 
2831  bool setDataProvider( QString const &provider, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() );
2832 
2844  void setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) override;
2845 
2847  void readSldLabeling( const QDomNode &node );
2848 
2850  bool readSldTextSymbolizer( const QDomNode &node, QgsPalLayerSettings &settings ) const;
2851 
2853  QgsAbstractVectorLayerLabeling *readLabelingFromCustomProperties();
2854 
2855  bool deleteFeatureCascade( QgsFeatureId fid, DeleteContext *context = nullptr );
2856 
2857 #ifdef SIP_RUN
2858  QgsVectorLayer( const QgsVectorLayer &rhs );
2859 #endif
2861  void minimumOrMaximumValue( int index, QVariant *minimum, QVariant *maximum ) const;
2862 
2863  void createEditBuffer();
2864  void clearEditBuffer();
2865 
2866  QgsConditionalLayerStyles *mConditionalStyles = nullptr;
2867 
2869  QgsVectorDataProvider *mDataProvider = nullptr;
2870 
2872  QgsVectorLayerTemporalProperties *mTemporalProperties = nullptr;
2873 
2874  QgsVectorLayerElevationProperties *mElevationProperties = nullptr;
2875 
2877  QString mDisplayExpression;
2878 
2879  QString mMapTipTemplate;
2880 
2882  QgsActionManager *mActions = nullptr;
2883 
2885  bool mReadOnly = false;
2886 
2892  QgsFeatureIds mSelectedFeatureIds;
2893 
2897  QgsFeatureIds mPreviousSelectedFeatureIds;
2898 
2900  QgsFields mFields;
2901 
2903  QgsStringMap mAttributeAliasMap;
2904 
2906  QMap<QString, QgsDefaultValue> mDefaultExpressionMap;
2907 
2909  QSet<int> mDefaultValueOnUpdateFields;
2910 
2912  QMap< QString, QgsFieldConstraints::Constraints > mFieldConstraints;
2913 
2915  QMap< QPair< QString, QgsFieldConstraints::Constraint >, QgsFieldConstraints::ConstraintStrength > mFieldConstraintStrength;
2916 
2918  QMap< QString, QPair< QString, QString > > mFieldConstraintExpressions;
2919 
2920  QMap< QString, QgsField::ConfigurationFlags > mFieldConfigurationFlags;
2921  QMap< QString, QgsEditorWidgetSetup > mFieldWidgetSetups;
2922 
2924  QgsEditFormConfig mEditFormConfig;
2925 
2928 
2930  QgsFeatureRenderer *mRenderer = nullptr;
2931 
2933  QgsVectorSimplifyMethod mSimplifyMethod;
2934 
2936  QgsAbstractVectorLayerLabeling *mLabeling = nullptr;
2937 
2939  bool mLabelsEnabled = false;
2940 
2942  bool mLabelFontNotFoundNotified = false;
2943 
2945  QPainter::CompositionMode mFeatureBlendMode = QPainter::CompositionMode_SourceOver;
2946 
2948  bool mVertexMarkerOnlyForSelection = false;
2949 
2950  QStringList mCommitErrors;
2951 
2953  QgsVectorLayerEditBuffer *mEditBuffer = nullptr;
2957 
2958  //stores information about joined layers
2959  QgsVectorLayerJoinBuffer *mJoinBuffer = nullptr;
2960 
2962  QgsExpressionFieldBuffer *mExpressionFieldBuffer = nullptr;
2963 
2964  //diagram rendering object. 0 if diagram drawing is disabled
2965  QgsDiagramRenderer *mDiagramRenderer = nullptr;
2966 
2967  //stores infos about diagram placement (placement type, priority, position distance)
2968  QgsDiagramLayerSettings *mDiagramLayerSettings = nullptr;
2969 
2970  mutable bool mValidExtent = false;
2971  mutable bool mLazyExtent = true;
2972 
2974  std::unique_ptr<QgsAuxiliaryLayer> mAuxiliaryLayer;
2975 
2977  QString mAuxiliaryLayerKey;
2978 
2979  // Features in renderer classes counted
2980  bool mSymbolFeatureCounted = false;
2981 
2982  // Feature counts for each renderer legend key
2983  QHash<QString, long long> mSymbolFeatureCountMap;
2984  QHash<QString, QgsFeatureIds> mSymbolFeatureIdMap;
2985 
2987  bool mEditCommandActive = false;
2988 
2990  bool mCommitChangesActive = false;
2991 
2992  bool mReadExtentFromXml;
2993  QgsRectangle mXmlExtent;
2994 
2995  QgsFeatureIds mDeletedFids;
2996 
2997  QgsAttributeTableConfig mAttributeTableConfig;
2998 
2999  mutable QMutex mFeatureSourceConstructorMutex;
3000 
3001  QgsVectorLayerFeatureCounter *mFeatureCounter = nullptr;
3002 
3003  std::unique_ptr<QgsGeometryOptions> mGeometryOptions;
3004 
3005  bool mAllowCommit = true;
3006 
3008  QgsStoredExpressionManager *mStoredExpressionManager = nullptr;
3009 
3011 
3013  bool mDataChangedFired = false;
3014 
3015  QList<QgsWeakRelation> mWeakRelations;
3016 
3017  bool mSetLegendFromStyle = false;
3018 
3019  QList< QgsFeatureRendererGenerator * > mRendererGenerators;
3020 
3022  QTimer *mRefreshRendererTimer = nullptr;
3023 };
3024 
3025 
3026 
3027 // clazy:excludeall=qstring-allocations
3028 
3029 #endif
The Qgis class provides global constants for use throughout the application.
Definition: qgis.h:72
GeometryOperationResult
Success or failure of a geometry operation.
Definition: qgis.h:902
VertexMarkerType
Editing vertex markers, used for showing vertices during a edit operation.
Definition: qgis.h:807
SelectBehavior
Specifies how a selection should be applied.
Definition: qgis.h:778
@ 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.
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:36
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)
An interface for objects which generate feature renderers for vector layers.
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.
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.
SpatialIndexPresence
Enumeration of spatial index presence states.
virtual QgsWkbTypes::Type wkbType() const =0
Returns the geometry type for features returned by this 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.
virtual SpatialIndexPresence hasSpatialIndex() const
Returns an enum value representing the presence of a valid spatial index on the source,...
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition: qgsfeature.h:56
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition: qgsfeedback.h:45
ConstraintStrength
Strength of constraints.
@ ConstraintStrengthHard
Constraint must be honored before feature can be accepted.
Constraint
Constraints which may be present on a field.
Encapsulate a field in an attribute table or data source.
Definition: qgsfield.h:51
ConfigurationFlag
Configuration flags for fields These flags are meant to be user-configurable and are not describing a...
Definition: qgsfield.h:80
Container of fields for a vector layer.
Definition: qgsfields.h:45
The QgsGeometryOptions class contains options to automatically adjust geometries to constraints on a ...
A geometry is the spatial representation of a feature.
Definition: qgsgeometry.h:125
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 temporal properties.
Base class for all map layer types.
Definition: qgsmaplayer.h:73
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 QSet< QgsMapLayerDependency > dependencies() const
Gets the list of dependencies.
friend class QgsVectorLayer
Definition: qgsmaplayer.h:2129
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.
Definition: qgsmaptopixel.h:39
Contains settings for how a map layer will be labeled.
A class to represent a 2D point.
Definition: qgspointxy.h:59
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:104
The class is used as a container of context for various read/write operations on other objects.
A rectangle specified with double values.
Definition: qgsrectangle.h:42
This class manages a set of relations between layers.
Contains information about the context of a rendering operation.
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:93
This is the base class for vector data providers.
The edit buffer group manages a group of edit buffers.
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 map layer temporal properties for vector layers.
Represents a vector layer which manages a vector based data sets.
const QgsActionManager * actions() const
Returns all layer actions defined on this layer.
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 mapTipTemplateChanged()
Emitted when the map tip changes.
void attributeAdded(int idx)
Will be emitted, when a new attribute has been added to this vector layer.
void allowCommitChanged()
Emitted whenever the allowCommitChanged() property of this layer changes.
void editCommandStarted(const QString &text)
Signal emitted when a new edit command has been started.
QgsVectorLayer & operator=(QgsVectorLayer const &rhs)=delete
QgsVectorLayer cannot be copied.
void editCommandDestroyed()
Signal emitted, when an edit command is destroyed.
QgsVectorLayer(const QgsVectorLayer &rhs)=delete
QgsVectorLayer cannot be copied.
const QgsDiagramLayerSettings * diagramLayerSettings() const
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.
QgsAbstractVectorLayerLabeling * labeling()
Access to labeling configuration.
void attributeDeleted(int idx)
Will be emitted, when an attribute has been deleted from this vector layer.
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.
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.
const QgsFeatureRenderer * renderer() const
Returns the feature renderer used for rendering the features in the layer in 2D map views.
QgsFeature getFeature(QgsFeatureId fid) const
Queries the layer for the feature with the given id.
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 QgsVectorLayerJoinBuffer * joinBuffer() const
Returns a const pointer on join buffer object.
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.
void beforeRollBack()
Emitted before changes are rolled back.
const QgsDiagramRenderer * diagramRenderer() const
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 QgsVectorSimplifyMethod & simplifyMethod() const
Returns the simplification settings for fast rendering of features.
void beforeModifiedCheck() const
Emitted when the layer is checked for modifications. Use for last-minute additions.
const QgsVectorLayerEditBuffer * editBuffer() const
Buffer with uncommitted editing operations.
QgsFeatureRenderer * renderer()
Returns the feature renderer used for rendering the features in the layer in 2D map views.
This class contains information how to simplify geometries fetched from a vector layer.
SimplifyHint
Simplification flags for fast rendering of features.
The QgsWeakRelation class represent a QgsRelation with possibly unresolved layers or unmatched fields...
GeometryType
The geometry types are used to group QgsWkbTypes::Type in a coarse way.
Definition: qgswkbtypes.h:141
Type
The WKB type describes the number of dimensions a geometry has.
Definition: qgswkbtypes.h:70
#define str(x)
Definition: qgis.cpp:37
QMap< QString, QString > QgsStringMap
Definition: qgis.h:2776
#define SIP_DEPRECATED
Definition: qgis_sip.h:106
#define SIP_SKIP
Definition: qgis_sip.h:126
#define FINAL
Definition: qgis_sip.h:237
#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
Definition: qgsattributes.h:38
QMap< QgsFeatureId, QgsGeometry > QgsGeometryMap
Definition: qgsfeature.h:877
QMap< QgsFeatureId, QgsAttributeMap > QgsChangedAttributesMap
Definition: qgsfeature.h:868
QList< QgsFeature > QgsFeatureList
Definition: qgsfeature.h:882
QSet< QgsFeatureId > QgsFeatureIds
Definition: qgsfeatureid.h:37
qint64 QgsFeatureId
64 bit feature ids negative numbers are used for uncommitted/newly added features
Definition: qgsfeatureid.h:28
QList< int > QgsAttributeList
Definition: qgsfield.h:26
const QgsField & field
Definition: qgsfield.h:463
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.