Skip to content

Commit d50214b

Browse files
committed
Merge pull request #604 from matthias-kuhn/wmsfix
Fix bad WMS server performance
2 parents ac9736b + 700d12f commit d50214b

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

src/core/qgsmaplayerregistry.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,12 +130,16 @@ void QgsMapLayerRegistry::removeMapLayers( QStringList theLayerIds )
130130
}
131131
}
132132

133+
void QgsMapLayerRegistry::clearMapLayers()
134+
{
135+
mMapLayers.clear();
136+
} // QgsMapLayerRegistry::clearMapLayers()
137+
133138
void QgsMapLayerRegistry::removeMapLayer( const QString& theLayerId )
134139
{
135140
removeMapLayers( QStringList( theLayerId ) );
136141
}
137142

138-
139143
void QgsMapLayerRegistry::removeAllMapLayers()
140144
{
141145
emit removeAll();

src/core/qgsmaplayerregistry.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,16 @@ class CORE_EXPORT QgsMapLayerRegistry : public QObject
9696
*/
9797
QgsMapLayer* addMapLayer( QgsMapLayer * theMapLayer, bool addToLegend = true );
9898

99+
/**
100+
* @brief
101+
* Clears the map layer registry silently. No signals are emitted,
102+
* no layer is deleted. Whatever this is suitable for... The WMS
103+
* server makes use of this.
104+
*
105+
* Not available in python
106+
*/
107+
void clearMapLayers();
108+
99109
/**
100110
* @brief
101111
* Remove a set of layers from the registry

src/mapserver/qgswmsserver.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ QImage* QgsWMSServer::getLegendGraphics()
373373
currentY += layerSpace;
374374
}
375375

376-
QgsMapLayerRegistry::instance()->removeAllMapLayers();
376+
QgsMapLayerRegistry::instance()->clearMapLayers();
377377
delete theImage;
378378
return paintImage;
379379
}
@@ -649,7 +649,7 @@ QImage* QgsWMSServer::getMap()
649649
clearFeatureSelections( selectedLayerIdList );
650650

651651
QgsDebugMsg( "clearing filters" );
652-
QgsMapLayerRegistry::instance()->removeAllMapLayers();
652+
QgsMapLayerRegistry::instance()->clearMapLayers();
653653

654654
#ifdef QGISDEBUG
655655
theImage->save( QDir::tempPath() + QDir::separator() + "lastrender.png" );

0 commit comments

Comments
 (0)