1- #include " qgswfsconnection .h"
1+ #include " qgswfscapabilities .h"
22#include " qgsexpression.h"
33#include " qgslogger.h"
44#include " qgsnetworkaccessmanager.h"
1111
1212static const QString WFS_NAMESPACE = " http://www.opengis.net/wfs" ;
1313
14- QgsWFSConnection::QgsWFSConnection ( QString connName, QObject *parent ) :
15- QObject( parent ),
16- mConnName( connName ),
14+ QgsWFSCapabilities::QgsWFSCapabilities ( QString theUri ) :
15+ // QObject( parent ),
16+ // mConnName( connName ),
1717 mCapabilitiesReply( 0 ),
18- mErrorCode( QgsWFSConnection ::NoError )
18+ mErrorCode( QgsWFSCapabilities ::NoError )
1919{
20+ mUri .setEncodedUri ( theUri ),
21+ QgsDebugMsg ( " theUri = " + theUri );
22+ mBaseUrl = prepareUri ( mUri .param (" url" ) );
23+
24+ QgsDebugMsg ( " mBaseUrl = " + mBaseUrl );
25+
2026 // find out the server URL
27+ /*
2128 QSettings settings;
2229 QString key = "/Qgis/connections-wfs/" + mConnName + "/url";
2330 mUri = settings.value( key ).toString();
2431 QgsDebugMsg( QString( "url is: %1" ).arg( mUri ) );
25-
32+
2633 //make a GetCapabilities request
2734 //modify mUri to add '?' or '&' at the end if it is not already there
2835 if ( !( mUri.contains( "?" ) ) )
@@ -33,19 +40,34 @@ QgsWFSConnection::QgsWFSConnection( QString connName, QObject *parent ) :
3340 {
3441 mUri.append( "&" );
3542 }
43+ */
3644}
3745
38- QString QgsWFSConnection::uriGetCapabilities () const
46+ QString QgsWFSCapabilities::prepareUri ( QString uri )
3947{
40- return mUri + " SERVICE=WFS&REQUEST=GetCapabilities&VERSION=1.0.0" ;
48+ if ( !uri.contains ( " ?" ) )
49+ {
50+ uri.append ( " ?" );
51+ }
52+ else if ( uri.right ( 1 ) != " ?" && uri.right ( 1 ) != " &" )
53+ {
54+ uri.append ( " &" );
55+ }
56+
57+ return uri;
58+ }
59+
60+ QString QgsWFSCapabilities::uriGetCapabilities () const
61+ {
62+ return mBaseUrl + " SERVICE=WFS&REQUEST=GetCapabilities&VERSION=1.0.0" ;
4163}
4264
43- QString QgsWFSConnection ::uriDescribeFeatureType ( const QString& typeName ) const
65+ QString QgsWFSCapabilities ::uriDescribeFeatureType ( const QString& typeName ) const
4466{
45- return mUri + " SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=1.0.0&TYPENAME=" + typeName;
67+ return mBaseUrl + " SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=1.0.0&TYPENAME=" + typeName;
4668}
4769
48- QString QgsWFSConnection ::uriGetFeature ( QString typeName, QString crsString, QString filter, QgsRectangle bBox ) const
70+ QString QgsWFSCapabilities ::uriGetFeature ( QString typeName, QString crsString, QString filter, QgsRectangle bBox ) const
4971{
5072 // get CRS
5173 if ( !crsString.isEmpty () )
@@ -89,11 +111,7 @@ QString QgsWFSConnection::uriGetFeature( QString typeName, QString crsString, QS
89111 .arg ( bBox.yMaximum (), 0 , ' f' );
90112 }
91113
92- QString uri = mUri ;
93- if ( !( uri.contains ( " ?" ) ) )
94- {
95- uri.append ( " ?" );
96- }
114+ QString uri = mBaseUrl ;
97115
98116 // add a wfs layer to the map
99117 uri += " SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=" + typeName + crsString + bBoxString + filterString;
@@ -102,9 +120,9 @@ QString QgsWFSConnection::uriGetFeature( QString typeName, QString crsString, QS
102120}
103121
104122
105- void QgsWFSConnection ::requestCapabilities ()
123+ void QgsWFSCapabilities ::requestCapabilities ()
106124{
107- mErrorCode = QgsWFSConnection ::NoError;
125+ mErrorCode = QgsWFSCapabilities ::NoError;
108126 mErrorMessage .clear ();
109127
110128 QNetworkRequest request ( uriGetCapabilities () );
@@ -113,12 +131,12 @@ void QgsWFSConnection::requestCapabilities()
113131 connect ( mCapabilitiesReply , SIGNAL ( finished () ), this , SLOT ( capabilitiesReplyFinished () ) );
114132}
115133
116- void QgsWFSConnection ::capabilitiesReplyFinished ()
134+ void QgsWFSCapabilities ::capabilitiesReplyFinished ()
117135{
118136 // handle network errors
119137 if ( mCapabilitiesReply ->error () != QNetworkReply::NoError )
120138 {
121- mErrorCode = QgsWFSConnection ::NetworkError;
139+ mErrorCode = QgsWFSCapabilities ::NetworkError;
122140 mErrorMessage = mCapabilitiesReply ->errorString ();
123141 emit gotCapabilities ();
124142 return ;
@@ -149,7 +167,7 @@ void QgsWFSConnection::capabilitiesReplyFinished()
149167 QDomDocument capabilitiesDocument;
150168 if ( !capabilitiesDocument.setContent ( buffer, true , &capabilitiesDocError ) )
151169 {
152- mErrorCode = QgsWFSConnection ::XmlError;
170+ mErrorCode = QgsWFSCapabilities ::XmlError;
153171 mErrorMessage = capabilitiesDocError;
154172 emit gotCapabilities ();
155173 return ;
@@ -163,7 +181,7 @@ void QgsWFSConnection::capabilitiesReplyFinished()
163181 QDomNode ex = doc.firstChild ();
164182 QString exc = ex.toElement ().attribute ( " exceptionCode" , " Exception" );
165183 QDomElement ext = ex.firstChild ().toElement ();
166- mErrorCode = QgsWFSConnection ::ServerExceptionError;
184+ mErrorCode = QgsWFSCapabilities ::ServerExceptionError;
167185 mErrorMessage = exc + " : " + ext.firstChild ().nodeValue ();
168186 emit gotCapabilities ();
169187 return ;
@@ -226,31 +244,3 @@ void QgsWFSConnection::capabilitiesReplyFinished()
226244 emit gotCapabilities ();
227245}
228246
229-
230-
231-
232- QStringList QgsWFSConnection::connectionList ()
233- {
234- QSettings settings;
235- settings.beginGroup ( " /Qgis/connections-wfs" );
236- return settings.childGroups ();
237- }
238-
239- QString QgsWFSConnection::selectedConnection ()
240- {
241- QSettings settings;
242- return settings.value ( " /Qgis/connections-wfs/selected" ).toString ();
243- }
244-
245- void QgsWFSConnection::setSelectedConnection ( QString name )
246- {
247- QSettings settings;
248- settings.setValue ( " /Qgis/connections-wfs/selected" , name );
249- }
250-
251- void QgsWFSConnection::deleteConnection ( QString name )
252- {
253- QSettings settings;
254- settings.remove ( " /Qgis/connections-wfs/" + name );
255- settings.remove ( " /Qgis/WFS/" + name );
256- }
0 commit comments