Skip to content

Commit c7f7353

Browse files
committedNov 23, 2012
Use lists for opacity params inside wms server
1 parent b27efe9 commit c7f7353

File tree

2 files changed

+26
-27
lines changed

2 files changed

+26
-27
lines changed
 

‎src/mapserver/qgswmsserver.cpp

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -614,9 +614,9 @@ QImage* QgsWMSServer::getMap()
614614
QMap<QString, QString> originalLayerFilters = applyRequestedLayerFilters( layersList );
615615
QStringList selectedLayerIdList = applyFeatureSelections( layersList );
616616

617-
QHash<QgsVectorLayer*, QgsFeatureRendererV2*> bkVectorRenderers;
618-
QHash< QgsRasterLayer*, QgsRasterRenderer* > bkRasterRenderers;
619-
QHash<QgsVectorLayer*, int> bkVectorOld;
617+
QList< QPair< QgsVectorLayer*, QgsFeatureRendererV2*> > bkVectorRenderers;
618+
QList< QPair< QgsRasterLayer*, QgsRasterRenderer* > > bkRasterRenderers;
619+
QList< QPair< QgsVectorLayer*, unsigned int> > bkVectorOld;
620620

621621
applyOpacities( layersList, bkVectorRenderers, bkVectorOld, bkRasterRenderers );
622622

@@ -1986,8 +1986,9 @@ void QgsWMSServer::clearFeatureSelections( const QStringList& layerIds ) const
19861986
return;
19871987
}
19881988

1989-
void QgsWMSServer::applyOpacities( const QStringList& layerList, QHash<QgsVectorLayer*, QgsFeatureRendererV2*>& vectorRenderers, QHash<QgsVectorLayer*, int> vectorOld,
1990-
QHash< QgsRasterLayer*, QgsRasterRenderer* >& rasterRenderers )
1989+
void QgsWMSServer::applyOpacities( const QStringList& layerList, QList< QPair< QgsVectorLayer*, QgsFeatureRendererV2*> >& vectorRenderers,
1990+
QList< QPair< QgsVectorLayer*, unsigned int> >& vectorOld,
1991+
QList< QPair< QgsRasterLayer*, QgsRasterRenderer* > >& rasterRenderers )
19911992
{
19921993
//get opacity list
19931994
QMap<QString, QString>::const_iterator opIt = mParameterMap.find( "OPACITIES" );
@@ -2035,7 +2036,7 @@ void QgsWMSServer::applyOpacities( const QStringList& layerList, QHash<QgsVector
20352036
{
20362037
QgsFeatureRendererV2* rendererV2 = vl->rendererV2();
20372038
//backup old renderer
2038-
vectorRenderers.insert( vl, rendererV2->clone() );
2039+
vectorRenderers.push_back( qMakePair( vl, rendererV2->clone() ) );
20392040
//modify symbols of current renderer
20402041
QgsSymbolV2List symbolList = rendererV2->symbols();
20412042
QgsSymbolV2List::iterator symbolIt = symbolList.begin();
@@ -2046,7 +2047,7 @@ void QgsWMSServer::applyOpacities( const QStringList& layerList, QHash<QgsVector
20462047
}
20472048
else //old symbology
20482049
{
2049-
vectorOld.insert( vl, vl->getTransparency() );
2050+
vectorOld.push_back( qMakePair( vl, vl->getTransparency() ) );
20502051
vl->setTransparency( opacity );
20512052
}
20522053

@@ -2059,39 +2060,34 @@ void QgsWMSServer::applyOpacities( const QStringList& layerList, QHash<QgsVector
20592060
QgsRasterRenderer* rasterRenderer = rl->renderer();
20602061
if ( rasterRenderer )
20612062
{
2062-
rasterRenderers.insert( rl, dynamic_cast<QgsRasterRenderer*>( rasterRenderer->clone() ) );
2063+
rasterRenderers.push_back( qMakePair( rl, dynamic_cast<QgsRasterRenderer*>( rasterRenderer->clone() ) ) );
20632064
rasterRenderer->setOpacity( opacity / 255.0 );
20642065
}
20652066
}
20662067
}
20672068
}
20682069
}
20692070

2070-
void QgsWMSServer::restoreOpacities( QHash<QgsVectorLayer*, QgsFeatureRendererV2*>& vectorRenderers, QHash<QgsVectorLayer*, int> vectorOld,
2071-
QHash < QgsRasterLayer*, QgsRasterRenderer* > & rasterRenderers )
2071+
void QgsWMSServer::restoreOpacities( QList< QPair< QgsVectorLayer*, QgsFeatureRendererV2*> >& vectorRenderers,
2072+
QList< QPair< QgsVectorLayer*, unsigned int> >& vectorOld,
2073+
QList < QPair< QgsRasterLayer*, QgsRasterRenderer* > >& rasterRenderers )
20722074
{
2073-
QHash<QgsVectorLayer*, QgsFeatureRendererV2*>::iterator vIt = vectorRenderers.begin();
2075+
QList< QPair< QgsVectorLayer*, QgsFeatureRendererV2*> >::iterator vIt = vectorRenderers.begin();
20742076
for ( ; vIt != vectorRenderers.end(); ++vIt )
20752077
{
2076-
vIt.key()->setRendererV2( vIt.value() );
2078+
( *vIt ).first->setRendererV2(( *vIt ).second );
20772079
}
20782080

2079-
QHash< QgsRasterLayer*, QgsRasterRenderer* >::iterator rIt = rasterRenderers.begin();
2081+
QList< QPair< QgsRasterLayer*, QgsRasterRenderer* > >::iterator rIt = rasterRenderers.begin();
20802082
for ( ; rIt != rasterRenderers.end(); ++rIt )
20812083
{
2082-
if ( rIt.key() )
2083-
{
2084-
rIt.key()->setRenderer( rIt.value() );
2085-
}
2084+
( *rIt ).first->setRenderer(( *rIt ).second );
20862085
}
20872086

2088-
QHash<QgsVectorLayer*, int>::iterator oIt = vectorOld.begin();
2087+
QList< QPair< QgsVectorLayer*, unsigned int> >::iterator oIt = vectorOld.begin();
20892088
for ( ; oIt != vectorOld.end(); ++oIt )
20902089
{
2091-
if ( oIt.key() )
2092-
{
2093-
oIt.key()->setTransparency( oIt.value() );
2094-
}
2090+
( *oIt ).first->setTransparency(( *oIt ).second );
20952091
}
20962092
}
20972093

‎src/mapserver/qgswmsserver.h

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
#define QGSWMSSERVER_H
2020

2121
#include <QDomDocument>
22-
#include <QHash>
2322
#include <QMap>
23+
#include <QPair>
2424
#include <QString>
2525
#include <map>
2626

@@ -167,11 +167,14 @@ class QgsWMSServer
167167
/**Clear all feature selections in the given layers*/
168168
void clearFeatureSelections( const QStringList& layerIds ) const;
169169

170-
void applyOpacities( const QStringList& layerList, QHash<QgsVectorLayer*, QgsFeatureRendererV2*>& vectorRenderers, QHash<QgsVectorLayer*, int> vectorOld,
171-
QHash< QgsRasterLayer*, QgsRasterRenderer* >& rasterRenderers );
170+
/**Applies opacity on layer/group level*/
171+
void applyOpacities( const QStringList& layerList, QList< QPair< QgsVectorLayer*, QgsFeatureRendererV2*> >& vectorRenderers,
172+
QList< QPair< QgsVectorLayer*, unsigned int> >& vectorOld,
173+
QList< QPair< QgsRasterLayer*, QgsRasterRenderer* > >& rasterRenderers );
172174

173-
void restoreOpacities( QHash<QgsVectorLayer*, QgsFeatureRendererV2*>& vectorRenderers, QHash<QgsVectorLayer*, int> vectorOld,
174-
QHash< QgsRasterLayer*, QgsRasterRenderer* >& rasterRenderers );
175+
/**Restore original opacities*/
176+
void restoreOpacities( QList< QPair <QgsVectorLayer*, QgsFeatureRendererV2*> >& vectorRenderers, QList< QPair <QgsVectorLayer*, unsigned int> >& vectorOld,
177+
QList< QPair < QgsRasterLayer*, QgsRasterRenderer* > >& rasterRenderers );
175178

176179
void appendFormats( QDomDocument &doc, QDomElement &elem, const QStringList &formats );
177180

0 commit comments

Comments
 (0)