QGIS API Documentation 4.3.0-Master (bf28115e945)
Loading...
Searching...
No Matches
qgsprovidermetadata.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgsprovidermetadata.cpp - Metadata class for
3 describing a data provider.
4 -------------------
5 begin : Sat Jan 10 2004
6 copyright : (C) 2004 by Gary E.Sherman
7 email : sherman at mrcc.com
8 ***************************************************************************/
9
10/***************************************************************************
11 * *
12 * This program is free software; you can redistribute it and/or modify *
13 * it under the terms of the GNU General Public License as published by *
14 * the Free Software Foundation; either version 2 of the License, or *
15 * (at your option) any later version. *
16 * *
17 ***************************************************************************/
18
19#include "qgsprovidermetadata.h"
20
22#include "qgsdataprovider.h"
23#include "qgsexception.h"
24#include "qgsmaplayer.h"
26
27#include <QString>
28
29#include "moc_qgsprovidermetadata.cpp"
30
31using namespace Qt::StringLiterals;
32
33QgsProviderMetadata::QgsProviderMetadata( QString const &key, QString const &description, QString const &library )
34 : mKey( key )
35 , mDescription( description )
36 , mLibrary( library )
37{}
38
39QgsProviderMetadata::QgsProviderMetadata( const QString &key, const QString &description, const CreateDataProviderFunction &createFunc )
40 : mKey( key )
41 , mDescription( description )
42 , mCreateFunction( createFunc )
43{}
44
46{
47 qDeleteAll( mProviderConnections );
48}
49
51{
52 return mKey;
53}
54
56{
57 return mDescription;
58}
59
61{
62 return QIcon();
63}
64
69
74
75QList<Qgis::LayerType> QgsProviderMetadata::supportedLayerTypes() const
76{
77 return {};
78}
79
81{
82 return mLibrary;
83}
84
85QString QgsProviderMetadata::suggestGroupNameForUri( const QString & /*uri*/ ) const
86{
87 return QString();
88}
89
94
97
100
102{
103 return QString();
104}
105
106QList<QgsMeshDriverMetadata> QgsProviderMetadata::meshDriversMetadata()
107{
108 return QList<QgsMeshDriverMetadata>();
109}
110
111int QgsProviderMetadata::priorityForUri( const QString & ) const
112{
113 return 0;
114}
115
116QList<Qgis::LayerType> QgsProviderMetadata::validLayerTypesForUri( const QString & ) const
117{
118 return QList<Qgis::LayerType>();
119}
120
121bool QgsProviderMetadata::uriIsBlocklisted( const QString & ) const
122{
123 return false;
124}
125
126QStringList QgsProviderMetadata::sidecarFilesForUri( const QString & ) const
127{
128 return QStringList();
129}
130
131QList<QgsProviderSublayerDetails> QgsProviderMetadata::querySublayers( const QString &, Qgis::SublayerQueryFlags, QgsFeedback * ) const
132{
133 return QList<QgsProviderSublayerDetails>();
134}
135
137{
138 if ( mCreateFunction )
139 {
140 return mCreateFunction( uri, options, flags );
141 }
142 return nullptr;
143}
144
145void QgsProviderMetadata::setBoolParameter( QVariantMap &uri, const QString &parameter, const QVariant &value )
146{
147 if ( value.toString().compare( u"yes"_s, Qt::CaseInsensitive ) == 0 || value.toString().compare( u"1"_s, Qt::CaseInsensitive ) == 0 || value.toString().compare( u"true"_s, Qt::CaseInsensitive ) == 0 )
148 {
149 uri[parameter] = true;
150 }
151 else if ( value.toString().compare( u"no"_s, Qt::CaseInsensitive ) == 0
152 || value.toString().compare( u"0"_s, Qt::CaseInsensitive ) == 0
153 || value.toString().compare( u"false"_s, Qt::CaseInsensitive ) == 0 )
154 {
155 uri[parameter] = false;
156 }
157}
158
159bool QgsProviderMetadata::boolParameter( const QVariantMap &uri, const QString &parameter, bool defaultValue )
160{
161 if ( uri.value( parameter, QString() ).toString().compare( u"yes"_s, Qt::CaseInsensitive ) == 0
162 || uri.value( parameter, QString() ).toString().compare( u"1"_s, Qt::CaseInsensitive ) == 0
163 || uri.value( parameter, QString() ).toString().compare( u"true"_s, Qt::CaseInsensitive ) == 0 )
164 {
165 return true;
166 }
167 else if ( uri.value( parameter, QString() ).toString().compare( u"no"_s, Qt::CaseInsensitive ) == 0
168 || uri.value( parameter, QString() ).toString().compare( u"0"_s, Qt::CaseInsensitive ) == 0
169 || uri.value( parameter, QString() ).toString().compare( u"false"_s, Qt::CaseInsensitive ) == 0 )
170 {
171 return false;
172 }
173
174 return defaultValue;
175}
176
178 const QString &uri, const QgsFields &fields, Qgis::WkbType wkbType, const QgsCoordinateReferenceSystem &crs, Qgis::CreateLayerActionOnExisting actionOnExisting
179)
180{
181 QMap<int, int> oldToNewAttrIdxMap;
182 QString errorMessage;
183 QString createdLayerUri;
184 bool overwrite = false;
185 switch ( actionOnExisting )
186 {
188 break;
191 overwrite = true;
192 break;
193 }
194
195 const Qgis::VectorExportResult result = createEmptyLayer( uri, fields, wkbType, crs, overwrite, oldToNewAttrIdxMap, errorMessage, nullptr, createdLayerUri );
196 return QgsEmptyLayerCreationResult( result, createdLayerUri, errorMessage, oldToNewAttrIdxMap );
197}
198
199QVariantMap QgsProviderMetadata::decodeUri( const QString & ) const
200{
201 return QVariantMap();
202}
203
204QString QgsProviderMetadata::encodeUri( const QVariantMap & ) const
205{
206 return QString();
207}
208
209QString QgsProviderMetadata::absoluteToRelativeUri( const QString &uri, const QgsReadWriteContext &context ) const
210{
211 return context.pathResolver().writePath( uri );
212}
213
214QString QgsProviderMetadata::relativeToAbsoluteUri( const QString &uri, const QgsReadWriteContext &context ) const
215{
216 return context.pathResolver().readPath( uri );
217}
218
219QString QgsProviderMetadata::cleanUri( const QString &uri, Qgis::UriCleaningFlags flags ) const
220{
221 if ( flags.testFlag( Qgis::UriCleaningFlag::RemoveCredentials ) )
223 else if ( flags.testFlag( Qgis::UriCleaningFlag::RedactCredentials ) )
224 return QgsDataSourceUri::removePassword( uri, true );
225 return uri;
226}
227
228bool QgsProviderMetadata::urisReferToSame( const QString &, const QString &, Qgis::SourceHierarchyLevel ) const
229{
230 return false;
231}
232
234 const QString &, const QgsFields &, Qgis::WkbType, const QgsCoordinateReferenceSystem &, bool, QMap<int, int> &, QString &errorMessage, const QMap<QString, QVariant> *, QString &
235)
236{
237 errorMessage = QObject::tr( "Provider %1 has no %2 method" ).arg( key(), u"createEmptyLayer"_s );
239}
240
241bool QgsProviderMetadata::createDatabase( const QString &, QString &errorMessage )
242{
243 errorMessage = QObject::tr( "The %1 provider does not support database creation" ).arg( key() );
244 return false;
245}
246
247QgsRasterDataProvider *QgsProviderMetadata::createRasterDataProvider( const QString &, const QString &, int, Qgis::DataType, int, int, double *, const QgsCoordinateReferenceSystem &, const QStringList & )
248{
249 return nullptr;
250}
251
252bool QgsProviderMetadata::createMeshData( const QgsMesh &, const QString &, const QString &, const QgsCoordinateReferenceSystem &, const QMap<QString, QString> & ) const
253{
254 return false;
255}
256
257bool QgsProviderMetadata::createMeshData( const QgsMesh &, const QString &, const QgsCoordinateReferenceSystem &, const QMap<QString, QString> & ) const
258{
259 return false;
260}
261
262QList<QPair<QString, QString> > QgsProviderMetadata::pyramidResamplingMethods()
263{
264 return QList<QPair<QString, QString> >();
265}
266
267QList<QgsDataItemProvider *> QgsProviderMetadata::dataItemProviders() const
268{
269 return QList<QgsDataItemProvider *>();
270}
271
272int QgsProviderMetadata::listStyles( const QString &, QStringList &, QStringList &, QStringList &, QString &errCause )
273{
274 errCause = QObject::tr( "Provider %1 has no %2 method" ).arg( key(), u"listStyles"_s );
275 return -1;
276}
277
278
279bool QgsProviderMetadata::styleExists( const QString &, const QString &, QString &errorCause )
280{
281 errorCause.clear();
282 return false;
283}
284
285QString QgsProviderMetadata::getStyleById( const QString &, const QString &, QString &errCause )
286{
287 errCause = QObject::tr( "Provider %1 has no %2 method" ).arg( key(), u"getStyleById"_s );
288 return QString();
289}
290
291bool QgsProviderMetadata::deleteStyleById( const QString &, const QString &, QString &errCause )
292{
293 errCause = QObject::tr( "Provider %1 has no %2 method" ).arg( key(), u"deleteStyleById"_s );
294 return false;
295}
296
297bool QgsProviderMetadata::saveStyle( const QString &, const QString &, const QString &, const QString &, const QString &, const QString &, bool, QString &errCause )
298{
299 errCause = QObject::tr( "Provider %1 has no %2 method" ).arg( key(), u"saveStyle"_s );
300 return false;
301}
302
303QString QgsProviderMetadata::loadStyle( const QString &, QString &errCause )
304{
305 errCause = QObject::tr( "Provider %1 has no %2 method" ).arg( key(), u"loadStyle"_s );
306 return QString();
307}
308
309QString QgsProviderMetadata::loadStoredStyle( const QString &, QString &, QString &errCause )
310{
311 errCause = QObject::tr( "Provider %1 has no %2 method" ).arg( key(), u"loadStoredStyle"_s );
312 return QString();
313}
314
315bool QgsProviderMetadata::saveLayerMetadata( const QString &, const QgsLayerMetadata &, QString & )
316{
317 throw QgsNotSupportedException( QObject::tr( "Provider %1 does not support writing layer metadata" ).arg( key() ) );
318}
319
320bool QgsProviderMetadata::createDb( const QString &, QString &errCause )
321{
322 errCause = QObject::tr( "Provider %1 has no %2 method" ).arg( key(), u"createDb"_s );
323 return false;
324}
325
327{
328 return nullptr;
329}
330
331QMap<QString, QgsAbstractProviderConnection *> QgsProviderMetadata::connections( bool cached )
332{
333 Q_UNUSED( cached );
334 throw QgsProviderConnectionException( QObject::tr( "Provider %1 has no %2 method" ).arg( key(), u"connections"_s ) );
335}
336
337QMap<QString, QgsAbstractDatabaseProviderConnection *> QgsProviderMetadata::dbConnections( bool cached )
338{
340}
341
343{
344 const QMap<QString, QgsAbstractProviderConnection *> constConns { connections( cached ) };
345 const QStringList constKeys { constConns.keys() };
346 for ( const QString &key : constKeys )
347 {
348 if ( key == name )
349 {
350 return constConns.value( key );
351 }
352 }
353 return nullptr;
354}
355
357{
358 Q_UNUSED( name );
359 throw QgsProviderConnectionException( QObject::tr( "Provider %1 has no %2 method" ).arg( key(), u"createConnection"_s ) );
360}
361
362
363QgsAbstractProviderConnection *QgsProviderMetadata::createConnection( const QString &uri, const QVariantMap &configuration )
364{
365 Q_UNUSED( configuration );
366 Q_UNUSED( uri );
367 throw QgsProviderConnectionException( QObject::tr( "Provider %1 has no %2 method" ).arg( key(), u"createConnection"_s ) );
368}
369
370void QgsProviderMetadata::deleteConnection( const QString &name )
371{
372 Q_UNUSED( name );
373 throw QgsProviderConnectionException( QObject::tr( "Provider %1 has no %2 method" ).arg( key(), u"deleteConnection"_s ) );
374}
375
376void QgsProviderMetadata::saveConnection( const QgsAbstractProviderConnection *connection, const QString &name )
377{
378 Q_UNUSED( connection )
379 Q_UNUSED( name )
380 throw QgsProviderConnectionException( QObject::tr( "Provider %1 has no %2 method" ).arg( key(), u"saveConnection"_s ) );
381}
382
384void QgsProviderMetadata::saveConnectionProtected( const QgsAbstractProviderConnection *conn, const QString &name )
385{
386 const bool isNewConnection = !connections().contains( name );
387 conn->store( name );
388 mProviderConnections.clear();
389
390 if ( !isNewConnection )
391 emit connectionChanged( name );
392 else
393 emit connectionCreated( name );
394}
396
397template<typename T> QMap<QString, T *> QgsProviderMetadata::connections( bool cached )
398{
399 QMap<QString, T *> result;
400 const auto constConns { connections( cached ) };
401 const QStringList constConnKeys { constConns.keys() };
402 for ( const auto &c : constConnKeys )
403 {
404 T *casted { static_cast<T *>( constConns.value( c ) ) };
405 if ( casted )
406 {
407 result.insert( c, casted );
408 }
409 }
410 return result;
411}
412
414
415QgsMeshDriverMetadata::QgsMeshDriverMetadata( const QString &name, const QString &description, const MeshDriverCapabilities &capabilities, const QString &writeDatasetOnfileSuffix )
416 : mName( name )
417 , mDescription( description )
418 , mCapabilities( capabilities )
419 , mWriteDatasetOnFileSuffix( writeDatasetOnfileSuffix )
420{}
421
423 const QString &name, const QString &description, const MeshDriverCapabilities &capabilities, const QString &writeDatasetOnfileSuffix, const QString &writeMeshFrameOnFileSuffix, int maxVerticesPerface
424)
425 : mName( name )
426 , mDescription( description )
427 , mCapabilities( capabilities )
428 , mWriteDatasetOnFileSuffix( writeDatasetOnfileSuffix )
429 , mWriteMeshFrameOnFileSuffix( ( writeMeshFrameOnFileSuffix ) )
430 , mMaxVerticesPerFace( maxVerticesPerface )
431{}
432
437
439{
440 return mName;
441}
442
444{
445 return mDescription;
446}
447
449{
450 return mWriteDatasetOnFileSuffix;
451}
452
454{
455 return mWriteMeshFrameOnFileSuffix;
456}
457
459{
460 return mMaxVerticesPerFace;
461}
QFlags< UriCleaningFlag > UriCleaningFlags
Flags for cleaning layer URIs.
Definition qgis.h:1502
FileFilterType
Type of file filters.
Definition qgis.h:1474
VectorExportResult
Vector layer export result codes.
Definition qgis.h:1133
@ ErrorProviderUnsupportedFeature
Provider does not support creation of empty layers.
Definition qgis.h:1143
@ RemoveCredentials
Completely remove credentials (eg passwords) from the URI. This flag is not compatible with the Redac...
Definition qgis.h:1492
@ RedactCredentials
Replace the value of credentials (eg passwords) with 'xxxxxxxx'. This flag is not compatible with the...
Definition qgis.h:1493
QFlags< DataProviderReadFlag > DataProviderReadFlags
Flags which control data provider construction.
Definition qgis.h:512
DataType
Raster data types.
Definition qgis.h:393
QFlags< SublayerQueryFlag > SublayerQueryFlags
Sublayer query flags.
Definition qgis.h:1532
SourceHierarchyLevel
Defines the structural levels within a data source hierarchy.
Definition qgis.h:1511
WkbType
The WKB type describes the number of dimensions a geometry has.
Definition qgis.h:294
An interface for data provider connections.
virtual void store(const QString &name) const =0
Stores the connection in the settings.
Represents a coordinate reference system (CRS).
Abstract base class for spatial data provider implementations.
static QString removePassword(const QString &aUri, bool hide=false)
Removes the password element from a URI.
Encapsulates the details of a newly created empty layer.
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition qgsfeedback.h:44
Container of fields for a vector layer.
Definition qgsfields.h:46
A structured metadata store for a map layer.
int maximumVerticesCountPerFace() const
Returns the maximum number of vertices per face supported by the driver.
QString writeDatasetOnFileSuffix() const
Returns the suffix used to write datasets on file.
MeshDriverCapabilities capabilities() const
Returns the capabilities for this driver.
QFlags< MeshDriverCapability > MeshDriverCapabilities
QString writeMeshFrameOnFileSuffix() const
Returns the suffix used to write mesh on file.
QString description() const
Returns the description for this driver.
QgsMeshDriverMetadata()
Constructs default metadata without any capabilities.
QString name() const
Returns the name (key) for this driver.
Custom exception class which is raised when an operation is not supported.
QString writePath(const QString &filename) const
Prepare a filename to save it to the project file.
QString readPath(const QString &filename) const
Turn filename read from the project file to an absolute path.
Custom exception class for provider connection related exceptions.
QFlags< ProviderMetadataCapability > ProviderMetadataCapabilities
virtual bool uriIsBlocklisted(const QString &uri) const
Returns true if the specified uri is known by this provider to be something which should be blocklist...
QgsAbstractProviderConnection * findConnection(const QString &name, bool cached=true)
Searches and returns a (possibly nullptr) connection from the stored provider connections.
virtual QgsProviderMetadata::ProviderCapabilities providerCapabilities() const
Returns the provider's capabilities.
static void setBoolParameter(QVariantMap &uri, const QString &parameter, const QVariant &value)
Sets the value into the uri parameter as a bool.
virtual void deleteConnection(const QString &name)
Removes the connection with the given name from the settings.
virtual QgsRasterDataProvider * createRasterDataProvider(const QString &uri, const QString &format, int nBands, Qgis::DataType type, int width, int height, double *geoTransform, const QgsCoordinateReferenceSystem &crs, const QStringList &createOptions=QStringList())
Creates a new instance of the raster data provider.
Q_DECL_DEPRECATED CreateDataProviderFunction createFunction() const
Returns a pointer to the direct provider creation function, if supported by the provider.
QFlags< ProviderCapability > ProviderCapabilities
virtual QgsDataProvider * createProvider(const QString &uri, const QgsDataProvider::ProviderOptions &options, Qgis::DataProviderReadFlags flags=Qgis::DataProviderReadFlags())
Class factory to return a pointer to a newly created QgsDataProvider object.
virtual QIcon icon() const
Returns an icon representing the provider.
virtual int priorityForUri(const QString &uri) const
Returns an integer representing the priority which this provider should have when opening a dataset w...
std::function< QgsDataProvider *(const QString &, const QgsDataProvider::ProviderOptions &, Qgis::DataProviderReadFlags &) > CreateDataProviderFunction
Typedef for data provider creation function.
QMap< QString, QgsAbstractDatabaseProviderConnection * > dbConnections(bool cached=true)
Returns a dictionary of database provider connections, the dictionary key is the connection identifie...
static bool boolParameter(const QVariantMap &uri, const QString &parameter, bool defaultValue=false)
Returns the parameter value in the uri as a bool.
virtual bool deleteStyleById(const QString &uri, const QString &styleId, QString &errCause)
Deletes a layer style defined by styleId.
virtual bool saveStyle(const QString &uri, const QString &qmlStyle, const QString &sldStyle, const QString &styleName, const QString &styleDescription, const QString &uiFileContent, bool useAsDefault, QString &errCause)
Saves a layer style to provider.
virtual QString suggestGroupNameForUri(const QString &uri) const
Returns a name that can be used as a group name for sublayers retrieved from the specified uri.
virtual QString encodeUri(const QVariantMap &parts) const
Reassembles a provider data source URI from its component paths (e.g.
virtual QString cleanUri(const QString &uri, Qgis::UriCleaningFlags flags=Qgis::UriCleaningFlag::RemoveCredentials) const
Cleans a layer uri, e.g.
virtual QList< Qgis::LayerType > validLayerTypesForUri(const QString &uri) const
Returns a list of valid layer types which the provider can be used with when opening the specified ur...
virtual QString absoluteToRelativeUri(const QString &uri, const QgsReadWriteContext &context) const
Converts absolute path(s) to relative path(s) in the given provider-specific URI.
QString description() const
This returns descriptive text for the provider.
virtual bool urisReferToSame(const QString &uri1, const QString &uri2, Qgis::SourceHierarchyLevel level=Qgis::SourceHierarchyLevel::Object) const
Returns true if the URI uri1 and uri2 point to the same resource at the specified hierarchy level.
virtual bool createMeshData(const QgsMesh &mesh, const QString &fileName, const QString &driverName, const QgsCoordinateReferenceSystem &crs, const QMap< QString, QString > &metadata=QMap< QString, QString >()) const
Creates mesh data source from a file name fileName and a driver driverName, that is the mesh frame st...
virtual bool styleExists(const QString &uri, const QString &styleId, QString &errorCause)
Returns true if a layer style with the specified styleId exists in the provider defined by uri.
virtual bool saveLayerMetadata(const QString &uri, const QgsLayerMetadata &metadata, QString &errorMessage)
Saves metadata to the layer corresponding to the specified uri.
void connectionChanged(const QString &name)
Emitted when the connection with the specified name is changed, e.g.
virtual QgsAbstractProviderConnection * createConnection(const QString &uri, const QVariantMap &configuration)
Creates a new connection from uri and configuration, the newly created connection is not automaticall...
virtual QStringList sidecarFilesForUri(const QString &uri) const
Given a uri, returns any sidecar files which are associated with the URI and this provider.
void connectionCreated(const QString &name)
Emitted when a connection with the specified name is created.
virtual QString filters(Qgis::FileFilterType type)
Builds the list of file filter strings (supported formats).
virtual void saveConnection(const QgsAbstractProviderConnection *connection, const QString &name)
Stores the connection in the settings.
QString key() const
This returns the unique key associated with the provider.
virtual QgsTransaction * createTransaction(const QString &connString)
Returns new instance of transaction.
virtual void initProvider()
Initialize the provider.
virtual QString getStyleById(const QString &uri, const QString &styleId, QString &errCause)
Gets a layer style defined by uri.
virtual QMap< QString, QgsAbstractProviderConnection * > connections(bool cached=true)
Returns a dictionary of stored provider connections, the dictionary key is the connection identifier.
virtual QString loadStoredStyle(const QString &uri, QString &styleName, QString &errCause)
Loads a layer style from the provider storage, reporting its name.
virtual QList< Qgis::LayerType > supportedLayerTypes() const
Returns a list of the map layer types supported by the provider.
QgsProviderMetadata(const QString &key, const QString &description, const QString &library=QString())
Constructor for provider metadata.
virtual bool createDatabase(const QString &uri, QString &errorMessage)
Creates a new empty database at the specified uri.
virtual QList< QgsProviderSublayerDetails > querySublayers(const QString &uri, Qgis::SublayerQueryFlags flags=Qgis::SublayerQueryFlags(), QgsFeedback *feedback=nullptr) const
Queries the specified uri and returns a list of any valid sublayers found in the dataset which can be...
virtual QgsProviderMetadata::ProviderMetadataCapabilities capabilities() const
Returns the provider metadata capabilities.
virtual QString relativeToAbsoluteUri(const QString &uri, const QgsReadWriteContext &context) const
Converts relative path(s) to absolute path(s) in the given provider-specific URI.
virtual void cleanupProvider()
Cleanup the provider.
virtual QString loadStyle(const QString &uri, QString &errCause)
Loads a layer style defined by uri.
virtual int listStyles(const QString &uri, QStringList &ids, QStringList &names, QStringList &descriptions, QString &errCause)
Lists stored layer styles in the provider defined by uri.
virtual QList< QPair< QString, QString > > pyramidResamplingMethods()
Returns pyramid resampling methods available for provider.
virtual QgsEmptyLayerCreationResult createEmptyLayer(const QString &uri, const QgsFields &fields, Qgis::WkbType wkbType=Qgis::WkbType::NoGeometry, const QgsCoordinateReferenceSystem &crs=QgsCoordinateReferenceSystem(), Qgis::CreateLayerActionOnExisting actionOnExisting=Qgis::CreateLayerActionOnExisting::Abort)
Creates new empty vector layer.
virtual QList< QgsDataItemProvider * > dataItemProviders() const
Returns data item providers.
virtual QList< QgsMeshDriverMetadata > meshDriversMetadata()
Builds the list of available mesh drivers metadata.
virtual QVariantMap decodeUri(const QString &uri) const
Breaks a provider data source URI into its component paths (e.g.
Q_DECL_DEPRECATED QString library() const
This returns the library file name.
virtual bool createDb(const QString &dbPath, QString &errCause)
Creates database by the provider on the path.
Base class for raster data providers.
A container for the context for various read/write operations on objects.
const QgsPathResolver & pathResolver() const
Returns path resolver for conversion between relative and absolute paths.
Allows creation of a multi-layer database-side transaction.
CreateLayerActionOnExisting
Actions to take when attempting to create a layer on an existing datasource.
Definition qgis.h:573
@ CreateOrOverwriteLayer
Create or overwrite existing layer only. For existing file-based datasources other layers in the data...
Definition qgis.h:576
@ CreateOrOverwriteFile
Create or overwrite whole file. For existing file-based datasources the entire datasource will be del...
Definition qgis.h:575
@ Abort
Abort the creation on detecting an existing layer.
Definition qgis.h:574
As part of the API refactoring and improvements which landed in the Processing API was substantially reworked from the x version This was done in order to allow much of the underlying Processing framework to be ported into c
Setting options for creating vector data providers.
Mesh - vertices, edges and faces.