Skip to content

Commit ad1eaf7

Browse files
committedApr 17, 2014
wms client: handle + encoding (image/svg+xml) in format parameter also for
other requests (followup b118213, refs #10060)
1 parent 2a2e05a commit ad1eaf7

File tree

2 files changed

+21
-11
lines changed

2 files changed

+21
-11
lines changed
 

‎src/providers/wms/qgswmsprovider.cpp

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,19 @@ void QgsWmsProvider::setQueryItem( QUrl &url, QString item, QString value )
426426
url.addQueryItem( item, value );
427427
}
428428

429+
void QgsWmsProvider::setFormatQueryItem( QUrl &url )
430+
{
431+
url.removeQueryItem( "FORMAT" );
432+
if ( mSettings.mImageMimeType.contains( "+" ) )
433+
{
434+
QString format( mSettings.mImageMimeType );
435+
format.replace( "+", "%2b" );
436+
url.addEncodedQueryItem( "FORMAT", format.toUtf8() );
437+
}
438+
else
439+
setQueryItem( url, "FORMAT", mSettings.mImageMimeType );
440+
}
441+
429442
QImage *QgsWmsProvider::draw( QgsRectangle const &viewExtent, int pixelWidth, int pixelHeight )
430443
{
431444
QgsDebugMsg( "Entering." );
@@ -509,14 +522,7 @@ QImage *QgsWmsProvider::draw( QgsRectangle const &viewExtent, int pixelWidth, i
509522
setQueryItem( url, "HEIGHT", QString::number( pixelHeight ) );
510523
setQueryItem( url, "LAYERS", layers );
511524
setQueryItem( url, "STYLES", styles );
512-
if( mSettings.mImageMimeType.contains( "+" ) )
513-
{
514-
QString format( mSettings.mImageMimeType );
515-
format.replace( "+", "%2b" );
516-
url.addEncodedQueryItem( "FORMAT", format.toUtf8() );
517-
}
518-
else
519-
setQueryItem( url, "FORMAT", mSettings.mImageMimeType );
525+
setFormatQueryItem( url );
520526

521527
if ( mDpi != -1 )
522528
{
@@ -680,7 +686,8 @@ QImage *QgsWmsProvider::draw( QgsRectangle const &viewExtent, int pixelWidth, i
680686
setQueryItem( url, "HEIGHT", QString::number( tm->tileHeight ) );
681687
setQueryItem( url, "LAYERS", mSettings.mActiveSubLayers.join( "," ) );
682688
setQueryItem( url, "STYLES", mSettings.mActiveSubStyles.join( "," ) );
683-
setQueryItem( url, "FORMAT", mSettings.mImageMimeType );
689+
setFormatQueryItem( url );
690+
684691
setQueryItem( url, crsKey, mImageCrs );
685692

686693
if ( mSettings.mTiled )
@@ -2199,7 +2206,7 @@ QgsRasterIdentifyResult QgsWmsProvider::identify( const QgsPoint & thePoint, Qgs
21992206
setQueryItem( requestUrl, "HEIGHT", QString::number( theHeight ) );
22002207
setQueryItem( requestUrl, "LAYERS", *layers );
22012208
setQueryItem( requestUrl, "STYLES", *styles );
2202-
setQueryItem( requestUrl, "FORMAT", mSettings.mImageMimeType );
2209+
setFormatQueryItem( requestUrl );
22032210
setQueryItem( requestUrl, "QUERY_LAYERS", *layers );
22042211
setQueryItem( requestUrl, "INFO_FORMAT", format );
22052212

@@ -2969,7 +2976,7 @@ QImage QgsWmsProvider::getLegendGraphic( double scale, bool forceRefresh )
29692976
if ( !url.hasQueryItem( "REQUEST" ) )
29702977
setQueryItem( url, "REQUEST", "GetLegendGraphic" );
29712978
if ( !url.hasQueryItem( "FORMAT" ) )
2972-
setQueryItem( url, "FORMAT", mSettings.mImageMimeType );
2979+
setFormatQueryItem( url );
29732980
if ( !url.hasQueryItem( "LAYER" ) )
29742981
setQueryItem( url, "LAYER", mSettings.mActiveSubLayers[0] );
29752982
if ( !url.hasQueryItem( "STYLE" ) )

‎src/providers/wms/qgswmsprovider.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,6 +364,9 @@ class QgsWmsProvider : public QgsRasterDataProvider
364364
//! remove query item and replace it with a new value
365365
void setQueryItem( QUrl &url, QString key, QString value );
366366

367+
//! add image FORMAT parameter to url
368+
void setFormatQueryItem( QUrl &url );
369+
367370
//! Name of the stored connection
368371
QString mConnectionName;
369372

0 commit comments

Comments
 (0)
Please sign in to comment.