QGIS API Documentation
4.3.0-Master (52aa6503bed)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
core
metadata
qgslayermetadataproviderregistry.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgslayermetadataproviderregistry.cpp - QgsLayerMetadataProviderRegistry
3
4
---------------------
5
begin : 17.8.2022
6
copyright : (C) 2022 by Alessandro Pasotti
7
email : elpaso at itopen dot it
8
***************************************************************************
9
* *
10
* This program is free software; you can redistribute it and/or modify *
11
* it under the terms of the GNU General Public License as published by *
12
* the Free Software Foundation; either version 2 of the License, or *
13
* (at your option) any later version. *
14
* *
15
***************************************************************************/
16
#include "
qgslayermetadataproviderregistry.h
"
17
18
#include "
qgsabstractlayermetadataprovider.h
"
19
#include "
qgsfeedback.h
"
20
21
#include "moc_qgslayermetadataproviderregistry.cpp"
22
23
QgsLayerMetadataProviderRegistry::QgsLayerMetadataProviderRegistry
( QObject *parent )
24
: QObject( parent )
25
{}
26
27
void
QgsLayerMetadataProviderRegistry::registerLayerMetadataProvider
(
QgsAbstractLayerMetadataProvider
*metadataProvider )
28
{
29
mMetadataProviders.insert( metadataProvider->
id
(), metadataProvider );
30
}
31
32
void
QgsLayerMetadataProviderRegistry::unregisterLayerMetadataProvider
(
QgsAbstractLayerMetadataProvider
*metadataProvider )
33
{
34
delete
mMetadataProviders.take( metadataProvider->
id
() );
35
}
36
37
QList<QgsAbstractLayerMetadataProvider *>
QgsLayerMetadataProviderRegistry::layerMetadataProviders
()
const
38
{
39
return
mMetadataProviders.values();
40
}
41
42
QgsAbstractLayerMetadataProvider
*
QgsLayerMetadataProviderRegistry::layerMetadataProviderFromId
(
const
QString &type )
43
{
44
return
mMetadataProviders.value( type,
nullptr
);
45
}
46
47
const
QgsLayerMetadataSearchResults
QgsLayerMetadataProviderRegistry::search
(
48
const
QgsMetadataSearchContext
&searchContext,
const
QString &searchString,
const
QgsRectangle
&geographicExtent,
QgsFeedback
*feedback
49
)
50
{
51
QgsLayerMetadataSearchResults
results;
52
for
(
auto
it = mMetadataProviders.cbegin(); it != mMetadataProviders.cend(); ++it )
53
{
54
if
( feedback && feedback->
isCanceled
() )
55
{
56
break
;
57
}
58
59
const
QgsLayerMetadataSearchResults
providerResults { it.value()->search( searchContext, searchString, geographicExtent ) };
60
const
QList<QgsLayerMetadataProviderResult> constMetadata { providerResults.
metadata
() };
61
for
(
const
QgsLayerMetadataProviderResult
&metadata : std::as_const( constMetadata ) )
62
{
63
results.
addMetadata
( metadata );
64
}
65
const
QList<QString> constErrors { providerResults.
errors
() };
66
for
(
const
QString &error : std::as_const( constErrors ) )
67
{
68
results.
addError
( error );
69
}
70
}
71
return
results;
72
}
QgsAbstractLayerMetadataProvider
Layer metadata provider backend interface.
Definition
qgsabstractlayermetadataprovider.h:208
QgsAbstractLayerMetadataProvider::id
virtual QString id() const =0
Returns the id of the layer metadata provider implementation, usually the name of the data provider b...
QgsFeedback
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition
qgsfeedback.h:44
QgsFeedback::isCanceled
bool isCanceled() const
Tells whether the operation has been canceled already.
Definition
qgsfeedback.h:56
QgsLayerMetadataProviderRegistry::QgsLayerMetadataProviderRegistry
QgsLayerMetadataProviderRegistry(QObject *parent=nullptr)
Creates the layer metadata provider registry, with an optional parent.
Definition
qgslayermetadataproviderregistry.cpp:23
QgsLayerMetadataProviderRegistry::layerMetadataProviders
QList< QgsAbstractLayerMetadataProvider * > layerMetadataProviders() const
Returns the list of all registered layer metadata providers.
Definition
qgslayermetadataproviderregistry.cpp:37
QgsLayerMetadataProviderRegistry::search
const QgsLayerMetadataSearchResults search(const QgsMetadataSearchContext &searchContext, const QString &searchString=QString(), const QgsRectangle &geographicExtent=QgsRectangle(), QgsFeedback *feedback=nullptr)
Search for layers in all the registered layer metadata providers, optionally filtering by searchStrin...
Definition
qgslayermetadataproviderregistry.cpp:47
QgsLayerMetadataProviderRegistry::unregisterLayerMetadataProvider
void unregisterLayerMetadataProvider(QgsAbstractLayerMetadataProvider *metadataProvider)
Unregisters a layer metadata provider metadataProvider and destroys its instance.
Definition
qgslayermetadataproviderregistry.cpp:32
QgsLayerMetadataProviderRegistry::registerLayerMetadataProvider
void registerLayerMetadataProvider(QgsAbstractLayerMetadataProvider *metadataProvider)
Registers a layer metadata provider metadataProvider and takes ownership of it.
Definition
qgslayermetadataproviderregistry.cpp:27
QgsLayerMetadataProviderRegistry::layerMetadataProviderFromId
QgsAbstractLayerMetadataProvider * layerMetadataProviderFromId(const QString &id)
Returns metadata provider implementation if the id matches one. Returns nullptr otherwise.
Definition
qgslayermetadataproviderregistry.cpp:42
QgsLayerMetadataProviderResult
Result record of layer metadata provider search.
Definition
qgsabstractlayermetadataprovider.h:59
QgsLayerMetadataSearchResults
Container of result records from a layer metadata search.
Definition
qgsabstractlayermetadataprovider.h:170
QgsLayerMetadataSearchResults::addError
void addError(const QString &error)
Adds a error to the list of errors.
Definition
qgsabstractlayermetadataprovider.cpp:38
QgsLayerMetadataSearchResults::addMetadata
void addMetadata(const QgsLayerMetadataProviderResult &metadata)
Adds a Metadata record to the list of results.
Definition
qgsabstractlayermetadataprovider.cpp:27
QgsLayerMetadataSearchResults::errors
QStringList errors() const
Returns the list of errors occurred during a metadata search.
Definition
qgsabstractlayermetadataprovider.cpp:33
QgsLayerMetadataSearchResults::metadata
QList< QgsLayerMetadataProviderResult > metadata() const
Returns the list of metadata results.
Definition
qgsabstractlayermetadataprovider.cpp:22
QgsRectangle
A rectangle specified with double values.
Definition
qgsrectangle.h:47
qgsabstractlayermetadataprovider.h
qgsfeedback.h
qgslayermetadataproviderregistry.h
QgsMetadataSearchContext
Metadata search context.
Definition
qgsabstractlayermetadataprovider.h:36
Generated on
for QGIS API Documentation by
1.17.0