Skip to content

Commit bcd9bd7

Browse files
committedApr 30, 2012
WFS adapted to QgsOWSConnection, remaining functionality from QgsWFSConnection moved to QgsWFSCapabilities
1 parent b7289fb commit bcd9bd7

File tree

7 files changed

+120
-111
lines changed

7 files changed

+120
-111
lines changed
 

‎src/providers/wfs/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
SET(WFS_SRCS
66
qgswfsprovider.cpp
7-
qgswfsconnection.cpp
7+
qgswfscapabilities.cpp
88
qgswfsdataitems.cpp
99
qgswfsdata.cpp
1010
qgswfssourceselect.cpp
@@ -13,7 +13,7 @@ SET(WFS_SRCS
1313

1414
SET (WFS_MOC_HDRS
1515
qgswfsdata.h
16-
qgswfsconnection.h
16+
qgswfscapabilities.h
1717
qgswfsdataitems.h
1818
qgswfsprovider.h
1919
qgswfssourceselect.h

‎src/providers/wfs/qgswfsconnection.cpp renamed to ‎src/providers/wfs/qgswfscapabilities.cpp

Lines changed: 40 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include "qgswfsconnection.h"
1+
#include "qgswfscapabilities.h"
22
#include "qgsexpression.h"
33
#include "qgslogger.h"
44
#include "qgsnetworkaccessmanager.h"
@@ -11,18 +11,25 @@
1111

1212
static 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-
}

‎src/providers/wfs/qgswfsconnection.h renamed to ‎src/providers/wfs/qgswfscapabilities.h

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,25 @@
1-
#ifndef QGSWFSCONNECTION_H
2-
#define QGSWFSCONNECTION_H
1+
#ifndef QGSWFSCAPABILITIES_H
2+
#define QGSWFSCAPABILITIES_H
33

44
#include <QObject>
55

66
#include "qgsrectangle.h"
7+
#include "qgsdatasourceuri.h"
78

89
class QNetworkReply;
910

10-
class QgsWFSConnection : public QObject
11+
class QgsWFSCapabilities : public QObject
1112
{
1213
Q_OBJECT
1314
public:
14-
explicit QgsWFSConnection( QString connName, QObject *parent = 0 );
15+
//explicit QgsWFSCapabilities( QString connName, QObject *parent = 0 );
16+
QgsWFSCapabilities( QString theUri );
1517

16-
static QStringList connectionList();
17-
18-
static void deleteConnection( QString name );
19-
20-
static QString selectedConnection();
21-
static void setSelectedConnection( QString name );
18+
//! Append ? or & if necessary
19+
QString prepareUri( QString uri );
2220

2321
//! base service URI
24-
QString uri() const { return mUri; }
22+
QString uri() const { return mBaseUrl; }
2523
//! URI to get capabilities
2624
QString uriGetCapabilities() const;
2725
//! URI to get schema of wfs layer
@@ -67,13 +65,17 @@ class QgsWFSConnection : public QObject
6765
void capabilitiesReplyFinished();
6866

6967
protected:
70-
QString mConnName;
71-
QString mUri;
68+
//QString mConnName;
69+
//QString mUri;
70+
71+
QgsDataSourceURI mUri;
72+
73+
QString mBaseUrl;
7274

7375
QNetworkReply *mCapabilitiesReply;
7476
GetCapabilities mCaps;
7577
ErrorCode mErrorCode;
7678
QString mErrorMessage;
7779
};
7880

79-
#endif // QGSWFSCONNECTION_H
81+
#endif // QGSWFSCAPABILITIES_H

‎src/providers/wfs/qgswfsdataitems.cpp

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
#include "qgswfsdataitems.h"
22

33
#include "qgswfsprovider.h"
4-
#include "qgswfsconnection.h"
4+
#include "qgsowsconnection.h"
5+
#include "qgswfscapabilities.h"
56
#include "qgswfssourceselect.h"
67

78
#include "qgsnewhttpconnection.h"
@@ -10,10 +11,10 @@
1011
#include <QCoreApplication>
1112

1213

13-
QgsWFSLayerItem::QgsWFSLayerItem( QgsDataItem* parent, QString connName, QString name, QString title )
14+
QgsWFSLayerItem::QgsWFSLayerItem( QgsDataItem* parent, QString name, QgsDataSourceURI uri, QString featureType, QString title )
1415
: QgsLayerItem( parent, title, parent->path() + "/" + name, QString(), QgsLayerItem::Vector, "WFS" )
1516
{
16-
mUri = QgsWFSConnection( connName ).uriGetFeature( name );
17+
mUri = QgsWFSCapabilities( uri.encodedUri() ).uriGetFeature( featureType );
1718
mPopulated = true;
1819
}
1920

@@ -24,7 +25,7 @@ QgsWFSLayerItem::~QgsWFSLayerItem()
2425
////
2526

2627
QgsWFSConnectionItem::QgsWFSConnectionItem( QgsDataItem* parent, QString name, QString path )
27-
: QgsDataCollectionItem( parent, name, path ), mName( name ), mConn( NULL )
28+
: QgsDataCollectionItem( parent, name, path ), mName( name ), mCapabilities( NULL )
2829
{
2930
mIcon = QIcon( getThemePixmap( "mIconConnect.png" ) );
3031
}
@@ -36,23 +37,29 @@ QgsWFSConnectionItem::~QgsWFSConnectionItem()
3637
QVector<QgsDataItem*> QgsWFSConnectionItem::createChildren()
3738
{
3839
mGotCapabilities = false;
39-
mConn = new QgsWFSConnection( mName, this );
40-
connect( mConn, SIGNAL( gotCapabilities() ), this, SLOT( gotCapabilities() ) );
4140

42-
mConn->requestCapabilities();
41+
QgsOWSConnection connection( "WFS", mName );
42+
QgsDataSourceURI uri = connection.uri();
43+
QString encodedUri = uri.encodedUri();
44+
45+
mCapabilities = new QgsWFSCapabilities( encodedUri );
46+
connect( mCapabilities, SIGNAL( gotCapabilities() ), this, SLOT( gotCapabilities() ) );
47+
48+
mCapabilities->requestCapabilities();
4349

4450
while ( !mGotCapabilities )
4551
{
4652
QCoreApplication::processEvents( QEventLoop::ExcludeUserInputEvents );
4753
}
4854

4955
QVector<QgsDataItem*> layers;
50-
if ( mConn->errorCode() == QgsWFSConnection::NoError )
56+
if ( mCapabilities->errorCode() == QgsWFSCapabilities::NoError )
5157
{
52-
QgsWFSConnection::GetCapabilities caps = mConn->capabilities();
53-
foreach( const QgsWFSConnection::FeatureType& featureType, caps.featureTypes )
58+
QgsWFSCapabilities::GetCapabilities caps = mCapabilities->capabilities();
59+
foreach( const QgsWFSCapabilities::FeatureType& featureType, caps.featureTypes )
5460
{
55-
QgsWFSLayerItem* layer = new QgsWFSLayerItem( this, mName, featureType.name, featureType.title );
61+
//QgsWFSLayerItem* layer = new QgsWFSLayerItem( this, mName, featureType.name, featureType.title );
62+
QgsWFSLayerItem* layer = new QgsWFSLayerItem( this, mName, uri, featureType.name, featureType.title );
5663
layers.append( layer );
5764
}
5865
}
@@ -61,8 +68,8 @@ QVector<QgsDataItem*> QgsWFSConnectionItem::createChildren()
6168
layers.append( new QgsErrorItem( this, tr( "Failed to retrieve layers" ), mPath + "/error" ) );
6269
}
6370

64-
mConn->deleteLater();
65-
mConn = NULL;
71+
mCapabilities->deleteLater();
72+
mCapabilities = NULL;
6673

6774
return layers;
6875
}
@@ -101,7 +108,7 @@ void QgsWFSConnectionItem::editConnection()
101108

102109
void QgsWFSConnectionItem::deleteConnection()
103110
{
104-
QgsWFSConnection::deleteConnection( mName );
111+
QgsOWSConnection::deleteConnection( "WFS", mName );
105112
// the parent should be updated
106113
mParent->refresh();
107114
}
@@ -127,7 +134,7 @@ QVector<QgsDataItem*> QgsWFSRootItem::createChildren()
127134
{
128135
QVector<QgsDataItem*> connections;
129136

130-
foreach( QString connName, QgsWFSConnection::connectionList() )
137+
foreach( QString connName, QgsOWSConnection::connectionList( "WFS" ) )
131138
{
132139
QgsDataItem * conn = new QgsWFSConnectionItem( this, connName, mPath + "/" + connName );
133140
connections.append( conn );

‎src/providers/wfs/qgswfsdataitems.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
#define QGSWFSDATAITEMS_H
33

44
#include "qgsdataitem.h"
5+
#include "qgsdatasourceuri.h"
6+
#include "qgswfscapabilities.h"
57

68
class QgsWFSRootItem : public QgsDataCollectionItem
79
{
@@ -45,15 +47,15 @@ class QgsWFSConnectionItem : public QgsDataCollectionItem
4547
private:
4648
QString mName;
4749

48-
QgsWFSConnection* mConn;
50+
QgsWFSCapabilities* mCapabilities;
4951
bool mGotCapabilities;
5052
};
5153

5254

5355
class QgsWFSLayerItem : public QgsLayerItem
5456
{
5557
public:
56-
QgsWFSLayerItem( QgsDataItem* parent, QString connName, QString name, QString title );
58+
QgsWFSLayerItem( QgsDataItem* parent, QString name, QgsDataSourceURI uri, QString featureType, QString title );
5759
~QgsWFSLayerItem();
5860

5961
};

‎src/providers/wfs/qgswfssourceselect.cpp

Lines changed: 34 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
***************************************************************************/
1717

1818
#include "qgswfssourceselect.h"
19-
#include "qgswfsconnection.h"
19+
#include "qgsowsconnection.h"
20+
#include "qgswfscapabilities.h"
2021
#include "qgswfsprovider.h"
2122
#include "qgsnewhttpconnection.h"
2223
#include "qgsgenericprojectionselector.h"
@@ -38,7 +39,7 @@
3839

3940
QgsWFSSourceSelect::QgsWFSSourceSelect( QWidget* parent, Qt::WFlags fl, bool embeddedMode )
4041
: QDialog( parent, fl )
41-
, mConn( NULL )
42+
, mCapabilities( NULL )
4243
{
4344
setupUi( this );
4445

@@ -75,12 +76,12 @@ QgsWFSSourceSelect::~QgsWFSSourceSelect()
7576
settings.setValue( "/Windows/WFSSourceSelect/geometry", saveGeometry() );
7677

7778
delete mProjectionSelector;
78-
delete mConn;
79+
delete mCapabilities;
7980
}
8081

8182
void QgsWFSSourceSelect::populateConnectionList()
8283
{
83-
QStringList keys = QgsWFSConnection::connectionList();
84+
QStringList keys = QgsOWSConnection::connectionList( "WFS" );
8485

8586
QStringList::Iterator it = keys.begin();
8687
cmbConnections->clear();
@@ -107,16 +108,17 @@ void QgsWFSSourceSelect::populateConnectionList()
107108
}
108109

109110
//set last used connection
110-
QString selectedConnection = QgsWFSConnection::selectedConnection();
111+
QString selectedConnection = QgsOWSConnection::selectedConnection( "WFS" );
111112
int index = cmbConnections->findText( selectedConnection );
112113
if ( index != -1 )
113114
{
114115
cmbConnections->setCurrentIndex( index );
115116
}
116117

117-
delete mConn;
118-
mConn = new QgsWFSConnection( cmbConnections->currentText() );
119-
connect( mConn, SIGNAL( gotCapabilities() ), this, SLOT( capabilitiesReplyFinished() ) );
118+
QgsOWSConnection connection( "WFS", cmbConnections->currentText() );
119+
delete mCapabilities;
120+
mCapabilities = new QgsWFSCapabilities( connection.uri().encodedUri() );
121+
connect( mCapabilities, SIGNAL( gotCapabilities() ), this, SLOT( capabilitiesReplyFinished() ) );
120122
}
121123

122124
QString QgsWFSSourceSelect::getPreferredCrs( const QSet<QString>& crsSet ) const
@@ -155,30 +157,30 @@ void QgsWFSSourceSelect::capabilitiesReplyFinished()
155157
{
156158
btnConnect->setEnabled( true );
157159

158-
if ( !mConn )
160+
if ( !mCapabilities )
159161
return;
160-
QgsWFSConnection::ErrorCode err = mConn->errorCode();
161-
if ( err != QgsWFSConnection::NoError )
162+
QgsWFSCapabilities::ErrorCode err = mCapabilities->errorCode();
163+
if ( err != QgsWFSCapabilities::NoError )
162164
{
163165
QString title;
164166
switch ( err )
165167
{
166-
case QgsWFSConnection::NetworkError: title = tr( "Network Error" ); break;
167-
case QgsWFSConnection::XmlError: title = tr( "Capabilities document is not valid" ); break;
168-
case QgsWFSConnection::ServerExceptionError: title = tr( "Server Exception" ); break;
168+
case QgsWFSCapabilities::NetworkError: title = tr( "Network Error" ); break;
169+
case QgsWFSCapabilities::XmlError: title = tr( "Capabilities document is not valid" ); break;
170+
case QgsWFSCapabilities::ServerExceptionError: title = tr( "Server Exception" ); break;
169171
default: tr( "Error" ); break;
170172
}
171173
// handle errors
172-
QMessageBox::critical( 0, title, mConn->errorMessage() );
174+
QMessageBox::critical( 0, title, mCapabilities->errorMessage() );
173175

174176
btnAdd->setEnabled( false );
175177
return;
176178
}
177179

178-
QgsWFSConnection::GetCapabilities caps = mConn->capabilities();
180+
QgsWFSCapabilities::GetCapabilities caps = mCapabilities->capabilities();
179181

180182
mAvailableCRS.clear();
181-
foreach( QgsWFSConnection::FeatureType featureType, caps.featureTypes )
183+
foreach( QgsWFSCapabilities::FeatureType featureType, caps.featureTypes )
182184
{
183185
// insert the typenames, titles and abstracts into the tree view
184186
QTreeWidgetItem* newItem = new QTreeWidgetItem();
@@ -242,7 +244,7 @@ void QgsWFSSourceSelect::deleteEntryOfServerList()
242244
QMessageBox::StandardButton result = QMessageBox::information( this, tr( "Confirm Delete" ), msg, QMessageBox::Ok | QMessageBox::Cancel );
243245
if ( result == QMessageBox::Ok )
244246
{
245-
QgsWFSConnection::deleteConnection( cmbConnections->currentText() );
247+
QgsOWSConnection::deleteConnection( "WFS", cmbConnections->currentText() );
246248
cmbConnections->removeItem( cmbConnections->currentIndex() );
247249
emit connectionsChanged();
248250
}
@@ -253,9 +255,9 @@ void QgsWFSSourceSelect::connectToServer()
253255
btnConnect->setEnabled( false );
254256
treeWidget->clear();
255257

256-
if ( mConn )
258+
if ( mCapabilities )
257259
{
258-
mConn->requestCapabilities();
260+
mCapabilities->requestCapabilities();
259261
}
260262
}
261263

@@ -271,7 +273,10 @@ void QgsWFSSourceSelect::addLayer()
271273

272274
QList<QTreeWidgetItem*> selectedItems = treeWidget->selectedItems();
273275
QList<QTreeWidgetItem*>::const_iterator sIt = selectedItems.constBegin();
274-
QgsWFSConnection conn( cmbConnections->currentText() );
276+
277+
QgsOWSConnection connection( "WFS", cmbConnections->currentText() );
278+
QgsWFSCapabilities conn ( connection.uri().encodedUri() );
279+
275280
QString pCrsString( labelCoordRefSys->text() );
276281
QgsCoordinateReferenceSystem pCrs( pCrsString );
277282
//prepare canvas extent info for layers with "cache features" option not set
@@ -375,11 +380,13 @@ void QgsWFSSourceSelect::changeCRSFilter()
375380
void QgsWFSSourceSelect::on_cmbConnections_activated( int index )
376381
{
377382
Q_UNUSED( index );
378-
QgsWFSConnection::setSelectedConnection( cmbConnections->currentText() );
383+
QgsOWSConnection::setSelectedConnection( "WFS", cmbConnections->currentText() );
384+
385+
QgsOWSConnection connection( "WFS", cmbConnections->currentText() );
379386

380-
delete mConn;
381-
mConn = new QgsWFSConnection( cmbConnections->currentText() );
382-
connect( mConn, SIGNAL( gotCapabilities() ), this, SLOT( capabilitiesReplyFinished() ) );
387+
delete mCapabilities;
388+
mCapabilities = new QgsWFSCapabilities( connection.uri().encodedUri() );
389+
connect( mCapabilities, SIGNAL( gotCapabilities() ), this, SLOT( capabilitiesReplyFinished() ) );
383390
}
384391

385392
void QgsWFSSourceSelect::on_btnSave_clicked()
@@ -409,7 +416,8 @@ void QgsWFSSourceSelect::on_treeWidget_itemDoubleClicked( QTreeWidgetItem* item,
409416
{
410417
//get available fields for wfs layer
411418
QgsWFSProvider p( "" ); //bypasses most provider instantiation logic
412-
QgsWFSConnection conn( cmbConnections->currentText() );
419+
QgsOWSConnection connection( "WFS", cmbConnections->currentText() );
420+
QgsWFSCapabilities conn ( connection.uri().encodedUri() );
413421
QString uri = conn.uriDescribeFeatureType( item->text( 1 ) );
414422

415423
QgsFieldMap fields;

‎src/providers/wfs/qgswfssourceselect.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
#include "qgscontexthelp.h"
2323

2424
class QgsGenericProjectionSelector;
25-
class QgsWFSConnection;
25+
class QgsWFSCapabilities;
2626

2727
class QgsWFSSourceSelect: public QDialog, private Ui::QgsWFSSourceSelectBase
2828
{
@@ -45,7 +45,7 @@ class QgsWFSSourceSelect: public QDialog, private Ui::QgsWFSSourceSelectBase
4545
stores the CRS for the typename in the form 'EPSG:XXXX'*/
4646
std::map<QString, std::list<QString> > mAvailableCRS;
4747
QAbstractButton* btnAdd;
48-
QgsWFSConnection* mConn;
48+
QgsWFSCapabilities* mCapabilities;
4949
QString mUri; // data source URI
5050

5151
void populateConnectionList();

0 commit comments

Comments
 (0)
Please sign in to comment.