QGIS API Documentation  2.14.0-Essen
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 <QDomNode>
24 
25 class QgsPluginLayer;
26 
30 class CORE_EXPORT QgsPluginLayerType
31 {
32  public:
33 
34  QgsPluginLayerType( const QString& name );
35  virtual ~QgsPluginLayerType();
36 
37  QString name();
38 
40  virtual QgsPluginLayer* createLayer();
41 
45  virtual QgsPluginLayer* createLayer( const QString& uri );
46 
48  virtual bool showLayerProperties( QgsPluginLayer* layer );
49 
50  protected:
52 };
53 
54 //=============================================================================
55 
59 class CORE_EXPORT QgsPluginLayerRegistry
60 {
61  public:
62 
64  static QgsPluginLayerRegistry* instance();
65 
67 
70  QStringList pluginLayerTypes();
71 
73  bool addPluginLayerType( QgsPluginLayerType* pluginLayerType );
74 
76  bool removePluginLayerType( const QString& typeName );
77 
79  QgsPluginLayerType* pluginLayerType( const QString& typeName );
80 
84  QgsPluginLayer* createLayer( const QString& typeName, const QString& uri = QString() );
85 
86  private:
87 
89 
93  QgsPluginLayerRegistry& operator=( const QgsPluginLayerRegistry& rh );
94 
96  static QgsPluginLayerRegistry* _instance;
97 
98  PluginLayerTypes mPluginLayerTypes;
99 };
100 
101 #endif // QGSPLUGINLAYERREGSITRY_H
a registry of plugin layers types
Base class for plugin layers.
class for creating plugin specific layers