Fix WFS connection's version Detect button, which did not support auth

Adds QgsNewHttpConnection protected member to access auth settings
This commit is contained in:
Larry Shaffer 2019-06-06 10:41:58 -06:00
parent 95137dc045
commit 018df8c129
No known key found for this signature in database
GPG Key ID: E113FDFD0FBCEC20
4 changed files with 21 additions and 1 deletions

View File

@ -98,6 +98,7 @@ Returns the "test connection" button.
virtual QString wfsSettingsKey( const QString &base, const QString &connectionName ) const;
%Docstring
Returns the QSettings key for WFS related settings for the connection.

View File

@ -239,6 +239,11 @@ QPushButton *QgsNewHttpConnection::testConnectButton()
return mTestConnectionButton;
}
QgsAuthSettingsWidget *QgsNewHttpConnection::authSettingsWidget()
{
return mAuthSettings;
}
QPushButton *QgsNewHttpConnection::wfsVersionDetectButton()
{
return mWfsVersionDetectButton;

View File

@ -116,6 +116,12 @@ class GUI_EXPORT QgsNewHttpConnection : public QDialog, private Ui::QgsNewHttpCo
*/
QPushButton *testConnectButton();
/**
* Returns the current authentication settings widget.
* \since QGIS 3.8
*/
QgsAuthSettingsWidget *authSettingsWidget() SIP_SKIP;
/**
* Returns the "WFS version detect" button.
* \since QGIS 3.2

View File

@ -35,7 +35,15 @@ QgsWFSNewConnection::~QgsWFSNewConnection()
void QgsWFSNewConnection::versionDetectButton()
{
delete mCapabilities;
mCapabilities = new QgsWfsCapabilities( urlTrimmed().toString() );
// Honor any defined authentication settings
QgsDataSourceUri uri = QgsDataSourceUri();
uri.setParam( QStringLiteral( "url" ), urlTrimmed().toString() );
uri.setUsername( authSettingsWidget()->username() );
uri.setPassword( authSettingsWidget()->password() );
uri.setAuthConfigId( authSettingsWidget()->configId() );
mCapabilities = new QgsWfsCapabilities( uri.uri( false ) );
connect( mCapabilities, &QgsWfsCapabilities::gotCapabilities, this, &QgsWFSNewConnection::capabilitiesReplyFinished );
const bool synchronous = false;
const bool forceRefresh = true;