Skip to content

Commit 80d796a

Browse files
committed
Remove unused methods/functions
1 parent 4d4d229 commit 80d796a

File tree

2 files changed

+4
-231
lines changed

2 files changed

+4
-231
lines changed

src/server/services/wms/qgswmsrenderer.cpp

+3-225
Original file line numberDiff line numberDiff line change
@@ -93,25 +93,6 @@
9393

9494
namespace QgsWms
9595
{
96-
97-
namespace
98-
{
99-
100-
QgsLayerTreeModelLegendNode *_findLegendNodeForRule( QgsLayerTreeModel *legendModel, const QString &rule )
101-
{
102-
for ( QgsLayerTreeLayer *nodeLayer : legendModel->rootGroup()->findLayers() )
103-
{
104-
for ( QgsLayerTreeModelLegendNode *legendNode : legendModel->layerLegendNodes( nodeLayer ) )
105-
{
106-
if ( legendNode->data( Qt::DisplayRole ).toString() == rule )
107-
return legendNode;
108-
}
109-
}
110-
return nullptr;
111-
}
112-
113-
} // namespace
114-
11596
QgsRenderer::QgsRenderer( const QgsWmsRenderContext &context )
11697
: mContext( context )
11798
{
@@ -126,80 +107,6 @@ namespace QgsWms
126107
removeTemporaryLayers();
127108
}
128109

129-
QImage *QgsRenderer::getLegendGraphics()
130-
{
131-
// get layers
132-
std::unique_ptr<QgsLayerRestorer> restorer;
133-
restorer.reset( new QgsLayerRestorer( mContext.layers() ) );
134-
135-
// configure layers
136-
QList<QgsMapLayer *> layers = mContext.layersToRender();
137-
configureLayers( layers );
138-
139-
// build layer tree model for legend
140-
QgsLayerTree rootGroup;
141-
QgsLegendSettings legendSettings = mContext.parameters().legendSettings();
142-
std::unique_ptr<QgsLayerTreeModel> legendModel;
143-
legendModel.reset( buildLegendTreeModel( layers, mContext.scaleDenominator(), rootGroup ) );
144-
145-
// rendering step
146-
const qreal dpmm = mContext.dotsPerMm();
147-
std::unique_ptr<QImage> image;
148-
std::unique_ptr<QPainter> painter;
149-
150-
// getting scale from bbox
151-
if ( !mWmsParameters.bbox().isEmpty() )
152-
{
153-
QgsMapSettings mapSettings;
154-
image.reset( createImage( width(), height(), false ) );
155-
configureMapSettings( image.get(), mapSettings );
156-
legendSettings.setMapScale( mapSettings.scale() );
157-
legendSettings.setMapUnitsPerPixel( mapSettings.mapUnitsPerPixel() );
158-
}
159-
160-
if ( !mWmsParameters.rule().isEmpty() )
161-
{
162-
QString rule = mWmsParameters.rule();
163-
int width = mWmsParameters.widthAsInt();
164-
int height = mWmsParameters.heightAsInt();
165-
166-
image.reset( createImage( width, height, false ) );
167-
painter.reset( new QPainter( image.get() ) );
168-
painter->setRenderHint( QPainter::Antialiasing, true );
169-
painter->scale( dpmm, dpmm );
170-
171-
QgsLayerTreeModelLegendNode *legendNode = _findLegendNodeForRule( legendModel.get(), rule );
172-
if ( legendNode )
173-
{
174-
QgsLayerTreeModelLegendNode::ItemContext ctx;
175-
ctx.painter = painter.get();
176-
ctx.labelXOffset = 0;
177-
ctx.point = QPointF();
178-
double itemHeight = height / dpmm;
179-
legendNode->drawSymbol( legendSettings, &ctx, itemHeight );
180-
painter->end();
181-
}
182-
}
183-
else
184-
{
185-
QgsLegendRenderer legendRendererNew( legendModel.get(), legendSettings );
186-
187-
QSizeF minSize = legendRendererNew.minimumSize();
188-
QSize s( minSize.width() * dpmm, minSize.height() * dpmm );
189-
190-
image.reset( createImage( s.width(), s.height(), false ) );
191-
painter.reset( new QPainter( image.get() ) );
192-
painter->setRenderHint( QPainter::Antialiasing, true );
193-
painter->scale( dpmm, dpmm );
194-
195-
legendRendererNew.drawLegend( painter.get() );
196-
painter->end();
197-
}
198-
199-
rootGroup.clear();
200-
return image.release();
201-
}
202-
203110
QImage *QgsRenderer::getLegendGraphics( QgsLayerTreeModel &model )
204111
{
205112
// get layers
@@ -244,7 +151,7 @@ namespace QgsWms
244151
return image.release();
245152
}
246153

247-
QImage *QgsRenderer::getLegendGraphics( QgsLayerTreeModelLegendNode &node )
154+
QImage *QgsRenderer::getLegendGraphics( QgsLayerTreeModelLegendNode &nodeModel )
248155
{
249156
// get layers
250157
std::unique_ptr<QgsLayerRestorer> restorer;
@@ -282,11 +189,12 @@ namespace QgsWms
282189
ctx.painter = painter.get();
283190
ctx.labelXOffset = 0;
284191
ctx.point = QPointF();
285-
node.drawSymbol( settings, &ctx, height / dpmm );
192+
nodeModel.drawSymbol( settings, &ctx, height / dpmm );
286193
painter->end();
287194

288195
return image.release();
289196
}
197+
290198
void QgsRenderer::runHitTest( const QgsMapSettings &mapSettings, HitTest &hitTest ) const
291199
{
292200
QgsRenderContext context = QgsRenderContext::fromMapSettings( mapSettings );
@@ -2988,136 +2896,6 @@ namespace QgsWms
29882896
return scaledImage;
29892897
}
29902898

2991-
QgsLayerTreeModel *QgsRenderer::buildLegendTreeModel( const QList<QgsMapLayer *> &layers, double scaleDenominator, QgsLayerTree &rootGroup )
2992-
{
2993-
// get params
2994-
bool showFeatureCount = mWmsParameters.showFeatureCountAsBool();
2995-
bool drawLegendLayerLabel = mWmsParameters.layerTitleAsBool();
2996-
bool drawLegendItemLabel = mWmsParameters.ruleLabelAsBool();
2997-
2998-
bool ruleDefined = false;
2999-
if ( !mWmsParameters.rule().isEmpty() )
3000-
ruleDefined = true;
3001-
3002-
bool contentBasedLegend = false;
3003-
QgsRectangle contentBasedLegendExtent;
3004-
if ( ! mWmsParameters.bbox().isEmpty() )
3005-
{
3006-
contentBasedLegend = true;
3007-
contentBasedLegendExtent = mWmsParameters.bboxAsRectangle();
3008-
if ( contentBasedLegendExtent.isEmpty() )
3009-
throw QgsBadRequestException( QgsServiceException::QGIS_INVALID_PARAMETER_VALUE,
3010-
mWmsParameters[QgsWmsParameter::BBOX] );
3011-
3012-
if ( !mWmsParameters.rule().isEmpty() )
3013-
throw QgsBadRequestException( QgsServiceException::QGIS_INVALID_PARAMETER_VALUE,
3014-
QStringLiteral( "BBOX parameter cannot be combined with RULE." ) );
3015-
}
3016-
3017-
// build layer tree
3018-
rootGroup.clear();
3019-
QList<QgsVectorLayerFeatureCounter *> counters;
3020-
for ( QgsMapLayer *ml : layers )
3021-
{
3022-
QgsLayerTreeLayer *lt = rootGroup.addLayer( ml );
3023-
lt->setCustomProperty( QStringLiteral( "showFeatureCount" ), showFeatureCount );
3024-
3025-
if ( !ml->title().isEmpty() )
3026-
lt->setName( ml->title() );
3027-
3028-
if ( ml->type() != QgsMapLayerType::VectorLayer || !showFeatureCount )
3029-
continue;
3030-
3031-
QgsVectorLayer *vl = qobject_cast<QgsVectorLayer *>( ml );
3032-
QgsVectorLayerFeatureCounter *counter = vl->countSymbolFeatures();
3033-
if ( !counter )
3034-
continue;
3035-
counters.append( counter );
3036-
}
3037-
3038-
// build legend model
3039-
QgsLayerTreeModel *legendModel = new QgsLayerTreeModel( &rootGroup );
3040-
if ( scaleDenominator > 0 )
3041-
legendModel->setLegendFilterByScale( scaleDenominator );
3042-
3043-
QgsMapSettings contentBasedMapSettings;
3044-
if ( contentBasedLegend )
3045-
{
3046-
HitTest hitTest;
3047-
getMap( contentBasedMapSettings, &hitTest );
3048-
3049-
for ( QgsLayerTreeNode *node : rootGroup.children() )
3050-
{
3051-
Q_ASSERT( QgsLayerTree::isLayer( node ) );
3052-
QgsLayerTreeLayer *nodeLayer = QgsLayerTree::toLayer( node );
3053-
3054-
QgsVectorLayer *vl = qobject_cast<QgsVectorLayer *>( nodeLayer->layer() );
3055-
if ( !vl || !vl->renderer() )
3056-
continue;
3057-
3058-
const SymbolSet &usedSymbols = hitTest[vl];
3059-
QList<int> order;
3060-
int i = 0;
3061-
for ( const QgsLegendSymbolItem &legendItem : vl->renderer()->legendSymbolItems() )
3062-
{
3063-
QString sProp = QgsSymbolLayerUtils::symbolProperties( legendItem.legacyRuleKey() );
3064-
if ( usedSymbols.contains( sProp ) )
3065-
order.append( i );
3066-
++i;
3067-
}
3068-
3069-
// either remove the whole layer or just filter out some items
3070-
if ( order.isEmpty() )
3071-
rootGroup.removeChildNode( nodeLayer );
3072-
else
3073-
{
3074-
QgsMapLayerLegendUtils::setLegendNodeOrder( nodeLayer, order );
3075-
legendModel->refreshLayerLegend( nodeLayer );
3076-
}
3077-
}
3078-
}
3079-
3080-
// if legend is not based on rendering rules
3081-
if ( ! ruleDefined )
3082-
{
3083-
QList<QgsLayerTreeNode *> rootChildren = rootGroup.children();
3084-
for ( QgsLayerTreeNode *node : rootChildren )
3085-
{
3086-
if ( QgsLayerTree::isLayer( node ) )
3087-
{
3088-
QgsLayerTreeLayer *nodeLayer = QgsLayerTree::toLayer( node );
3089-
3090-
// layer titles - hidden or not
3091-
QgsLegendRenderer::setNodeLegendStyle( nodeLayer, drawLegendLayerLabel ? QgsLegendStyle::Subgroup : QgsLegendStyle::Hidden );
3092-
3093-
// rule item titles
3094-
if ( !drawLegendItemLabel )
3095-
{
3096-
for ( QgsLayerTreeModelLegendNode *legendNode : legendModel->layerLegendNodes( nodeLayer ) )
3097-
{
3098-
legendNode->setUserLabel( QStringLiteral( " " ) ); // empty string = no override, so let's use one space
3099-
}
3100-
}
3101-
else if ( !drawLegendLayerLabel )
3102-
{
3103-
for ( QgsLayerTreeModelLegendNode *legendNode : legendModel->layerLegendNodes( nodeLayer ) )
3104-
{
3105-
if ( legendNode->isEmbeddedInParent() )
3106-
legendNode->setEmbeddedInParent( false );
3107-
}
3108-
}
3109-
}
3110-
}
3111-
}
3112-
3113-
for ( QgsVectorLayerFeatureCounter *c : counters )
3114-
{
3115-
c->waitForFinished();
3116-
}
3117-
3118-
return legendModel;
3119-
}
3120-
31212899
void QgsRenderer::handlePrintErrors( const QgsLayout *layout ) const
31222900
{
31232901
if ( !layout )

src/server/services/wms/qgswmsrenderer.h

+1-6
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,9 @@ namespace QgsWms
7979
/**
8080
* Returns the map legend as an image (or NULLPTR in case of error). The caller takes ownership
8181
of the image object*/
82-
QImage *getLegendGraphics();
83-
8482
QImage *getLegendGraphics( QgsLayerTreeModel &model );
8583

86-
QImage *getLegendGraphics( QgsLayerTreeModelLegendNode &node );
84+
QImage *getLegendGraphics( QgsLayerTreeModelLegendNode &nodeModel );
8785

8886
typedef QSet<QString> SymbolSet;
8987
typedef QHash<QgsVectorLayer *, SymbolSet> HitTest;
@@ -151,9 +149,6 @@ namespace QgsWms
151149
// Scale image with WIDTH/HEIGHT if necessary
152150
QImage *scaleImage( const QImage *image ) const;
153151

154-
// Build a layer tree model for legend
155-
QgsLayerTreeModel *buildLegendTreeModel( const QList<QgsMapLayer *> &layers, double scaleDenominator, QgsLayerTree &rootGroup );
156-
157152
/**
158153
* Creates a QImage from the HEIGHT and WIDTH parameters
159154
* \param width image width (or -1 if width should be taken from WIDTH wms parameter)

0 commit comments

Comments
 (0)