QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
core
browser
qgsdataitemproviderregistry.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgsdataitemproviderregistry.cpp
3
--------------------------------------
4
Date : March 2015
5
Copyright : (C) 2015 by Martin Dobias
6
Email : wonder dot sk at gmail dot com
7
***************************************************************************
8
* *
9
* This program is free software; you can redistribute it and/or modify *
10
* it under the terms of the GNU General Public License as published by *
11
* the Free Software Foundation; either version 2 of the License, or *
12
* (at your option) any later version. *
13
* *
14
***************************************************************************/
15
16
#include "
qgsdataitemproviderregistry.h
"
17
18
#include "
qgsdataitem.h
"
19
#include "
qgsdataitemprovider.h
"
20
#include "
qgsdataprovider.h
"
21
#include "
qgsfilebaseddataitemprovider.h
"
22
#include "
qgslogger.h
"
23
#include "
qgsproviderregistry.h
"
24
25
#include "moc_qgsdataitemproviderregistry.cpp"
26
27
QgsDataItemProviderRegistry::QgsDataItemProviderRegistry
()
28
{
29
mProviders <<
new
QgsFileBasedDataItemProvider
();
30
31
QStringList providersList =
QgsProviderRegistry::instance
()->
providerList
();
32
33
const
auto
constProvidersList = providersList;
34
for
(
const
QString &key : constProvidersList )
35
{
36
QList<QgsDataItemProvider *> providerList =
QgsProviderRegistry::instance
()->
dataItemProviders
( key );
37
mProviders << providerList;
38
for
(
const
auto
&p : std::as_const( providerList ) )
39
{
40
if
( !p->dataProviderKey().isEmpty() )
41
{
42
mDataItemProviderOrigin[p->name()] = p->dataProviderKey();
43
}
44
}
45
}
46
}
47
48
QgsDataItemProviderRegistry::~QgsDataItemProviderRegistry
()
49
{
50
qDeleteAll( mProviders );
51
}
52
53
QList<QgsDataItemProvider *>
QgsDataItemProviderRegistry::providers
()
const
54
{
55
return
mProviders;
56
}
57
58
QgsDataItemProvider
*
QgsDataItemProviderRegistry::provider
(
const
QString &providerName )
const
59
{
60
for
(
const
auto
&p : std::as_const( mProviders ) )
61
{
62
if
( p->name() == providerName )
63
{
64
return
p;
65
}
66
}
67
return
nullptr
;
68
}
69
70
void
QgsDataItemProviderRegistry::addProvider
(
QgsDataItemProvider
*
provider
)
71
{
72
if
( !
provider
->dataProviderKey().isEmpty() )
73
{
74
mDataItemProviderOrigin[
provider
->name()] =
provider
->dataProviderKey();
75
}
76
mProviders.append(
provider
);
77
emit
providerAdded
(
provider
);
78
}
79
80
void
QgsDataItemProviderRegistry::removeProvider
(
QgsDataItemProvider
*
provider
)
81
{
82
int
index = mProviders.indexOf(
provider
);
83
if
( index >= 0 )
84
{
85
emit
providerWillBeRemoved
(
provider
);
86
delete
mProviders.takeAt( index );
87
}
88
}
89
90
QString
QgsDataItemProviderRegistry::dataProviderKey
(
const
QString &dataItemProviderName )
91
{
92
return
mDataItemProviderOrigin.value( dataItemProviderName, QString() );
93
}
QgsDataItemProviderRegistry::providers
QList< QgsDataItemProvider * > providers() const
Returns the list of available providers.
Definition
qgsdataitemproviderregistry.cpp:53
QgsDataItemProviderRegistry::dataProviderKey
QString dataProviderKey(const QString &dataItemProviderName)
Returns the (possibly blank) data provider key for a given data item provider name.
Definition
qgsdataitemproviderregistry.cpp:90
QgsDataItemProviderRegistry::~QgsDataItemProviderRegistry
~QgsDataItemProviderRegistry() override
Definition
qgsdataitemproviderregistry.cpp:48
QgsDataItemProviderRegistry::providerWillBeRemoved
void providerWillBeRemoved(QgsDataItemProvider *provider)
Emitted when a data item provider is about to be removed.
QgsDataItemProviderRegistry::removeProvider
void removeProvider(QgsDataItemProvider *provider)
Removes a provider implementation from the registry.
Definition
qgsdataitemproviderregistry.cpp:80
QgsDataItemProviderRegistry::providerAdded
void providerAdded(QgsDataItemProvider *provider)
Emitted when a new data item provider has been added.
QgsDataItemProviderRegistry::addProvider
void addProvider(QgsDataItemProvider *provider)
Adds a provider implementation to the registry.
Definition
qgsdataitemproviderregistry.cpp:70
QgsDataItemProviderRegistry::QgsDataItemProviderRegistry
QgsDataItemProviderRegistry()
Definition
qgsdataitemproviderregistry.cpp:27
QgsDataItemProviderRegistry::provider
QgsDataItemProvider * provider(const QString &providerName) const
Returns the (possibly nullptr) data item provider named providerName.
Definition
qgsdataitemproviderregistry.cpp:58
QgsDataItemProvider
Interface for providers that add custom data items to the browser tree.
Definition
qgsdataitemprovider.h:46
QgsFileBasedDataItemProvider
A data item provider for file based data sources.
Definition
qgsfilebaseddataitemprovider.h:200
QgsProviderRegistry::instance
static QgsProviderRegistry * instance(const QString &pluginPath=QString())
Means of accessing canonical single instance.
Definition
qgsproviderregistry.cpp:86
QgsProviderRegistry::dataItemProviders
QList< QgsDataItemProvider * > dataItemProviders(const QString &providerKey) const
Returns list of data item providers of the provider.
Definition
qgsproviderregistry.cpp:757
QgsProviderRegistry::providerList
QStringList providerList() const
Returns list of available providers by their keys.
Definition
qgsproviderregistry.cpp:1037
qgsdataitem.h
qgsdataitemprovider.h
qgsdataitemproviderregistry.h
qgsdataprovider.h
qgsfilebaseddataitemprovider.h
qgslogger.h
qgsproviderregistry.h
Generated on
for QGIS API Documentation by
1.17.0