00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef QQGSDATAPROVIDER_H
00018 #define QQGSDATAPROVIDER_H
00019
00020
00021 #include <QObject>
00022 #include <QString>
00023 #include <QStringList>
00024
00025 class QgsRectangle;
00026 class QgsCoordinateReferenceSystem;
00027
00028
00042 class CORE_EXPORT QgsDataProvider : public QObject
00043 {
00044 Q_OBJECT
00045
00046 public:
00047
00048 QgsDataProvider( QString const & uri = "" )
00049 : mDataSourceURI( uri )
00050 {}
00051
00055 virtual ~QgsDataProvider() {};
00056
00057
00063 virtual QgsCoordinateReferenceSystem crs() = 0;
00064
00065
00071 virtual void setDataSourceUri( QString const & uri )
00072 {
00073 mDataSourceURI = uri;
00074 }
00075
00081 virtual QString dataSourceUri() const
00082 {
00083 return mDataSourceURI;
00084 }
00085
00086
00091 virtual QgsRectangle extent() = 0;
00092
00093
00098 virtual bool isValid() = 0;
00099
00100
00104 virtual void updateExtents()
00105 {
00106
00107 }
00108
00109
00116 virtual bool setSubsetString( QString subset )
00117 {
00118
00119 Q_UNUSED( subset );
00120 return false;
00121 }
00122
00123
00128 virtual bool supportsSubsetString() { return false; }
00129
00136 virtual QString subsetString()
00137 {
00138 return QString::null;
00139 }
00140
00141
00148 virtual QStringList subLayers() const
00149 {
00150 return QStringList();
00151 }
00152
00153
00161 virtual QStringList subLayerStyles() const
00162 {
00163 return QStringList();
00164 }
00165
00166
00170 virtual uint subLayerCount() const
00171 {
00172 return 0;
00173 }
00174
00175
00181 virtual void setLayerOrder( QStringList layers )
00182 {
00183
00184 if ( layers.count() < 1 )
00185 {
00186 return;
00187 }
00188
00189 }
00190
00191
00195 virtual void setSubLayerVisibility( QString name, bool vis )
00196 {
00197
00198 if ( name.isEmpty() || !vis )
00199 {
00200 return;
00201 }
00202
00203 }
00204
00205
00220 virtual QString name() const = 0;
00221
00222
00234 virtual QString description() const = 0;
00235
00236
00248 virtual QString fileVectorFilters() const
00249 {
00250 return "";
00251 }
00252
00253
00265 virtual QString fileRasterFilters() const
00266 {
00267 return "";
00268 }
00269
00272 virtual void reloadData() {}
00273
00274 signals:
00275
00281 void fullExtentCalculated();
00282
00288 void dataChanged();
00289
00290 private:
00291
00296 QString mDataSourceURI;
00297
00298 };
00299
00300
00301 #endif