15 #ifndef QGSVECTORDATAPROVIDER_H
16 #define QGSVECTORDATAPROVIDER_H
68 DeleteFeatures = 1 << 1,
70 ChangeAttributeValues = 1 << 2,
72 AddAttributes = 1 << 3,
74 DeleteAttributes = 1 << 4,
76 SaveAsShapefile = 1 << 5,
78 CreateSpatialIndex = 1 << 6,
82 ChangeGeometries = 1 << 8,
84 SelectGeometryAtId = 1 << 9,
86 RandomSelectGeometryAtId = 1 << 10,
88 SequentialSelectGeometryAtId = 1 << 11,
89 CreateAttributeIndex = 1 << 12,
91 SelectEncoding = 1 << 13,
93 SimplifyGeometries = 1 << 14,
95 SimplifyGeometriesWithTopologicalValidation = 1 << 15,
97 TransactionSupport = 1 << 16,
99 CircularGeometries = 1 << 17
103 const static int EditingCapabilities = AddFeatures | DeleteFeatures |
104 ChangeAttributeValues | ChangeGeometries | AddAttributes | DeleteAttributes;
138 virtual QString storageType()
const;
155 virtual long featureCount()
const = 0;
162 virtual const QgsFields &fields()
const = 0;
168 virtual QString dataComment()
const;
245 virtual QVariant defaultValue(
int fieldId );
254 virtual bool changeGeometryValues(
QgsGeometryMap & geometry_map );
260 virtual bool createSpatialIndex();
263 virtual bool createAttributeIndex(
int field );
270 virtual int capabilities()
const;
275 QString capabilitiesString()
const;
280 virtual void setEncoding(
const QString& e );
290 int fieldNameIndex(
const QString& fieldName )
const;
315 bool supportedType(
const QgsField &field )
const;
319 NativeType(
const QString& typeDesc,
const QString& typeName, QVariant::Type type,
int minLen = 0,
int maxLen = 0,
int minPrec = 0,
int maxPrec = 0 ) :
320 mTypeDesc( typeDesc ), mTypeName( typeName ), mType( type ), mMinLen( minLen ), mMaxLen( maxLen ), mMinPrec( minPrec ), mMaxPrec( maxPrec ) {}
367 static QVariant convertValue( QVariant::Type type,
const QString& value );
384 void clearMinMaxCache();
385 void fillMinMaxCache();
399 void pushError(
const QString& msg );
Wrapper for iterator of features from vector data provider or vector layer.
QgsAttributeList mAttributesToFetch
List of attribute indices to fetch with nextFeature calls.
virtual void enumValues(int index, QStringList &enumList)
Returns the possible enum values of an attribute.
virtual QgsTransaction * transaction() const
Returns the transaction this data provider is included in, if any.
Container of fields for a vector layer.
Abstract base class for spatial data provider implementations.
QList< int > QgsAttributeList
WkbType
Used for symbology operations.
virtual QgsAttributeList pkAttributeIndexes()
Return list of indexes of fields that make up the primary key.
virtual QgsAbstractFeatureSource * featureSource() const
Return feature source object that can be used for querying provider's data.
QSet< int > QgsAttributeIds
QTextCodec * mEncoding
Encoding.
virtual QgsAttrPalIndexNameHash palAttributeIndexNames() const
Return list of indexes to names for QgsPalLabeling fix.
This class wraps a request for features to a vector layer (or directly its vector data provider)...
QList< NativeType > mNativeTypes
The names of the providers native types.
Encapsulate a field in an attribute table or data source.
Base class that can be used for any class that is capable of returning features.
virtual bool doesStrictFeatureTypeCheck() const
Returns true if the provider is strict about the type of inserted features (e.g.
This class allows to include a set of layers in a database-side transaction, provided the layer data ...
Capability
enumeration with capabilities that providers might implement
QgsAttrPalIndexNameHash mAttrPalIndexName
Old-style mapping of index to name for QgsPalLabeling fix.
NativeType(const QString &typeDesc, const QString &typeName, QVariant::Type type, int minLen=0, int maxLen=0, int minPrec=0, int maxPrec=0)
virtual void forceReload()
Forces a reload of the underlying datasource if the provider implements this method.
This is the base class for vector data providers.
QHash< int, QString > QgsAttrPalIndexNameHash
QMap< int, QVariant > mCacheMinValues
virtual bool isSaveAndLoadStyleToDBSupported()
It returns false by default.