|
QGIS API Documentation
master-6227475
|
00001 /*************************************************************************** 00002 qgsproviderregistry.h - Singleton class for 00003 registering data providers. 00004 ------------------- 00005 begin : Sat Jan 10 2004 00006 copyright : (C) 2004 by Gary E.Sherman 00007 email : sherman at mrcc.com 00008 ***************************************************************************/ 00009 00010 /*************************************************************************** 00011 * * 00012 * This program is free software; you can redistribute it and/or modify * 00013 * it under the terms of the GNU General Public License as published by * 00014 * the Free Software Foundation; either version 2 of the License, or * 00015 * (at your option) any later version. * 00016 * * 00017 ***************************************************************************/ 00018 00019 #ifndef QGSPROVIDERREGISTRY_H 00020 #define QGSPROVIDERREGISTRY_H 00021 00022 #include <map> 00023 00024 #include <QDir> 00025 #include <QLibrary> 00026 #include <QString> 00027 00028 00029 class QgsDataProvider; 00030 class QgsProviderMetadata; 00031 class QgsVectorLayer; 00032 class QgsCoordinateReferenceSystem; 00033 00034 00040 class CORE_EXPORT QgsProviderRegistry 00041 { 00042 00043 public: 00044 00046 static QgsProviderRegistry* instance( QString pluginPath = QString::null ); 00047 00049 virtual ~QgsProviderRegistry(); 00050 00052 QString library( const QString & providerKey ) const; 00053 00055 QString pluginList( bool asHtml = false ) const; 00056 00058 const QDir & libraryDirectory() const; 00059 00061 void setLibraryDirectory( const QDir & path ); 00062 00068 QgsDataProvider *provider( const QString & providerKey, 00069 const QString & dataSource ); 00070 00071 QWidget *selectWidget( const QString & providerKey, 00072 QWidget * parent = 0, Qt::WFlags fl = 0 ); 00073 00079 void *function( const QString & providerKey, 00080 const QString & functionName ); 00081 00082 QLibrary *providerLibrary( const QString & providerKey ) const; 00083 00085 QStringList providerList() const; 00086 00088 const QgsProviderMetadata* providerMetadata( const QString& providerKey ) const; 00089 00102 virtual QString fileVectorFilters() const; 00106 virtual QString databaseDrivers() const; 00110 virtual QString directoryDrivers() const; 00114 virtual QString protocolDrivers() const; 00115 00116 void registerGuis( QWidget *widget ); 00117 00139 //QgsDataProvider * openVector( QString const & dataSource, QString const & providerKey ); 00140 00141 00143 typedef std::map<QString, QgsProviderMetadata*> Providers; 00144 00145 private: 00146 00148 QgsProviderRegistry( QString pluginPath ); 00149 00151 static QgsProviderRegistry* _instance; 00152 00154 Providers mProviders; 00155 00157 QDir mLibraryDirectory; 00158 00167 QString mVectorFileFilters; 00173 QString mDatabaseDrivers; 00179 QString mDirectoryDrivers; 00185 QString mProtocolDrivers; 00186 00187 }; // class QgsProviderRegistry 00188 00189 #endif //QGSPROVIDERREGISTRY_H 00190