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.
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.
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.
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.
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.