Skip to content

Commit 59eadbb

Browse files
committedMar 27, 2019
Move some methods from renderer to context
1 parent ca602ec commit 59eadbb

File tree

6 files changed

+46
-50
lines changed

6 files changed

+46
-50
lines changed
 

‎src/server/services/wms/qgswmsgetlegendgraphics.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ namespace QgsWms
8585

8686
if ( result )
8787
{
88-
writeImage( response, *result, format, renderer.imageQuality() );
88+
writeImage( response, *result, format, context.imageQuality() );
8989
if ( cacheManager )
9090
{
9191
QByteArray content = response.data();

‎src/server/services/wms/qgswmsgetmap.cpp

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,17 +52,12 @@ namespace QgsWms
5252
if ( result )
5353
{
5454
const QString format = request.parameters().value( QStringLiteral( "FORMAT" ), QStringLiteral( "PNG" ) );
55-
writeImage( response, *result, format, renderer.imageQuality() );
55+
writeImage( response, *result, format, context.imageQuality() );
5656
}
5757
else
5858
{
5959
throw QgsServiceException( QStringLiteral( "UnknownError" ),
6060
QStringLiteral( "Failed to compute GetMap image" ) );
6161
}
6262
}
63-
6463
} // namespace QgsWms
65-
66-
67-
68-

‎src/server/services/wms/qgswmsrendercontext.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,30 @@ QgsWmsParametersLayer QgsWmsRenderContext::parameters( const QgsMapLayer &layer
117117
return parameters;
118118
}
119119

120+
int QgsWmsRenderContext::imageQuality() const
121+
{
122+
int imageQuality = QgsServerProjectUtils::wmsImageQuality( *mProject );
123+
124+
if ( !mParameters.imageQuality().isEmpty() )
125+
{
126+
imageQuality = mParameters.imageQualityAsInt();
127+
}
128+
129+
return imageQuality;
130+
}
131+
132+
int QgsWmsRenderContext::precision() const
133+
{
134+
int precision = QgsServerProjectUtils::wmsFeatureInfoPrecision( *mProject );
135+
136+
if ( mParameters.wmsPrecisionAsInt() > -1 )
137+
{
138+
precision = mParameters.wmsPrecisionAsInt();
139+
}
140+
141+
return precision;
142+
}
143+
120144
QList<QgsMapLayer *> QgsWmsRenderContext::layersToRender() const
121145
{
122146
return mLayersToRender;

‎src/server/services/wms/qgswmsrendercontext.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,17 @@ namespace QgsWms
141141
*/
142142
QgsWmsParametersLayer parameters( const QgsMapLayer &layer ) const;
143143

144+
/**
145+
* Returns the image quality to use for rendering according to the
146+
* current configuration.
147+
*/
148+
int imageQuality() const;
149+
150+
/**
151+
* Returns the precision to use according to the current configuration.
152+
*/
153+
int precision() const;
154+
144155
#ifdef HAVE_SERVER_PYTHON_PLUGINS
145156

146157
/**

‎src/server/services/wms/qgswmsrenderer.cpp

Lines changed: 9 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1554,10 +1554,10 @@ namespace QgsWms
15541554
{
15551555
QDomElement bBoxElem = infoDocument.createElement( QStringLiteral( "BoundingBox" ) );
15561556
bBoxElem.setAttribute( version == QLatin1String( "1.1.1" ) ? "SRS" : "CRS", outputCrs.authid() );
1557-
bBoxElem.setAttribute( QStringLiteral( "minx" ), qgsDoubleToString( box.xMinimum(), wmsPrecision() ) );
1558-
bBoxElem.setAttribute( QStringLiteral( "maxx" ), qgsDoubleToString( box.xMaximum(), wmsPrecision() ) );
1559-
bBoxElem.setAttribute( QStringLiteral( "miny" ), qgsDoubleToString( box.yMinimum(), wmsPrecision() ) );
1560-
bBoxElem.setAttribute( QStringLiteral( "maxy" ), qgsDoubleToString( box.yMaximum(), wmsPrecision() ) );
1557+
bBoxElem.setAttribute( QStringLiteral( "minx" ), qgsDoubleToString( box.xMinimum(), mContext.precision() ) );
1558+
bBoxElem.setAttribute( QStringLiteral( "maxx" ), qgsDoubleToString( box.xMaximum(), mContext.precision() ) );
1559+
bBoxElem.setAttribute( QStringLiteral( "miny" ), qgsDoubleToString( box.yMinimum(), mContext.precision() ) );
1560+
bBoxElem.setAttribute( QStringLiteral( "maxy" ), qgsDoubleToString( box.yMaximum(), mContext.precision() ) );
15611561
featureElement.appendChild( bBoxElem );
15621562
}
15631563

@@ -1588,7 +1588,7 @@ namespace QgsWms
15881588
}
15891589
QDomElement geometryElement = infoDocument.createElement( QStringLiteral( "Attribute" ) );
15901590
geometryElement.setAttribute( QStringLiteral( "name" ), QStringLiteral( "geometry" ) );
1591-
geometryElement.setAttribute( QStringLiteral( "value" ), geom.asWkt( wmsPrecision() ) );
1591+
geometryElement.setAttribute( QStringLiteral( "value" ), geom.asWkt( mContext.precision() ) );
15921592
geometryElement.setAttribute( QStringLiteral( "type" ), QStringLiteral( "derived" ) );
15931593
featureElement.appendChild( geometryElement );
15941594
}
@@ -2260,11 +2260,11 @@ namespace QgsWms
22602260
QDomElement boxElem;
22612261
if ( version < 3 )
22622262
{
2263-
boxElem = QgsOgcUtils::rectangleToGMLBox( &box, doc, wmsPrecision() );
2263+
boxElem = QgsOgcUtils::rectangleToGMLBox( &box, doc, mContext.precision() );
22642264
}
22652265
else
22662266
{
2267-
boxElem = QgsOgcUtils::rectangleToGMLEnvelope( &box, doc, wmsPrecision() );
2267+
boxElem = QgsOgcUtils::rectangleToGMLEnvelope( &box, doc, mContext.precision() );
22682268
}
22692269

22702270
if ( crs.isValid() )
@@ -2288,11 +2288,11 @@ namespace QgsWms
22882288
QDomElement gmlElem;
22892289
if ( version < 3 )
22902290
{
2291-
gmlElem = QgsOgcUtils::geometryToGML( geom, doc, wmsPrecision() );
2291+
gmlElem = QgsOgcUtils::geometryToGML( geom, doc, mContext.precision() );
22922292
}
22932293
else
22942294
{
2295-
gmlElem = QgsOgcUtils::geometryToGML( geom, doc, QStringLiteral( "GML3" ), wmsPrecision() );
2295+
gmlElem = QgsOgcUtils::geometryToGML( geom, doc, QStringLiteral( "GML3" ), mContext.precision() );
22962296
}
22972297

22982298
if ( !gmlElem.isNull() )
@@ -2365,34 +2365,6 @@ namespace QgsWms
23652365
return value;
23662366
}
23672367

2368-
int QgsRenderer::imageQuality() const
2369-
{
2370-
// First taken from QGIS project
2371-
int imageQuality = QgsServerProjectUtils::wmsImageQuality( *mProject );
2372-
2373-
// Then checks if a parameter is given, if so use it instead
2374-
if ( !mWmsParameters.imageQuality().isEmpty() )
2375-
{
2376-
imageQuality = mWmsParameters.imageQualityAsInt();
2377-
}
2378-
2379-
return imageQuality;
2380-
}
2381-
2382-
int QgsRenderer::wmsPrecision() const
2383-
{
2384-
// First taken from QGIS project and the default value is 6
2385-
int WMSPrecision = QgsServerProjectUtils::wmsFeatureInfoPrecision( *mProject );
2386-
2387-
// Then checks if a parameter is given, if so use it instead
2388-
int WMSPrecisionParameter = mWmsParameters.wmsPrecisionAsInt();
2389-
2390-
if ( WMSPrecisionParameter > -1 )
2391-
return WMSPrecisionParameter;
2392-
else
2393-
return WMSPrecision;
2394-
}
2395-
23962368
QgsRectangle QgsRenderer::featureInfoSearchRect( QgsVectorLayer *ml, const QgsMapSettings &mapSettings, const QgsRenderContext &rct, const QgsPointXY &infoPoint ) const
23972369
{
23982370
if ( !ml )

‎src/server/services/wms/qgswmsrenderer.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -112,12 +112,6 @@ namespace QgsWms
112112
*/
113113
QByteArray getFeatureInfo( const QString &version = "1.3.0" );
114114

115-
//! Returns the image quality to use for getMap request
116-
int imageQuality() const;
117-
118-
//! Returns the precision to use for GetFeatureInfo request
119-
int wmsPrecision() const;
120-
121115
private:
122116

123117
// Init the restricted layers with nicknames

0 commit comments

Comments
 (0)
Please sign in to comment.