QGIS API Documentation  2.99.0-Master (b698612)
qgspluginlayerregistry.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgspluginlayerregistry.cpp - class for
3  registering plugin layer creators
4  -------------------
5  begin : Mon Nov 30 2009
6  copyright : (C) 2009 by Mathias Walker, Sourcepole
7  email : mwa at sourcepole.ch
8  ***************************************************************************/
9 
10 /***************************************************************************
11  * *
12  * This program is free software; you can redistribute it and/or modify *
13  * it under the terms of the GNU General Public License as published by *
14  * the Free Software Foundation; either version 2 of the License, or *
15  * (at your option) any later version. *
16  * *
17  ***************************************************************************/
18 
19 #ifndef QGSPLUGINLAYERREGSITRY_H
20 #define QGSPLUGINLAYERREGSITRY_H
21 
22 #include <QMap>
23 #include "qgis.h"
24 #include <QDomNode>
25 
26 #include "qgis_core.h"
27 
28 class QgsPluginLayer;
29 
33 class CORE_EXPORT QgsPluginLayerType
34 {
35  public:
36 
37  QgsPluginLayerType( const QString &name );
38  virtual ~QgsPluginLayerType() = default;
39 
40  QString name();
41 
43  virtual QgsPluginLayer *createLayer() SIP_FACTORY;
44 
48  virtual QgsPluginLayer *createLayer( const QString &uri ) SIP_FACTORY;
49 
51  virtual bool showLayerProperties( QgsPluginLayer *layer );
52 
53  protected:
54  QString mName;
55 };
56 
57 //=============================================================================
58 
65 class CORE_EXPORT QgsPluginLayerRegistry
66 {
67  public:
68 
71 
73  QgsPluginLayerRegistry( const QgsPluginLayerRegistry &rh ) = delete;
75  QgsPluginLayerRegistry &operator=( const QgsPluginLayerRegistry &rh ) = delete;
76 
79  QStringList pluginLayerTypes();
80 
82  bool addPluginLayerType( QgsPluginLayerType *pluginLayerType SIP_TRANSFER );
83 
85  bool removePluginLayerType( const QString &typeName );
86 
88  QgsPluginLayerType *pluginLayerType( const QString &typeName );
89 
93  QgsPluginLayer *createLayer( const QString &typeName, const QString &uri = QString() ) SIP_FACTORY;
94 
95  private:
96 #ifdef SIP_RUN
98 #endif
99 
100  typedef QMap<QString, QgsPluginLayerType *> PluginLayerTypes;
101 
102  PluginLayerTypes mPluginLayerTypes;
103 };
104 
105 #endif // QGSPLUGINLAYERREGSITRY_H
A registry of plugin layers types.
Base class for plugin layers.
#define SIP_TRANSFER
Definition: qgis_sip.h:24
#define SIP_FACTORY
Definition: qgis_sip.h:57
class for creating plugin specific layers