18 #ifndef QGSVECTORLAYER_H
19 #define QGSVECTORLAYER_H
22 #include "qgis_core.h"
26 #include <QStringList>
60 class QgsGeometryVertexIndex;
390 Q_PROPERTY( QString subsetString READ subsetString WRITE setSubsetString NOTIFY subsetStringChanged )
391 Q_PROPERTY( QString displayExpression READ displayExpression WRITE setDisplayExpression NOTIFY displayExpressionChanged )
392 Q_PROPERTY( QString mapTipTemplate READ mapTipTemplate WRITE setMapTipTemplate NOTIFY mapTipTemplateChanged )
393 Q_PROPERTY(
QgsEditFormConfig editFormConfig READ editFormConfig WRITE setEditFormConfig NOTIFY editFormConfigChanged )
394 Q_PROPERTY(
bool readOnly READ isReadOnly WRITE setReadOnly NOTIFY readOnlyChanged )
395 Q_PROPERTY(
double opacity READ opacity WRITE setOpacity NOTIFY opacityChanged )
405 FetchFeatureFailed = 3,
418 Q_ENUM( SelectBehavior )
431 bool readExtentFromXml =
false )
432 : loadDefaultStyle( loadDefaultStyle )
433 , readExtentFromXml( readExtentFromXml )
441 bool loadDefaultStyle =
true,
442 bool readExtentFromXml =
false
444 : loadDefaultStyle( loadDefaultStyle )
445 , readExtentFromXml( readExtentFromXml )
446 , transformContext( transformContext )
450 bool loadDefaultStyle =
true;
456 bool readExtentFromXml =
false;
503 bool skipCrsValidation =
false;
525 QList<QgsVectorLayer *> handledLayers(
bool includeAuxiliaryLayers =
true )
const;
532 QMap<QgsVectorLayer *, QgsFeatureIds> mHandledFeatures
SIP_SKIP;
550 explicit QgsVectorLayer(
const QString &path = QString(),
const QString &baseName = QString(),
574 QString storageType() const;
579 QString capabilitiesString() const;
584 QString dataComment() const;
593 QString displayField() const;
602 void setDisplayExpression( const QString &displayExpression );
610 QString displayExpression() const;
630 void setProviderEncoding( const QString &encoding );
633 void setCoordinateSystem();
646 bool removeJoin( const QString &joinLayerId );
660 const QList<QgsVectorLayerJoinInfo> vectorJoins()
const;
670 bool setDependencies(
const QSet<QgsMapLayerDependency> &layers )
FINAL;
679 QSet<QgsMapLayerDependency> dependencies() const
FINAL;
691 int addExpressionField( const QString &exp, const
QgsField &fld );
700 void removeExpressionField(
int index );
711 QString expressionField(
int index ) const;
722 void updateExpressionField(
int index, const QString &exp );
750 int selectedFeatureCount()
const;
800 Q_INVOKABLE
void invertSelection();
803 Q_INVOKABLE
void selectAll();
812 Q_INVOKABLE
void invertSelectionInRectangle(
QgsRectangle &rect );
864 bool labelsEnabled()
const;
875 void setLabelsEnabled(
bool enabled );
882 bool diagramsEnabled()
const;
913 QString sourceName() const
FINAL;
928 QString decodedSource( const QString &source, const QString &provider, const
QgsReadWriteContext &context ) const
FINAL;
944 virtual
void saveStyleToDatabase( const QString &name, const QString &description,
945 bool useAsDefault, const QString &uiFileContent,
957 virtual
int listStylesInDatabase( QStringList &ids
SIP_OUT, QStringList &names
SIP_OUT,
963 virtual QString getStyleFromDatabase( const QString &styleId, QString &msgError
SIP_OUT );
972 virtual
bool deleteStyleFromDatabase( const QString &styleId, QString &msgError
SIP_OUT );
981 virtual QString loadNamedStyle( const QString &theURI,
bool &resultFlag
SIP_OUT,
bool loadFromLocalDb,
988 QString loadNamedStyle( const QString &theURI,
bool &resultFlag
SIP_OUT,
1004 bool loadAuxiliaryLayer( const
QgsAuxiliaryStorage &storage, const QString &key = QString() );
1039 bool readSymbology( const QDomNode &layerNode, QString &errorMessage,
1050 bool readStyle( const QDomNode &node, QString &errorMessage,
1062 bool writeSymbology( QDomNode &node, QDomDocument &doc, QString &errorMessage,
1074 bool writeStyle( QDomNode &node, QDomDocument &doc, QString &errorMessage,
1085 bool writeSld( QDomNode &node, QDomDocument &doc, QString &errorMessage, const
QgsStringMap &props =
QgsStringMap() ) const;
1087 bool readSld( const QDomNode &node, QString &errorMessage )
FINAL;
1094 long featureCount( const QString &legendKey ) const;
1102 QgsFeatureIds symbolFeatureIds( const QString &legendKey ) const;
1114 FeatureAvailability hasFeatures() const
FINAL;
1127 Q_DECL_DEPRECATED
void setDataSource( const QString &dataSource, const QString &baseName, const QString &provider,
bool loadDefaultStyleFlag = false )
SIP_DEPRECATED;
1141 void setDataSource( const QString &dataSource, const QString &baseName, const QString &provider, const
QgsDataProvider::ProviderOptions &options,
bool loadDefaultStyleFlag = false ) override;
1143 QString loadDefaultStyle(
bool &resultFlag
SIP_OUT )
FINAL;
1167 virtual
bool setSubsetString( const QString &subset );
1173 virtual QString subsetString() const;
1223 bool addFeature(
QgsFeature &feature, QgsFeatureSink::Flags flags = QgsFeatureSink::Flags() )
FINAL;
1250 bool updateFeature(
QgsFeature &feature,
bool skipDefaultValues = false );
1263 bool insertVertex(
double x,
double y,
QgsFeatureId atFeatureId,
int beforeVertex );
1288 bool moveVertex(
double x,
double y,
QgsFeatureId atFeatureId,
int atVertex );
1312 EditResult deleteVertex(
QgsFeatureId featureId,
int vertex );
1321 Q_INVOKABLE
bool deleteSelectedFeatures(
int *deletedCount =
nullptr, DeleteContext *context =
nullptr );
1473 Q_INVOKABLE
int translateFeature(
QgsFeatureId featureId,
double dx,
double dy );
1595 int addTopologicalPoints( const
QgsGeometry &geom );
1625 int addTopologicalPoints( const
QgsPoint &p );
1665 bool isEditable() const
FINAL;
1668 bool isSpatial() const
FINAL;
1671 virtual
bool isModified() const;
1679 bool isAuxiliaryField(
int index,
int &srcIndex ) const;
1682 void reload()
FINAL;
1716 long featureCount() const
FINAL;
1722 bool setReadOnly(
bool readonly = true );
1776 bool changeAttributeValue(
QgsFeatureId fid,
int field, const QVariant &newValue, const QVariant &oldValue = QVariant(),
bool skipDefaultValues = false );
1831 void setFieldAlias(
int index, const QString &aliasString );
1838 void removeFieldAlias(
int index );
1850 bool renameAttribute(
int index, const QString &newName );
1858 QString attributeAlias(
int index ) const;
1861 QString attributeDisplayName(
int index ) const;
1870 Q_DECL_DEPRECATED QSet<QString> excludeAttributesWms() const
SIP_DEPRECATED {
return mExcludeAttributesWMS; }
1898 virtual bool deleteAttribute(
int attr );
1907 bool deleteAttributes(
const QList<int> &attrs );
1909 bool addFeatures(
QgsFeatureList &features, QgsFeatureSink::Flags flags = QgsFeatureSink::Flags() )
FINAL;
1921 bool deleteFeature(
QgsFeatureId fid, DeleteContext *context =
nullptr );
1936 bool deleteFeatures( const
QgsFeatureIds &fids, DeleteContext *context =
nullptr );
1961 Q_INVOKABLE
bool commitChanges(
bool stopEditing = true );
1968 QStringList commitErrors() const;
1979 Q_INVOKABLE
bool rollBack(
bool deleteBuffer = true );
1987 QList<
QgsRelation> referencingRelations(
int idx ) const;
2011 void beginEditCommand(
const QString &text );
2014 void endEditCommand();
2017 void destroyEditCommand();
2041 void updateFields();
2071 void setDefaultValueDefinition(
int index,
const QgsDefaultValue &definition );
2092 QgsFieldConstraints::Constraints fieldConstraints(
int fieldIndex )
const;
2099 QMap< QgsFieldConstraints::Constraint, QgsFieldConstraints::ConstraintStrength> fieldConstraintsAndStrength(
int fieldIndex )
const;
2127 QString constraintExpression(
int index )
const;
2136 QString constraintDescription(
int index )
const;
2146 void setConstraintExpression(
int index,
const QString &expression,
const QString &description = QString() );
2153 void setFieldConfigurationFlags(
int index, QgsField::ConfigurationFlags flags )
SIP_SKIP;
2166 QgsField::ConfigurationFlags fieldConfigurationFlags(
int index )
const SIP_SKIP;
2192 QSet<QVariant> uniqueValues(
int fieldIndex,
int limit = -1 ) const
FINAL;
2207 QStringList uniqueStringsMatching(
int index, const QString &substring,
int limit = -1,
2218 QVariant minimumValue(
int index ) const
FINAL;
2228 QVariant maximumValue(
int index ) const
FINAL;
2243 const QString &fieldOrExpression,
2250 void setFeatureBlendMode( QPainter::CompositionMode blendMode );
2252 QPainter::CompositionMode featureBlendMode() const;
2261 void setOpacity(
double opacity );
2270 double opacity() const;
2272 QString htmlMetadata() const
FINAL;
2321 QString mapTipTemplate()
const;
2330 void setMapTipTemplate(
const QString &mapTipTemplate );
2360 void setReadExtentFromXml(
bool readExtentFromXml );
2369 bool readExtentFromXml() const;
2376 bool isEditCommandActive()
const {
return mEditCommandActive; }
2421 void setAllowCommit(
bool allowCommit )
SIP_SKIP;
2466 Q_INVOKABLE
void deselect(
const QgsFeatureIds &featureIds );
2474 Q_INVOKABLE
void removeSelection();
2494 virtual void updateExtents(
bool force =
false );
2510 Q_INVOKABLE
bool startEditing();
2519 SpatialIndexPresence hasSpatialIndex()
const override;
2790 void invalidateSymbolCountedFlag();
2791 void onFeatureCounterCompleted();
2792 void onFeatureCounterTerminated();
2793 void onJoinedFieldsChanged();
2795 void onRelationsLoaded();
2796 void onSymbolsCounted();
2797 void onDirtyTransaction(
const QString &sql,
const QString &name );
2798 void emitDataChanged();
2799 void onAfterCommitChangesDependency();
2807 bool isReadOnly() const
FINAL;
2818 void readSldLabeling( const QDomNode &node );
2831 QVariant minimumOrMaximumValue(
int index,
bool minimum )
const;
2844 QString mDisplayExpression;
2846 QString mMapTipTemplate;
2852 bool mReadOnly =
false;
2873 QMap<QString, QgsDefaultValue> mDefaultExpressionMap;
2876 QSet<int> mDefaultValueOnUpdateFields;
2879 QMap< QString, QgsFieldConstraints::Constraints > mFieldConstraints;
2885 QMap< QString, QPair< QString, QString > > mFieldConstraintExpressions;
2887 QMap< QString, QgsField::ConfigurationFlags > mFieldConfigurationFlags;
2888 QMap< QString, QgsEditorWidgetSetup > mFieldWidgetSetups;
2894 QSet<QString> mExcludeAttributesWMS;
2897 QSet<QString> mExcludeAttributesWFS;
2912 bool mLabelsEnabled =
false;
2915 bool mLabelFontNotFoundNotified =
false;
2918 QPainter::CompositionMode mFeatureBlendMode = QPainter::CompositionMode_SourceOver;
2921 double mLayerOpacity = 1.0;
2924 bool mVertexMarkerOnlyForSelection =
false;
2926 QStringList mCommitErrors;
2937 std::unique_ptr< QgsVectorLayerServerProperties > mServerProperties;
2948 mutable bool mValidExtent =
false;
2949 mutable bool mLazyExtent =
true;
2952 std::unique_ptr<QgsAuxiliaryLayer> mAuxiliaryLayer;
2955 QString mAuxiliaryLayerKey;
2958 bool mSymbolFeatureCounted =
false;
2961 QHash<QString, long> mSymbolFeatureCountMap;
2962 QHash<QString, QgsFeatureIds> mSymbolFeatureIdMap;
2965 bool mEditCommandActive =
false;
2967 bool mReadExtentFromXml;
2974 mutable QMutex mFeatureSourceConstructorMutex;
2978 std::unique_ptr<QgsGeometryOptions> mGeometryOptions;
2980 bool mAllowCommit =
true;
2988 bool mDataChangedFired =
false;
2990 QList<QgsWeakRelation> mWeakRelations;
2992 bool mSetLegendFromStyle =
false;