/** * Generic class listing layers available from a remote service. */ class QgsSourceSelectDialog : public QDialog //, protected Ui::QgsSourceSelectBase { %TypeHeaderCode #include "qgssourceselectdialog.h" %End public: /** Whether the dialog is for a map service or a feature service */ enum ServiceType { MapService, FeatureService }; /** Constructor */ QgsSourceSelectDialog( const QString& serviceName, ServiceType serviceType, QWidget* parent, Qt::WindowFlags fl ); /** Destructor */ ~QgsSourceSelectDialog(); /** Sets the current extent and CRS. Used to select an appropriate CRS and possibly to retrieve data only in the current extent */ void setCurrentExtentAndCrs( const QgsRectangle& canvasExtent, const QgsCoordinateReferenceSystem& canvasCrs ); signals: /** Emitted when a layer is added from the dialog */ void addLayer( QString uri, QString typeName ); /** Emitted when the connections for the service were changed */ void connectionsChanged(); protected: /** To be implemented in the child class. Called when a new connection is initiated. */ virtual bool connectToService( const QgsOwsConnection& connection ) = 0; /** May be implemented in child classes for services which support customized queries. */ virtual void buildQuery( const QgsOwsConnection&, const QModelIndex& ); /** To be implemented in the child class. Constructs an URI for the specified service layer. */ virtual QString getLayerURI( const QgsOwsConnection& connection, const QString& layerTitle, const QString& layerName, const QString& crs = QString(), const QString& filter = QString(), const QgsRectangle& bBox = QgsRectangle() ) const = 0; /** Updates the UI for the list of available image encodings from the specified list. */ void populateImageEncodings( const QStringList& availableEncodings ); /** Returns the selected image encoding. */ QString getSelectedImageEncoding() const; };