27 QString
const &description,
28 QString
const &library )
30 , mDescription( description )
36 , mDescription( description )
37 , mCreateFunction( createFunc )
42 qDeleteAll( mProviderConnections );
87 return mCreateFunction;
107 return QList<QgsMeshDriverMetadata>();
117 return QList<Qgis::LayerType>();
127 return QStringList();
132 return QList<QgsProviderSublayerDetails>();
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 & )
229 const QMap<QString, QString> & )
const
237 const QMap<QString, QString> & )
const
244 return QList<QPair<QString, QString> >();
249 return QList<QgsDataItemProvider *>();
253 QStringList &, QString &errCause )
255 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"listStyles" ) );
268 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"getStyleById" ) );
274 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"deleteStyleById" ) );
279 const QString &,
const QString &,
bool, QString &errCause )
281 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"saveStyle" ) );
287 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"loadStyle" ) );
293 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"loadStoredStyle" ) );
304 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"createDb" ) );
321 return connections<QgsAbstractDatabaseProviderConnection>( cached ) ;
326 const QMap<QString, QgsAbstractProviderConnection *> constConns {
connections( cached ) };
327 const QStringList constKeys { constConns.keys( ) };
328 for (
const QString &
key : constKeys )
332 return constConns.value(
key );
347 Q_UNUSED( configuration );
360 Q_UNUSED( connection )
368 const bool isNewConnection = !
connections().contains( name );
370 mProviderConnections.clear();
372 if ( !isNewConnection )
382 QMap<QString, T *> result;
384 const QStringList constConnKeys { constConns.keys() };
385 for (
const auto &
c : constConnKeys )
387 T *casted {
static_cast<T *
>( constConns.value(
c ) ) };
390 result.insert(
c, casted );
399 const QString &description,
401 const QString &writeDatasetOnfileSuffix )
403 , mDescription( description )
404 , mCapabilities( capabilities )
405 , mWriteDatasetOnFileSuffix( writeDatasetOnfileSuffix )
410 const QString &description,
412 const QString &writeDatasetOnfileSuffix,
413 const QString &writeMeshFrameOnFileSuffix,
414 int maxVerticesPerface )
416 , mDescription( description )
417 , mCapabilities( capabilities )
418 , mWriteDatasetOnFileSuffix( writeDatasetOnfileSuffix )
419 , mWriteMeshFrameOnFileSuffix( ( writeMeshFrameOnFileSuffix ) )
420 , mMaxVerticesPerFace( maxVerticesPerface )
426 return mCapabilities;
441 return mWriteDatasetOnFileSuffix;
446 return mWriteMeshFrameOnFileSuffix;
451 return mMaxVerticesPerFace;
FileFilterType
Type of file filters.
VectorExportResult
Vector layer export result codes.
@ ErrorProviderUnsupportedFeature
Provider does not support creation of empty layers.
QFlags< DataProviderReadFlag > DataProviderReadFlags
Flags which control data provider construction.
DataType
Raster data types.
QFlags< SublayerQueryFlag > SublayerQueryFlags
Sublayer query flags.
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.