Showing with 31 additions and 3 deletions.
  1. +26 −2 src/app/openstreetmap/qgsosmdownloaddialog.cpp
  2. +3 −0 src/app/qgisapp.cpp
  3. +2 −1 src/core/qgsnetworkaccessmanager.cpp
28 changes: 26 additions & 2 deletions src/app/openstreetmap/qgsosmdownloaddialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,13 @@
#include <QMessageBox>
#include <QPushButton>

#include "qgis.h"
#include "qgisapp.h"
#include "qgsmapcanvas.h"
#include "qgsmaplayer.h"
#include "qgsmaplayerregistry.h"
#include "qgsrectangle.h"
#include "qgscoordinatetransform.h"

#include "qgsosmdownload.h"

Expand Down Expand Up @@ -96,7 +98,22 @@ void QgsOSMDownloadDialog::setRectReadOnly( bool readonly )

void QgsOSMDownloadDialog::onExtentCanvas()
{
setRect( QgisApp::instance()->mapCanvas()->extent() ); // TODO: transform to WGS84
QgsRectangle r( QgisApp::instance()->mapCanvas()->extent() );

if ( QgisApp::instance()->mapCanvas()->hasCrsTransformEnabled() )
{
QgsCoordinateReferenceSystem dst( GEOCRS_ID, QgsCoordinateReferenceSystem::InternalCrsId );

QgsCoordinateTransform ct( QgisApp::instance()->mapCanvas()->mapRenderer()->destinationCrs(), dst );
r = ct.transformBoundingBox( r );
if ( !r.isFinite() )
{
QMessageBox::information( this, tr( "OpenStreetMap download" ), tr( "Could not transform canvas extent." ) );
return;
}
}

setRect( r );
setRectReadOnly( true );
cboLayers->setEnabled( false );
}
Expand Down Expand Up @@ -124,7 +141,14 @@ void QgsOSMDownloadDialog::onCurrentLayerChanged( int index )
if ( !layer )
return;

setRect( layer->extent() ); // TODO: transform to WGS84
QgsCoordinateReferenceSystem dst( GEOCRS_ID, QgsCoordinateReferenceSystem::InternalCrsId );

QgsCoordinateTransform ct( layer->crs(), dst );
QgsRectangle rect( ct.transformBoundingBox( layer->extent() ) );
if ( rect.isFinite() )
setRect( rect );
else
QMessageBox::information( this, tr( "OpenStreetMap download" ), tr( "Could not transform layer extent." ) );
}

void QgsOSMDownloadDialog::onBrowseClicked()
Expand Down
3 changes: 3 additions & 0 deletions src/app/qgisapp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9474,6 +9474,9 @@ void QgisApp::namAuthenticationRequired( QNetworkReply *reply, QAuthenticator *a
if ( !ok )
return;

if( reply->isFinished() )
return;

auth->setUser( username );
auth->setPassword( password );
}
Expand Down
3 changes: 2 additions & 1 deletion src/core/qgsnetworkaccessmanager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,8 @@ void QgsNetworkAccessManager::abortRequest()

QgsMessageLog::logMessage( tr( "Network request %1 timed out" ).arg( reply->url().toString() ), tr( "Network" ) );

reply->abort();
if( reply->isRunning() )
reply->close();
}

QString QgsNetworkAccessManager::cacheLoadControlName( QNetworkRequest::CacheLoadControl theControl )
Expand Down