20#include "moc_qgsprovidermetadata.cpp"
28 QString
const &description,
29 QString
const &library )
31 , mDescription( description )
37 , mDescription( description )
38 , mCreateFunction( createFunc )
43 qDeleteAll( mProviderConnections );
88 return mCreateFunction;
108 return QList<QgsMeshDriverMetadata>();
118 return QList<Qgis::LayerType>();
128 return QStringList();
133 return QList<QgsProviderSublayerDetails>();
140 if ( mCreateFunction )
142 return mCreateFunction( uri, options, flags );
149 if ( value.toString().compare( QStringLiteral(
"yes" ), Qt::CaseInsensitive ) == 0 ||
150 value.toString().compare( QStringLiteral(
"1" ), Qt::CaseInsensitive ) == 0 ||
151 value.toString().compare( QStringLiteral(
"true" ), Qt::CaseInsensitive ) == 0 )
153 uri[ parameter ] =
true;
155 else if ( value.toString().compare( QStringLiteral(
"no" ), Qt::CaseInsensitive ) == 0 ||
156 value.toString().compare( QStringLiteral(
"0" ), Qt::CaseInsensitive ) == 0 ||
157 value.toString().compare( QStringLiteral(
"false" ), Qt::CaseInsensitive ) == 0 )
159 uri[ parameter ] =
false;
165 if ( uri.value( parameter, QString() ).toString().compare( QStringLiteral(
"yes" ), Qt::CaseInsensitive ) == 0 ||
166 uri.value( parameter, QString() ).toString().compare( QStringLiteral(
"1" ), Qt::CaseInsensitive ) == 0 ||
167 uri.value( parameter, QString() ).toString().compare( QStringLiteral(
"true" ), Qt::CaseInsensitive ) == 0 )
171 else if ( uri.value( parameter, QString() ).toString().compare( QStringLiteral(
"no" ), Qt::CaseInsensitive ) == 0 ||
172 uri.value( parameter, QString() ).toString().compare( QStringLiteral(
"0" ), Qt::CaseInsensitive ) == 0 ||
173 uri.value( parameter, QString() ).toString().compare( QStringLiteral(
"false" ), Qt::CaseInsensitive ) == 0 )
183 return QVariantMap();
203 bool, QMap<int, int> &,
204 QString &errorMessage,
const QMap<QString, QVariant> * )
206 errorMessage = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"createEmptyLayer" ) );
212 errorMessage = QObject::tr(
"The %1 provider does not support database creation" ).arg(
key() );
217 const QString &,
const QString &,
221 const QStringList & )
230 const QMap<QString, QString> & )
const
238 const QMap<QString, QString> & )
const
245 return QList<QPair<QString, QString> >();
250 return QList<QgsDataItemProvider *>();
254 QStringList &, QString &errCause )
256 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"listStyles" ) );
269 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"getStyleById" ) );
275 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"deleteStyleById" ) );
280 const QString &,
const QString &,
bool, QString &errCause )
282 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"saveStyle" ) );
288 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"loadStyle" ) );
294 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"loadStoredStyle" ) );
305 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"createDb" ) );
322 return connections<QgsAbstractDatabaseProviderConnection>( cached ) ;
327 const QMap<QString, QgsAbstractProviderConnection *> constConns {
connections( cached ) };
328 const QStringList constKeys { constConns.keys( ) };
329 for (
const QString &
key : constKeys )
333 return constConns.value(
key );
348 Q_UNUSED( configuration );
361 Q_UNUSED( connection )
369 const bool isNewConnection = !
connections().contains( name );
371 mProviderConnections.clear();
373 if ( !isNewConnection )
383 QMap<QString, T *> result;
385 const QStringList constConnKeys { constConns.keys() };
386 for (
const auto &
c : constConnKeys )
388 T *casted {
static_cast<T *
>( constConns.value(
c ) ) };
391 result.insert(
c, casted );
400 const QString &description,
402 const QString &writeDatasetOnfileSuffix )
404 , mDescription( description )
405 , mCapabilities( capabilities )
406 , mWriteDatasetOnFileSuffix( writeDatasetOnfileSuffix )
411 const QString &description,
413 const QString &writeDatasetOnfileSuffix,
414 const QString &writeMeshFrameOnFileSuffix,
415 int maxVerticesPerface )
417 , mDescription( description )
418 , mCapabilities( capabilities )
419 , mWriteDatasetOnFileSuffix( writeDatasetOnfileSuffix )
420 , mWriteMeshFrameOnFileSuffix( ( writeMeshFrameOnFileSuffix ) )
421 , mMaxVerticesPerFace( maxVerticesPerface )
427 return mCapabilities;
442 return mWriteDatasetOnFileSuffix;
447 return mWriteMeshFrameOnFileSuffix;
452 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.