Skip to content

Commit

Permalink
Remove some unnecessary methods from renderer
Browse files Browse the repository at this point in the history
  • Loading branch information
pblottiere committed Mar 27, 2019
1 parent 59eadbb commit 5c874ca
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 71 deletions.
8 changes: 6 additions & 2 deletions src/server/services/wms/qgswmsrendercontext.h
Expand Up @@ -152,6 +152,12 @@ namespace QgsWms
*/ */
int precision() const; int precision() const;


/**
* Returns the nickname (short name, id or name) of the layer according
* to the current configuration.
*/
QString layerNickname( const QgsMapLayer &layer ) const;

#ifdef HAVE_SERVER_PYTHON_PLUGINS #ifdef HAVE_SERVER_PYTHON_PLUGINS


/** /**
Expand All @@ -161,8 +167,6 @@ namespace QgsWms
#endif #endif


private: private:
QString layerNickname( const QgsMapLayer &layer ) const;

void initNicknameLayers(); void initNicknameLayers();
void initRestrictedLayers(); void initRestrictedLayers();
void initLayerGroupsRecursive( const QgsLayerTreeGroup *group, const QString &groupName ); void initLayerGroupsRecursive( const QgsLayerTreeGroup *group, const QString &groupName );
Expand Down
84 changes: 22 additions & 62 deletions src/server/services/wms/qgswmsrenderer.cpp
Expand Up @@ -596,7 +596,19 @@ namespace QgsWms
} }
else else
{ {
QList<QgsMapLayer *> layerSet = stylizedLayers( cMapParams.mLayers ); QList<QgsMapLayer *> layerSet;
for ( auto layer : cMapParams.mLayers )
{
if ( ! mNicknameLayers.contains( layer.mNickname ) )
{
continue;
}

QgsMapLayer *mlayer = mNicknameLayers[ layer.mNickname ];
setLayerStyle( mlayer, layer.mStyle );
layerSet << mlayer;
}

layerSet << externalLayers( cMapParams.mExternalLayers ); layerSet << externalLayers( cMapParams.mExternalLayers );
layerSet << highlightLayers( cMapParams.mHighlightLayers ); layerSet << highlightLayers( cMapParams.mHighlightLayers );
std::reverse( layerSet.begin(), layerSet.end() ); std::reverse( layerSet.begin(), layerSet.end() );
Expand Down Expand Up @@ -1208,7 +1220,7 @@ namespace QgsWms
bool queryableLayer = true; bool queryableLayer = true;
for ( QgsMapLayer *layer : layers ) for ( QgsMapLayer *layer : layers )
{ {
if ( queryLayer == layerNickname( *layer ) ) if ( queryLayer == mContext.layerNickname( *layer ) )
{ {
validLayer = true; validLayer = true;
queryableLayer = layer->flags().testFlag( QgsMapLayer::Identifiable ); queryableLayer = layer->flags().testFlag( QgsMapLayer::Identifiable );
Expand Down Expand Up @@ -1488,7 +1500,7 @@ namespace QgsWms
{ {
bool withGeom = layer->wkbType() != QgsWkbTypes::NoGeometry && addWktGeometry; bool withGeom = layer->wkbType() != QgsWkbTypes::NoGeometry && addWktGeometry;
int gmlVersion = mWmsParameters.infoFormatVersion(); int gmlVersion = mWmsParameters.infoFormatVersion();
QString typeName = layerNickname( *layer ); QString typeName = mContext.layerNickname( *layer );
QDomElement elem = createFeatureGML( QDomElement elem = createFeatureGML(
&feature, layer, infoDocument, outputCrs, mapSettings, typeName, withGeom, gmlVersion &feature, layer, infoDocument, outputCrs, mapSettings, typeName, withGeom, gmlVersion
#ifdef HAVE_SERVER_PYTHON_PLUGINS #ifdef HAVE_SERVER_PYTHON_PLUGINS
Expand Down Expand Up @@ -1657,7 +1669,7 @@ namespace QgsWms


QgsCoordinateReferenceSystem layerCrs = layer->crs(); QgsCoordinateReferenceSystem layerCrs = layer->crs();
int gmlVersion = mWmsParameters.infoFormatVersion(); int gmlVersion = mWmsParameters.infoFormatVersion();
QString typeName = layerNickname( *layer ); QString typeName = mContext.layerNickname( *layer );
QDomElement elem = createFeatureGML( QDomElement elem = createFeatureGML(
&feature, nullptr, infoDocument, layerCrs, mapSettings, typeName, false, gmlVersion, nullptr ); &feature, nullptr, infoDocument, layerCrs, mapSettings, typeName, false, gmlVersion, nullptr );
layerElement.appendChild( elem ); layerElement.appendChild( elem );
Expand Down Expand Up @@ -2101,7 +2113,7 @@ namespace QgsWms
QgsMapLayer *layer = nullptr; QgsMapLayer *layer = nullptr;
for ( QgsMapLayer *l : layers ) for ( QgsMapLayer *l : layers )
{ {
if ( layerNickname( *l ).compare( layerName ) == 0 ) if ( mContext.layerNickname( *l ).compare( layerName ) == 0 )
{ {
layer = l; layer = l;
} }
Expand Down Expand Up @@ -2450,7 +2462,7 @@ namespace QgsWms
{ {
if ( restrictedLayersNames.contains( layer->name() ) ) if ( restrictedLayersNames.contains( layer->name() ) )
{ {
mRestrictedLayers.append( layerNickname( *layer->layer() ) ); mRestrictedLayers.append( mContext.layerNickname( *layer->layer() ) );
} }
} }
} }
Expand All @@ -2459,7 +2471,7 @@ namespace QgsWms
{ {
for ( QgsMapLayer *ml : mProject->mapLayers() ) for ( QgsMapLayer *ml : mProject->mapLayers() )
{ {
mNicknameLayers[ layerNickname( *ml ) ] = ml; mNicknameLayers[ mContext.layerNickname( *ml ) ] = ml;
} }


// init groups // init groups
Expand Down Expand Up @@ -2494,7 +2506,7 @@ namespace QgsWms
} }
} }


QString QgsRenderer::layerNickname( const QgsMapLayer &layer ) const /*QString QgsRenderer::layerNickname( const QgsMapLayer &layer ) const
{ {
QString name = layer.shortName(); QString name = layer.shortName();
if ( QgsServerProjectUtils::wmsUseLayerIds( *mProject ) ) if ( QgsServerProjectUtils::wmsUseLayerIds( *mProject ) )
Expand All @@ -2507,7 +2519,7 @@ namespace QgsWms
} }
return name; return name;
} }*/


QList<QgsMapLayer *> QgsRenderer::highlightLayers( QList<QgsWmsParametersHighlightLayer> params ) QList<QgsMapLayer *> QgsRenderer::highlightLayers( QList<QgsWmsParametersHighlightLayer> params )
{ {
Expand Down Expand Up @@ -2682,58 +2694,6 @@ namespace QgsWms
return layers; return layers;
} }


QList<QgsMapLayer *> QgsRenderer::stylizedLayers( const QList<QgsWmsParametersLayer> &params )
{
QList<QgsMapLayer *> layers;

for ( const QgsWmsParametersLayer &param : params )
{
QString nickname = param.mNickname;
QString style = param.mStyle;
if ( mNicknameLayers.contains( nickname ) && !mRestrictedLayers.contains( nickname ) )
{
if ( !style.isEmpty() )
{
bool rc = mNicknameLayers[nickname]->styleManager()->setCurrentStyle( style );
if ( ! rc )
{
throw QgsMapServiceException( QStringLiteral( "StyleNotDefined" ), QStringLiteral( "Style \"%1\" does not exist for layer \"%2\"" ).arg( style, nickname ) );
}
}

layers.append( mNicknameLayers[nickname] );
}
else if ( mLayerGroups.contains( nickname ) )
{
// Reverse order of layers from a group
QList<QgsMapLayer *> layersFromGroup;
for ( QgsMapLayer *layer : mLayerGroups[nickname] )
{
if ( !mRestrictedLayers.contains( layerNickname( *layer ) ) )
{
if ( !style.isEmpty() )
{
bool rc = layer->styleManager()->setCurrentStyle( style );
if ( ! rc )
{
throw QgsMapServiceException( QStringLiteral( "StyleNotDefined" ), QStringLiteral( "Style \"%1\" does not exist for layer \"%2\"" ).arg( style, layerNickname( *layer ) ) );
}
}
layersFromGroup.push_front( layer );
}
}
layers.append( layersFromGroup );
}
else
{
throw QgsBadRequestException( QStringLiteral( "LayerNotDefined" ),
QStringLiteral( "Layer \"%1\" does not exist" ).arg( nickname ) );
}
}

return layers;
}

void QgsRenderer::removeTemporaryLayers() void QgsRenderer::removeTemporaryLayers()
{ {
qDeleteAll( mTemporaryLayers ); qDeleteAll( mTemporaryLayers );
Expand Down Expand Up @@ -2767,7 +2727,7 @@ namespace QgsWms
QgsMapLayer *errorLayer = mProject->mapLayer( firstErrorLayerId ); QgsMapLayer *errorLayer = mProject->mapLayer( firstErrorLayerId );
if ( errorLayer ) if ( errorLayer )
{ {
layerWMSName = layerNickname( *errorLayer ); layerWMSName = mContext.layerNickname( *errorLayer );
} }


//Log first error //Log first error
Expand Down
7 changes: 0 additions & 7 deletions src/server/services/wms/qgswmsrenderer.h
Expand Up @@ -128,19 +128,12 @@ namespace QgsWms


void initLayerGroupsRecursive( const QgsLayerTreeGroup *group, const QString &groupName ); void initLayerGroupsRecursive( const QgsLayerTreeGroup *group, const QString &groupName );


// Return the nickname of the layer (short name, id or name according to
// the project configuration)
QString layerNickname( const QgsMapLayer &layer ) const;

// Rendering step for layers // Rendering step for layers
QPainter *layersRendering( const QgsMapSettings &mapSettings, QImage &image, HitTest *hitTest = nullptr ) const; QPainter *layersRendering( const QgsMapSettings &mapSettings, QImage &image, HitTest *hitTest = nullptr ) const;


// Rendering step for annotations // Rendering step for annotations
void annotationsRendering( QPainter *painter ) const; void annotationsRendering( QPainter *painter ) const;


// Return a list of layers stylized with LAYERS/STYLES parameters
QList<QgsMapLayer *> stylizedLayers( const QList<QgsWmsParametersLayer> &params );

// Set layer opacity // Set layer opacity
void setLayerOpacity( QgsMapLayer *layer, int opacity ) const; void setLayerOpacity( QgsMapLayer *layer, int opacity ) const;


Expand Down

0 comments on commit 5c874ca

Please sign in to comment.