@@ -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+
429442QImage *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" ) )
0 commit comments