QGIS API Documentation  3.37.0-Master (a5b4d9743e8)
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"
35 #include "qgsvectordataprovider.h"
37 #include "qgseditformconfig.h"
39 #include "qgsaggregatecalculator.h"
40 #include "qgsfeatureiterator.h"
43 #include "qgsexpressioncontext.h"
45 
46 class QPainter;
47 class QImage;
48 
50 class QgsActionManager;
52 class QgsCurve;
54 class QgsDiagramRenderer;
57 class QgsFeatureRenderer;
58 class QgsGeometry;
59 class QgsGeometryVertexIndex;
60 class QgsMapToPixel;
61 class QgsRectangle;
62 class QgsRectangle;
63 class QgsRelation;
64 class QgsWeakRelation;
65 class QgsRelationManager;
68 class QgsSymbol;
75 class QgsPoint;
76 class QgsFeedback;
78 class QgsAuxiliaryLayer;
79 class QgsGeometryOptions;
85 
86 #ifndef SIP_RUN
87 template<class T>
89 #endif
92 
93 
94 typedef QList<int> QgsAttributeList;
95 typedef QSet<int> QgsAttributeIds;
96 
97 // TODO QGIS4: Remove virtual from non-inherited methods (like isModified)
98 
400 {
401  Q_OBJECT
402 
403  Q_PROPERTY( QString subsetString READ subsetString WRITE setSubsetString NOTIFY subsetStringChanged )
404  Q_PROPERTY( QString displayExpression READ displayExpression WRITE setDisplayExpression NOTIFY displayExpressionChanged )
405  Q_PROPERTY( QgsEditFormConfig editFormConfig READ editFormConfig WRITE setEditFormConfig NOTIFY editFormConfigChanged )
406  Q_PROPERTY( bool readOnly READ isReadOnly WRITE setReadOnly NOTIFY readOnlyChanged )
407  Q_PROPERTY( bool supportsEditing READ supportsEditing NOTIFY supportsEditingChanged )
408 
409  public:
410 
411  static const QgsSettingsEntryBool *settingsSimplifyLocal SIP_SKIP;
412 
413  static const QgsSettingsEntryDouble *settingsSimplifyMaxScale SIP_SKIP;
414  static const QgsSettingsEntryDouble *settingsSimplifyDrawingTol SIP_SKIP;
417 
422  {
423 
427  explicit LayerOptions( bool loadDefaultStyle = true,
428  bool readExtentFromXml = false )
429  : loadDefaultStyle( loadDefaultStyle )
430  , readExtentFromXml( readExtentFromXml )
431  {}
432 
437  explicit LayerOptions( const QgsCoordinateTransformContext &transformContext,
438  bool loadDefaultStyle = true,
439  bool readExtentFromXml = false
440  )
441  : loadDefaultStyle( loadDefaultStyle )
442  , readExtentFromXml( readExtentFromXml )
443  , transformContext( transformContext )
444  {}
445 
447  bool loadDefaultStyle = true;
448 
453  bool readExtentFromXml = false;
454 
460 
473 
486 
500  bool skipCrsValidation = false;
501 
513  bool forceReadOnly = false;
514 
527  bool loadAllStoredStyles = false;
528  };
529 
534  struct CORE_EXPORT DeleteContext
535  {
536 
540  explicit DeleteContext( bool cascade = false, QgsProject *project = nullptr ): cascade( cascade ), project( project ) {}
541 
548  QList<QgsVectorLayer *> handledLayers( bool includeAuxiliaryLayers = true ) const;
549 
553  QgsFeatureIds handledFeatures( QgsVectorLayer *layer ) const;
554 
555  QMap<QgsVectorLayer *, QgsFeatureIds> mHandledFeatures SIP_SKIP;
556  bool cascade;
558  };
559 
573  explicit QgsVectorLayer( const QString &path = QString(), const QString &baseName = QString(),
574  const QString &providerLib = "ogr", const QgsVectorLayer::LayerOptions &options = QgsVectorLayer::LayerOptions() );
575 
576  ~QgsVectorLayer() override;
577 
579  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  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 
1170  inline QgsFeatureIterator getFeatures( const QgsRectangle &rectangle )
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 
1620  QgsAbstractVectorLayerLabeling *labeling() { return mLabeling; }
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  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 
1749  bool changeAttributeValue( QgsFeatureId fid, int field, const QVariant &newValue, const QVariant &oldValue = QVariant(), bool skipDefaultValues = false );
1750 
1785  bool changeAttributeValues( QgsFeatureId fid, const QgsAttributeMap &newValues, const QgsAttributeMap &oldValues = QgsAttributeMap(), bool skipDefaultValues = false );
1786 
1796  bool addAttribute( const QgsField &field );
1797 
1802  void setFieldAlias( int index, const QString &aliasString );
1803 
1808  void removeFieldAlias( int index );
1809 
1819  bool renameAttribute( int index, const QString &newName );
1820 
1827  QString attributeAlias( int index ) const;
1828 
1830  QString attributeDisplayName( int index ) const;
1831 
1833  QgsStringMap attributeAliases() const;
1834 
1835 #ifndef SIP_RUN
1836 
1842  void setFieldSplitPolicy( int index, Qgis::FieldDomainSplitPolicy policy );
1843 #else
1844 
1851  void setFieldSplitPolicy( int index, Qgis::FieldDomainSplitPolicy policy );
1852 
1853  % MethodCode
1854  if ( a0 < 0 || a0 >= sipCpp->fields().count() )
1855  {
1856  PyErr_SetString( PyExc_KeyError, QByteArray::number( a0 ) );
1857  sipIsErr = 1;
1858  }
1859  else
1860  {
1861  sipCpp->setFieldSplitPolicy( a0, a1 );
1862  }
1863  % End
1864 #endif
1865 
1870  Q_DECL_DEPRECATED QSet<QString> excludeAttributesWms() const SIP_DEPRECATED;
1871 
1876  Q_DECL_DEPRECATED void setExcludeAttributesWms( const QSet<QString> &att ) SIP_DEPRECATED;
1877 
1882  Q_DECL_DEPRECATED QSet<QString> excludeAttributesWfs() const SIP_DEPRECATED;
1883 
1888  Q_DECL_DEPRECATED void setExcludeAttributesWfs( const QSet<QString> &att ) SIP_DEPRECATED;
1889 
1898  virtual bool deleteAttribute( int attr );
1899 
1907  bool deleteAttributes( const QList<int> &attrs );
1908 
1909  bool addFeatures( QgsFeatureList &features, QgsFeatureSink::Flags flags = QgsFeatureSink::Flags() ) FINAL;
1910 
1921  bool deleteFeature( QgsFeatureId fid, DeleteContext *context = nullptr );
1922 
1936  bool deleteFeatures( const QgsFeatureIds &fids, DeleteContext *context = nullptr );
1937 
1961  Q_INVOKABLE bool commitChanges( bool stopEditing = true );
1962 
1968  QStringList commitErrors() const;
1969 
1979  Q_INVOKABLE bool rollBack( bool deleteBuffer = true );
1980 
1987  QList<QgsRelation> referencingRelations( int idx ) const;
1988 
1998  QList<QgsWeakRelation> weakRelations() const SIP_SKIP;
1999 
2008  void setWeakRelations( const QList< QgsWeakRelation > &relations ) SIP_SKIP;
2009 
2011  Q_INVOKABLE QgsVectorLayerEditBuffer *editBuffer() { return mEditBuffer; }
2012 
2017  const QgsVectorLayerEditBuffer *editBuffer() const SIP_SKIP { return mEditBuffer; }
2018 
2023  void beginEditCommand( const QString &text );
2024 
2026  void endEditCommand();
2027 
2029  void destroyEditCommand();
2030 
2035  Q_DECL_DEPRECATED static void drawVertexMarker( double x, double y, QPainter &p, Qgis::VertexMarkerType type, int vertexSize );
2036 
2045  void updateFields();
2046 
2060  QVariant defaultValue( int index, const QgsFeature &feature = QgsFeature(),
2061  QgsExpressionContext *context = nullptr ) const;
2062 
2073  void setDefaultValueDefinition( int index, const QgsDefaultValue &definition );
2074 
2084  QgsDefaultValue defaultValueDefinition( int index ) const;
2085 
2092  QgsFieldConstraints::Constraints fieldConstraints( int fieldIndex ) const;
2093 
2098  QMap< QgsFieldConstraints::Constraint, QgsFieldConstraints::ConstraintStrength> fieldConstraintsAndStrength( int fieldIndex ) const;
2099 
2108 
2115  void removeFieldConstraint( int index, QgsFieldConstraints::Constraint constraint );
2116 
2123  QString constraintExpression( int index ) const;
2124 
2131  QString constraintDescription( int index ) const;
2132 
2140  void setConstraintExpression( int index, const QString &expression, const QString &description = QString() );
2141 
2147  void setFieldConfigurationFlags( int index, Qgis::FieldConfigurationFlags flags );
2148 
2153  void setFieldConfigurationFlag( int index, Qgis::FieldConfigurationFlag flag, bool active );
2154 
2160  Qgis::FieldConfigurationFlags fieldConfigurationFlags( int index ) const;
2161 
2165  void setEditorWidgetSetup( int index, const QgsEditorWidgetSetup &setup );
2166 
2172  QgsEditorWidgetSetup editorWidgetSetup( int index ) const;
2173 
2185  QSet<QVariant> uniqueValues( int fieldIndex, int limit = -1 ) const FINAL;
2186 
2200  QStringList uniqueStringsMatching( int index, const QString &substring, int limit = -1,
2201  QgsFeedback *feedback = nullptr ) const;
2202 
2217  QVariant minimumValue( int index ) const FINAL;
2218 
2233  QVariant maximumValue( int index ) const FINAL;
2234 
2235 
2255  void minimumAndMaximumValue( int index, QVariant &minimum SIP_OUT, QVariant &maximum SIP_OUT ) const;
2256 
2270  QVariant aggregate( Qgis::Aggregate aggregate,
2271  const QString &fieldOrExpression,
2272  const QgsAggregateCalculator::AggregateParameters &parameters = QgsAggregateCalculator::AggregateParameters(),
2273  QgsExpressionContext *context = nullptr,
2274  bool *ok = nullptr,
2275  QgsFeatureIds *fids = nullptr,
2276  QgsFeedback *feedback = nullptr,
2277  QString *error SIP_PYARGREMOVE = nullptr ) const;
2278 
2280  void setFeatureBlendMode( QPainter::CompositionMode blendMode );
2282  QPainter::CompositionMode featureBlendMode() const;
2283 
2284  QString htmlMetadata() const FINAL;
2285 
2289  void setSimplifyMethod( const QgsVectorSimplifyMethod &simplifyMethod ) { mSimplifyMethod = simplifyMethod; }
2290 
2294  inline const QgsVectorSimplifyMethod &simplifyMethod() const { return mSimplifyMethod; }
2295 
2300  bool simplifyDrawingCanbeApplied( const QgsRenderContext &renderContext, QgsVectorSimplifyMethod::SimplifyHint simplifyHint ) const;
2301 
2308  QgsConditionalLayerStyles *conditionalStyles() const;
2309 
2314  QgsAttributeTableConfig attributeTableConfig() const;
2315 
2320  void setAttributeTableConfig( const QgsAttributeTableConfig &attributeTableConfig );
2321 
2323 
2324  QgsExpressionContextScope *createExpressionContextScope() const FINAL SIP_FACTORY;
2325 
2332  QgsEditFormConfig editFormConfig() const;
2333 
2339  void setEditFormConfig( const QgsEditFormConfig &editFormConfig );
2340 
2347  void setReadExtentFromXml( bool readExtentFromXml );
2348 
2355  bool readExtentFromXml() const;
2356 
2361  bool isEditCommandActive() const { return mEditCommandActive; }
2362 
2368  QgsGeometryOptions *geometryOptions() const;
2369 
2387  bool allowCommit() const SIP_SKIP;
2388 
2406  void setAllowCommit( bool allowCommit ) SIP_SKIP;
2407 
2413  QgsStoredExpressionManager *storedExpressionManager() { return mStoredExpressionManager; }
2414 
2415  public slots:
2416 
2424  void select( QgsFeatureId featureId );
2425 
2433  Q_INVOKABLE void select( const QgsFeatureIds &featureIds );
2434 
2442  void deselect( QgsFeatureId featureId );
2443 
2451  Q_INVOKABLE void deselect( const QgsFeatureIds &featureIds );
2452 
2459  Q_INVOKABLE void removeSelection();
2460 
2471  void reselect();
2472 
2479  virtual void updateExtents( bool force = false );
2480 
2495  Q_INVOKABLE bool startEditing();
2496 
2502  virtual void setTransformContext( const QgsCoordinateTransformContext &transformContext ) override;
2503 
2505 
2506  bool accept( QgsStyleEntityVisitorInterface *visitor ) const override;
2507 
2508  signals:
2509 
2517  void selectionChanged( const QgsFeatureIds &selected, const QgsFeatureIds &deselected, bool clearAndSelect );
2518 
2525 
2527  void beforeModifiedCheck() const;
2528 
2531 
2537  void beforeCommitChanges( bool stopEditing );
2538 
2541 
2547 
2553 
2562  void attributeAdded( int idx );
2563 
2570  void beforeAddingExpressionField( const QString &fieldName );
2571 
2580  void attributeDeleted( int idx );
2581 
2589 
2596 
2606 
2616  void featuresDeleted( const QgsFeatureIds &fids );
2617 
2623 
2629 
2638  void attributeValueChanged( QgsFeatureId fid, int idx, const QVariant &value );
2639 
2647  void geometryChanged( QgsFeatureId fid, const QgsGeometry &geometry );
2648 
2650  void committedAttributesDeleted( const QString &layerId, const QgsAttributeList &deletedAttributes );
2652  void committedAttributesAdded( const QString &layerId, const QList<QgsField> &addedAttributes );
2654  void committedFeaturesAdded( const QString &layerId, const QgsFeatureList &addedFeatures );
2656  void committedFeaturesRemoved( const QString &layerId, const QgsFeatureIds &deletedFeatureIds );
2658  void committedAttributeValuesChanges( const QString &layerId, const QgsChangedAttributesMap &changedAttributesValues );
2660  void committedGeometriesChanges( const QString &layerId, const QgsGeometryMap &changedGeometries );
2661 
2663  void labelingFontNotFound( QgsVectorLayer *layer, const QString &fontfamily );
2664 
2666  void featureBlendModeChanged( QPainter::CompositionMode blendMode );
2667 
2673  void editCommandStarted( const QString &text );
2674 
2681 
2688 
2698  void readCustomSymbology( const QDomElement &element, QString &errorMessage );
2699 
2709  void writeCustomSymbology( QDomElement &element, QDomDocument &doc, QString &errorMessage ) const;
2710 
2716 
2720  void raiseError( const QString &msg );
2721 
2727 
2736 
2743 
2749 
2750  protected:
2752  void setExtent( const QgsRectangle &rect ) FINAL;
2754  void setExtent3D( const QgsBox3D &rect ) FINAL;
2755 
2756  private slots:
2757  void invalidateSymbolCountedFlag();
2758  void onFeatureCounterCompleted();
2759  void onFeatureCounterTerminated();
2760  void onJoinedFieldsChanged();
2761  void onFeatureDeleted( QgsFeatureId fid );
2762  void onRelationsLoaded();
2763  void onSymbolsCounted();
2764  void onDirtyTransaction( const QString &sql, const QString &name );
2765  void emitDataChanged();
2766  void onAfterCommitChangesDependency();
2767 
2768  private:
2769  void updateDefaultValues( QgsFeatureId fid, QgsFeature feature = QgsFeature() );
2770 
2780  bool isReadOnly() const FINAL;
2781 
2788  bool setDataProvider( QString const &provider, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags = QgsDataProvider::ReadFlags() );
2789 
2801  void setDataSourcePrivate( const QString &dataSource, const QString &baseName, const QString &provider, const QgsDataProvider::ProviderOptions &options, QgsDataProvider::ReadFlags flags ) override;
2802 
2804  void readSldLabeling( const QDomNode &node );
2805 
2807  bool readSldTextSymbolizer( const QDomNode &node, QgsPalLayerSettings &settings ) const;
2808 
2810  QgsAbstractVectorLayerLabeling *readLabelingFromCustomProperties();
2811 
2812  bool deleteFeatureCascade( QgsFeatureId fid, DeleteContext *context = nullptr );
2813 
2814 #ifdef SIP_RUN
2815  QgsVectorLayer( const QgsVectorLayer &rhs );
2816 #endif
2818  void minimumOrMaximumValue( int index, QVariant *minimum, QVariant *maximum ) const;
2819 
2820  void createEditBuffer();
2821  void clearEditBuffer();
2822 
2823  QgsConditionalLayerStyles *mConditionalStyles = nullptr;
2824  QgsVectorDataProvider *mDataProvider = nullptr;
2825  QgsVectorLayerSelectionProperties *mSelectionProperties = nullptr;
2826  QgsVectorLayerTemporalProperties *mTemporalProperties = nullptr;
2827  QgsVectorLayerElevationProperties *mElevationProperties = nullptr;
2828 
2830  QString mDisplayExpression;
2831 
2833  QgsActionManager *mActions = nullptr;
2834 
2836  bool mDataSourceReadOnly = false;
2837 
2844  bool mReadOnly = false;
2845 
2851  QgsFeatureIds mSelectedFeatureIds;
2852 
2856  QgsFeatureIds mPreviousSelectedFeatureIds;
2857 
2859  QgsFields mFields;
2860 
2862  QgsStringMap mAttributeAliasMap;
2863 
2865  QMap<QString, QgsDefaultValue> mDefaultExpressionMap;
2866 
2868  QMap< QString, Qgis::FieldDomainSplitPolicy > mAttributeSplitPolicy;
2869 
2871  QSet<int> mDefaultValueOnUpdateFields;
2872 
2874  QMap< QString, QgsFieldConstraints::Constraints > mFieldConstraints;
2875 
2877  QMap< QPair< QString, QgsFieldConstraints::Constraint >, QgsFieldConstraints::ConstraintStrength > mFieldConstraintStrength;
2878 
2880  QMap< QString, QPair< QString, QString > > mFieldConstraintExpressions;
2881 
2882  QMap< QString, Qgis::FieldConfigurationFlags > mFieldConfigurationFlags;
2883  QMap< QString, QgsEditorWidgetSetup > mFieldWidgetSetups;
2884 
2886  QgsEditFormConfig mEditFormConfig;
2887 
2890 
2892  QgsFeatureRenderer *mRenderer = nullptr;
2893 
2895  QgsVectorSimplifyMethod mSimplifyMethod;
2896 
2898  QgsAbstractVectorLayerLabeling *mLabeling = nullptr;
2899 
2901  bool mLabelsEnabled = false;
2902 
2904  bool mLabelFontNotFoundNotified = false;
2905 
2907  QPainter::CompositionMode mFeatureBlendMode = QPainter::CompositionMode_SourceOver;
2908 
2910  bool mVertexMarkerOnlyForSelection = false;
2911 
2912  QStringList mCommitErrors;
2913 
2915  QgsVectorLayerEditBuffer *mEditBuffer = nullptr;
2919 
2920  //stores information about joined layers
2921  QgsVectorLayerJoinBuffer *mJoinBuffer = nullptr;
2922 
2924  QgsExpressionFieldBuffer *mExpressionFieldBuffer = nullptr;
2925 
2926  //diagram rendering object. 0 if diagram drawing is disabled
2927  QgsDiagramRenderer *mDiagramRenderer = nullptr;
2928 
2929  //stores infos about diagram placement (placement type, priority, position distance)
2930  QgsDiagramLayerSettings *mDiagramLayerSettings = nullptr;
2931 
2932  mutable bool mValidExtent2D = false;
2933  mutable bool mLazyExtent2D = true;
2934  mutable bool mValidExtent3D = false;
2935  mutable bool mLazyExtent3D = true;
2936 
2938  std::unique_ptr<QgsAuxiliaryLayer> mAuxiliaryLayer;
2939 
2941  QString mAuxiliaryLayerKey;
2942 
2943  // Features in renderer classes counted
2944  bool mSymbolFeatureCounted = false;
2945 
2946  // Feature counts for each renderer legend key
2947  QHash<QString, long long> mSymbolFeatureCountMap;
2948  QHash<QString, QgsFeatureIds> mSymbolFeatureIdMap;
2949 
2951  bool mEditCommandActive = false;
2952 
2954  bool mCommitChangesActive = false;
2955 
2956  bool mReadExtentFromXml;
2957  QgsRectangle mXmlExtent2D;
2958  QgsBox3D mXmlExtent3D;
2959 
2960  QgsFeatureIds mDeletedFids;
2961 
2962  QgsAttributeTableConfig mAttributeTableConfig;
2963 
2964  mutable QMutex mFeatureSourceConstructorMutex;
2965 
2966  QgsVectorLayerFeatureCounter *mFeatureCounter = nullptr;
2967 
2968  std::unique_ptr<QgsGeometryOptions> mGeometryOptions;
2969 
2970  bool mAllowCommit = true;
2971 
2973  QgsStoredExpressionManager *mStoredExpressionManager = nullptr;
2974 
2976 
2978  bool mDataChangedFired = false;
2979 
2980  QList<QgsWeakRelation> mWeakRelations;
2981 
2982  bool mSetLegendFromStyle = false;
2983 
2984  QList< QgsFeatureRendererGenerator * > mRendererGenerators;
2985 
2987  QTimer *mRefreshRendererTimer = nullptr;
2988 
2992  bool mLoadAllStoredStyle = false;
2993 
2994 };
2995 
2996 
2997 
2998 // clazy:excludeall=qstring-allocations
2999 
3000 #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:1596
SpatialIndexPresence
Enumeration of spatial index presence states.
Definition: qgis.h:349
FieldDomainSplitPolicy
Split policy for field domains.
Definition: qgis.h:3162
GeometryType
The geometry types are used to group Qgis::WkbType in a coarse way.
Definition: qgis.h:255
VertexMarkerType
Editing vertex markers, used for showing vertices during a edit operation.
Definition: qgis.h:1401
WkbType
The WKB type describes the number of dimensions a geometry has.
Definition: qgis.h:182
@ Unknown
Unknown.
FieldConfigurationFlag
Configuration flags for fields These flags are meant to be user-configurable and are not describing a...
Definition: qgis.h:1289
QFlags< FieldConfigurationFlag > FieldConfigurationFlags
Configuration flags for fields These flags are meant to be user-configurable and are not describing a...
Definition: qgis.h:1304
SelectBehavior
Specifies how a selection should be applied.
Definition: qgis.h:1339
@ 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.
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:56
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: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:162
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:75
virtual bool accept(QgsStyleEntityVisitorInterface *visitor) const
Accepts the specified symbology visitor, causing it to visit all symbols associated with the layer.
QFlags< ReadFlag > ReadFlags
Definition: qgsmaplayer.h:645
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
Definition: qgsmaplayer.h:2333
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: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.
Definition: qgsrectangle.h:42
This class manages a set of relations between layers.
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:94
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 layer selection properties for vector layers.
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 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...
#define str(x)
Definition: qgis.cpp:38
QMap< QString, QString > QgsStringMap
Definition: qgis.h:5702
#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
Definition: qgsattributes.h:39
QMap< QgsFeatureId, QgsGeometry > QgsGeometryMap
Definition: qgsfeature.h:912
QMap< QgsFeatureId, QgsAttributeMap > QgsChangedAttributesMap
Definition: qgsfeature.h:903
QList< QgsFeature > QgsFeatureList
Definition: qgsfeature.h:917
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: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.