@@ -616,7 +616,9 @@ QImage* QgsWMSServer::getMap()
616
616
617
617
QHash<QgsVectorLayer*, QgsFeatureRendererV2*> bkVectorRenderers;
618
618
QHash< QgsRasterLayer*, QgsRasterRenderer* > bkRasterRenderers;
619
- applyOpacities ( layersList, bkVectorRenderers, bkRasterRenderers );
619
+ QHash<QgsVectorLayer*, int > bkVectorOld;
620
+
621
+ applyOpacities ( layersList, bkVectorRenderers, bkVectorOld, bkRasterRenderers );
620
622
621
623
mMapRenderer ->render ( &thePainter );
622
624
if ( mConfigParser )
@@ -625,7 +627,7 @@ QImage* QgsWMSServer::getMap()
625
627
mConfigParser ->drawOverlays ( &thePainter, theImage->dotsPerMeterX () / 1000.0 * 25.4 , theImage->width (), theImage->height () );
626
628
}
627
629
628
- restoreOpacities ( bkVectorRenderers, bkRasterRenderers );
630
+ restoreOpacities ( bkVectorRenderers, bkVectorOld, bkRasterRenderers );
629
631
restoreLayerFilters ( originalLayerFilters );
630
632
clearFeatureSelections ( selectedLayerIdList );
631
633
@@ -1984,7 +1986,7 @@ void QgsWMSServer::clearFeatureSelections( const QStringList& layerIds ) const
1984
1986
return ;
1985
1987
}
1986
1988
1987
- void QgsWMSServer::applyOpacities ( const QStringList& layerList, QHash<QgsVectorLayer*, QgsFeatureRendererV2*>& vectorRenderers,
1989
+ void QgsWMSServer::applyOpacities ( const QStringList& layerList, QHash<QgsVectorLayer*, QgsFeatureRendererV2*>& vectorRenderers, QHash<QgsVectorLayer*, int > vectorOld,
1988
1990
QHash< QgsRasterLayer*, QgsRasterRenderer* >& rasterRenderers )
1989
1991
{
1990
1992
// get opacity list
@@ -2039,9 +2041,15 @@ void QgsWMSServer::applyOpacities( const QStringList& layerList, QHash<QgsVector
2039
2041
QgsSymbolV2List::iterator symbolIt = symbolList.begin ();
2040
2042
for ( ; symbolIt != symbolList.end (); ++symbolIt )
2041
2043
{
2042
- ( *symbolIt )->setAlpha (( *symbolIt )->alpha () * lOpIt-> second / 255.0 );
2044
+ ( *symbolIt )->setAlpha (( *symbolIt )->alpha () * opacity / 255.0 );
2043
2045
}
2044
2046
}
2047
+ else // old symbology
2048
+ {
2049
+ vectorOld.insert ( vl, vl->getTransparency () );
2050
+ vl->setTransparency ( opacity );
2051
+ }
2052
+
2045
2053
}
2046
2054
else if ( ml->type () == QgsMapLayer::RasterLayer )
2047
2055
{
@@ -2056,12 +2064,11 @@ void QgsWMSServer::applyOpacities( const QStringList& layerList, QHash<QgsVector
2056
2064
}
2057
2065
}
2058
2066
}
2059
- // todo: rasters
2060
2067
}
2061
2068
}
2062
2069
2063
- void QgsWMSServer::restoreOpacities ( QHash<QgsVectorLayer*, QgsFeatureRendererV2*>& vectorRenderers, QHash < QgsRasterLayer* ,
2064
- QgsRasterRenderer* > & rasterRenderers )
2070
+ void QgsWMSServer::restoreOpacities ( QHash<QgsVectorLayer*, QgsFeatureRendererV2*>& vectorRenderers, QHash<QgsVectorLayer*, int > vectorOld ,
2071
+ QHash < QgsRasterLayer*, QgsRasterRenderer* > & rasterRenderers )
2065
2072
{
2066
2073
QHash<QgsVectorLayer*, QgsFeatureRendererV2*>::iterator vIt = vectorRenderers.begin ();
2067
2074
for ( ; vIt != vectorRenderers.end (); ++vIt )
@@ -2077,6 +2084,15 @@ void QgsWMSServer::restoreOpacities( QHash<QgsVectorLayer*, QgsFeatureRendererV2
2077
2084
rIt.key ()->setRenderer ( rIt.value () );
2078
2085
}
2079
2086
}
2087
+
2088
+ QHash<QgsVectorLayer*, int >::iterator oIt = vectorOld.begin ();
2089
+ for ( ; oIt != vectorOld.end (); ++oIt )
2090
+ {
2091
+ if ( oIt.key () )
2092
+ {
2093
+ oIt.key ()->setTransparency ( oIt.value () );
2094
+ }
2095
+ }
2080
2096
}
2081
2097
2082
2098
bool QgsWMSServer::checkMaximumWidthHeight () const
0 commit comments