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();
212 bool, QMap<int, int> &,
213 QString &errorMessage,
const QMap<QString, QVariant> *,
216 errorMessage = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"createEmptyLayer" ) );
222 errorMessage = QObject::tr(
"The %1 provider does not support database creation" ).arg(
key() );
227 const QString &,
const QString &,
231 const QStringList & )
240 const QMap<QString, QString> & )
const
248 const QMap<QString, QString> & )
const
255 return QList<QPair<QString, QString> >();
260 return QList<QgsDataItemProvider *>();
264 QStringList &, QString &errCause )
266 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"listStyles" ) );
279 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"getStyleById" ) );
285 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"deleteStyleById" ) );
290 const QString &,
const QString &,
bool, QString &errCause )
292 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"saveStyle" ) );
298 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"loadStyle" ) );
304 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"loadStoredStyle" ) );
315 errCause = QObject::tr(
"Provider %1 has no %2 method" ).arg(
key(), QStringLiteral(
"createDb" ) );
332 return connections<QgsAbstractDatabaseProviderConnection>( cached ) ;
337 const QMap<QString, QgsAbstractProviderConnection *> constConns {
connections( cached ) };
338 const QStringList constKeys { constConns.keys( ) };
339 for (
const QString &
key : constKeys )
343 return constConns.value(
key );
358 Q_UNUSED( configuration );
371 Q_UNUSED( connection )
379 const bool isNewConnection = !
connections().contains( name );
381 mProviderConnections.clear();
383 if ( !isNewConnection )
393 QMap<QString, T *> result;
395 const QStringList constConnKeys { constConns.keys() };
396 for (
const auto &
c : constConnKeys )
398 T *casted {
static_cast<T *
>( constConns.value(
c ) ) };
401 result.insert(
c, casted );
410 const QString &description,
412 const QString &writeDatasetOnfileSuffix )
414 , mDescription( description )
415 , mCapabilities( capabilities )
416 , mWriteDatasetOnFileSuffix( writeDatasetOnfileSuffix )
421 const QString &description,
423 const QString &writeDatasetOnfileSuffix,
424 const QString &writeMeshFrameOnFileSuffix,
425 int maxVerticesPerface )
427 , mDescription( description )
428 , mCapabilities( capabilities )
429 , mWriteDatasetOnFileSuffix( writeDatasetOnfileSuffix )
430 , mWriteMeshFrameOnFileSuffix( ( writeMeshFrameOnFileSuffix ) )
431 , mMaxVerticesPerFace( maxVerticesPerface )
437 return mCapabilities;
452 return mWriteDatasetOnFileSuffix;
457 return mWriteMeshFrameOnFileSuffix;
462 return mMaxVerticesPerFace;
QFlags< UriCleaningFlag > UriCleaningFlags
Flags for cleaning layer URIs.
FileFilterType
Type of file filters.
VectorExportResult
Vector layer export result codes.
@ ErrorProviderUnsupportedFeature
Provider does not support creation of empty layers.
@ RemoveCredentials
Completely remove credentials (eg passwords) from the URI. This flag is not compatible with the Redac...
@ RedactCredentials
Replace the value of credentials (eg passwords) with 'xxxxxxxx'. This flag is not compatible with the...
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.
static QString removePassword(const QString &aUri, bool hide=false)
Removes the password element from a URI.
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.