Index: qgswfssourceselect.cpp =================================================================== --- qgswfssourceselect.cpp (revision 13935) +++ qgswfssourceselect.cpp (working copy) @@ -150,7 +150,8 @@ QgsHttpTransaction http( request ); if ( !http.getSynchronously( result ) ) { - QMessageBox::critical( 0, tr( "Could not download capabilities document" ), http.errorString() ); + QMessageBox::critical( 0, tr( "Error" ), + tr( "Could not download capabilities document" ) + http.errorString() ); return 1; } @@ -158,20 +159,22 @@ QString capabilitiesDocError; if ( !capabilitiesDocument.setContent( result, true, &capabilitiesDocError ) ) { - QMessageBox::critical( 0, tr( "Capabilities document is not valid" ), capabilitiesDocError ); + QMessageBox::critical( 0, tr( "Error" ), + tr( "Capabilities document is not valid: " ) + capabilitiesDocError ); return 1; } - QDomNodeList exlist = capabilitiesDocument.elementsByTagName( "ExceptionText" ); - if ( exlist.length() ) + QDomElement doc = capabilitiesDocument.documentElement(); + if ( doc.tagName() == "ExceptionReport" ) { - QDomElement ex = exlist.at( 0 ).toElement(); - QMessageBox::critical( 0, tr( "Error" ), ex.firstChild().nodeValue() ); + QDomNode ex = doc.firstChild(); + QString exc = ex.toElement().attribute("exceptionCode", "Exception"); + QDomElement ext = ex.firstChild().toElement(); + QMessageBox::critical( 0, tr( "Error" ), + exc + ": " + ext.firstChild().nodeValue() ); return 1; } - - //get the elements QDomNodeList featureTypeList = capabilitiesDocument.elementsByTagNameNS( WFS_NAMESPACE, "FeatureType" ); for ( unsigned int i = 0; i < featureTypeList.length(); ++i )