QGIS API Documentation  3.22.4-Białowieża (ce8e65e95e)
qgsproviderguiregistry.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsproviderrguiegistry.h
3  -------------------
4  begin : June 2019
5  copyright : (C) 2019 by Peter Petrik
6  email : zilolv at google dot com
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef QGSPROVIDERGUIREGISTRY_H
19 #define QGSPROVIDERGUIREGISTRY_H
20 
21 #include <map>
22 
23 #include <QDir>
24 #include <QString>
25 #include <QStringList>
26 #include <QMainWindow>
27 
28 #include "qgis_gui.h"
29 #include "qgis_sip.h"
30 
39 class QgsMapLayer;
40 
53 class GUI_EXPORT QgsProviderGuiRegistry
54 {
55  public:
56 
58  QgsProviderGuiRegistry( const QString &pluginPath );
59 
61  virtual ~QgsProviderGuiRegistry();
62 
64  QStringList providerList() const;
65 
67  const QgsProviderGuiMetadata *providerMetadata( const QString &providerKey ) const;
68 
73  void registerGuis( QMainWindow *widget );
74 
79  virtual const QList<QgsDataItemGuiProvider *> dataItemGuiProviders( const QString &providerKey ) SIP_FACTORY;
80 
85  virtual QList<QgsSourceSelectProvider *> sourceSelectProviders( const QString &providerKey ) SIP_FACTORY;
86 
91  virtual QList<QgsProjectStorageGuiProvider *> projectStorageGuiProviders( const QString &providerKey ) SIP_FACTORY;
92 
98  virtual QList<QgsSubsetStringEditorProvider *> subsetStringEditorProviders( const QString &providerKey ) SIP_FACTORY;
99 
105  virtual QList<QgsProviderSourceWidgetProvider *> sourceWidgetProviders( const QString &providerKey ) SIP_FACTORY;
106 
114  virtual QList<const QgsMapLayerConfigWidgetFactory *> mapLayerConfigWidgetFactories( QgsMapLayer *layer = nullptr );
115 
117  SIP_SKIP typedef std::map<QString, QgsProviderGuiMetadata *> GuiProviders;
118 
119  private:
120 
126  void loadDynamicProviders( const QString &pluginPath );
127 
133  void loadStaticProviders( );
134 
136  GuiProviders mProviders;
137 };
138 
139 #endif
Abstract base class for providers which affect how QgsDataItem items behave within the application GU...
Factory class for creating custom map layer property pages.
Base class for all map layer types.
Definition: qgsmaplayer.h:73
Abstract interface for project storage GUI - to be implemented by various backends and registered in ...
Holds data for GUI part of the data providers.
A registry / canonical manager of GUI parts of data providers.
std::map< QString, QgsProviderGuiMetadata * > GuiProviders
Type for data provider metadata associative container.
An interface for providers of widgets designed to configure a data provider's source.
This is the interface for those who want to add entries to the QgsDataSourceManagerDialog.
This is the interface for those who want to provide a dialog to edit a subset string.
#define SIP_SKIP
Definition: qgis_sip.h:126
#define SIP_FACTORY
Definition: qgis_sip.h:76