27 QString
const &description,
28 QString
const &library )
30 , mDescription( description )
36 , mDescription( description )
37 , mCreateFunction( createFunc )
42 qDeleteAll( mProviderConnections );
62 return QgsProviderMetadata::ProviderMetadataCapabilities();
67 return QgsProviderMetadata::ProviderCapabilities();
87 return mCreateFunction;
107 return QList<QgsMeshDriverMetadata>();
117 return QList<Qgis::LayerType>();
127 return QStringList();
132 return QList<QgsProviderSublayerDetails>();
137 QgsDataProvider::ReadFlags flags )
139 if ( mCreateFunction )
141 return mCreateFunction( uri, options, flags );
148 if ( value.toString().compare( QStringLiteral(
"yes" ), Qt::CaseInsensitive ) == 0 ||
149 value.toString().compare( QStringLiteral(
"1" ), Qt::CaseInsensitive ) == 0 ||
150 value.toString().compare( QStringLiteral(
"true" ), Qt::CaseInsensitive ) == 0 )
152 uri[ parameter ] =
true;
154 else if ( value.toString().compare( QStringLiteral(
"no" ), Qt::CaseInsensitive ) == 0 ||
155 value.toString().compare( QStringLiteral(
"0" ), Qt::CaseInsensitive ) == 0 ||
156 value.toString().compare( QStringLiteral(
"false" ), Qt::CaseInsensitive ) == 0 )
158 uri[ parameter ] =
false;
164 if ( uri.value( parameter, QString() ).toString().compare( QStringLiteral(
"yes" ), Qt::CaseInsensitive ) == 0 ||
165 uri.value( parameter, QString() ).toString().compare( QStringLiteral(
"1" ), Qt::CaseInsensitive ) == 0 ||
166 uri.value( parameter, QString() ).toString().compare( QStringLiteral(
"true" ), Qt::CaseInsensitive ) == 0 )
170 else if ( uri.value( parameter, QString() ).toString().compare( QStringLiteral(
"no" ), Qt::CaseInsensitive ) == 0 ||
171 uri.value( parameter, QString() ).toString().compare( QStringLiteral(
"0" ), Qt::CaseInsensitive ) == 0 ||
172 uri.value( parameter, QString() ).toString().compare( QStringLiteral(
"false" ), Qt::CaseInsensitive ) == 0 )
182 return QVariantMap();
202 bool, QMap<int, int> &,
203 QString &errorMessage,
const QMap<QString, QVariant> * )
205 errorMessage = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"createEmptyLayer" ) );
211 errorMessage = QObject::tr(
"The %1 provider does not support database creation" ).arg(
key() );
216 const QString &,
const QString &,
220 const QStringList & )
242 return QList<QPair<QString, QString> >();
247 return QList<QgsDataItemProvider *>();
251 QStringList &, QString &errCause )
253 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"listStyles" ) );
266 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"getStyleById" ) );
272 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"deleteStyleById" ) );
277 const QString &,
const QString &,
bool, QString &errCause )
279 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"saveStyle" ) );
285 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"loadStyle" ) );
291 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"loadStoredStyle" ) );
302 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"createDb" ) );
319 return connections<QgsAbstractDatabaseProviderConnection>( cached ) ;
324 const QMap<QString, QgsAbstractProviderConnection *> constConns {
connections( cached ) };
325 const QStringList constKeys { constConns.keys( ) };
326 for (
const QString &
key : constKeys )
330 return constConns.value(
key );
345 Q_UNUSED( configuration );
358 Q_UNUSED( connection )
366 const bool isNewConnection = !
connections().contains( name );
368 mProviderConnections.clear();
370 if ( !isNewConnection )
380 QMap<QString, T *> result;
382 const QStringList constConnKeys { constConns.keys() };
383 for (
const auto &
c : constConnKeys )
385 T *casted {
static_cast<T *
>( constConns.value(
c ) ) };
388 result.insert(
c, casted );
397 const QString &description,
398 const MeshDriverCapabilities &capabilities,
399 const QString &writeDatasetOnfileSuffix )
401 , mDescription( description )
402 , mCapabilities( capabilities )
403 , mWriteDatasetOnFileSuffix( writeDatasetOnfileSuffix )
408 const QString &description,
409 const MeshDriverCapabilities &capabilities,
410 const QString &writeDatasetOnfileSuffix,
411 const QString &writeMeshFrameOnFileSuffix,
412 int maxVerticesPerface )
414 , mDescription( description )
415 , mCapabilities( capabilities )
416 , mWriteDatasetOnFileSuffix( writeDatasetOnfileSuffix )
417 , mWriteMeshFrameOnFileSuffix( ( writeMeshFrameOnFileSuffix ) )
418 , mMaxVerticesPerFace( maxVerticesPerface )
424 return mCapabilities;
439 return mWriteDatasetOnFileSuffix;
444 return mWriteMeshFrameOnFileSuffix;
449 return mMaxVerticesPerFace;
FileFilterType
Type of file filters.
VectorExportResult
Vector layer export result codes.
@ ErrorProviderUnsupportedFeature
Provider does not support creation of empty layers.
DataType
Raster data types.
WkbType
The WKB type describes the number of dimensions a geometry has.
The QgsAbstractProviderConnection provides an interface for data provider connections.
virtual void store(const QString &name) const =0
Stores the connection in the settings.
This class represents a coordinate reference system (CRS).
Abstract base class for spatial data provider implementations.
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Container of fields for a vector layer.
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.
Base class for raster data providers.
The class is used as a container of context for various read/write operations on other objects.
const QgsPathResolver & pathResolver() const
Returns path resolver for conversion between relative and absolute paths.
This class allows including a set of layers in a database-side transaction, provided the layer data p...
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.