[QGIS Commit] r15605 - trunk/qgis/src/core/symbology-ng
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Fri Mar 25 17:50:30 EDT 2011
Author: wonder
Date: 2011-03-25 14:50:30 -0700 (Fri, 25 Mar 2011)
New Revision: 15605
Modified:
trunk/qgis/src/core/symbology-ng/qgsmarkersymbollayerv2.cpp
Log:
Fix simple marker transparency (#3658)
Modified: trunk/qgis/src/core/symbology-ng/qgsmarkersymbollayerv2.cpp
===================================================================
--- trunk/qgis/src/core/symbology-ng/qgsmarkersymbollayerv2.cpp 2011-03-25 21:37:06 UTC (rev 15604)
+++ trunk/qgis/src/core/symbology-ng/qgsmarkersymbollayerv2.cpp 2011-03-25 21:50:30 UTC (rev 15605)
@@ -74,14 +74,27 @@
void QgsSimpleMarkerSymbolLayerV2::startRender( QgsSymbolV2RenderContext& context )
{
- mBrush = QBrush( mColor );
- mPen = QPen( mBorderColor );
+ QColor brushColor = mColor;
+ QColor penColor = mBorderColor;
+ if ( context.alpha() < 1 )
+ {
+ penColor.setAlphaF( context.alpha() );
+ brushColor.setAlphaF( context.alpha() );
+ }
+ mBrush = QBrush( brushColor );
+ mPen = QPen( penColor );
mPen.setWidthF( context.outputLineWidth( mPen.widthF() ) );
- QColor selColor = context.selectionColor();
- mSelBrush = QBrush( selColor );
- mSelPen = QPen( selColor == mColor ? selColor : mBorderColor );
- mSelPen.setWidthF( mPen.widthF() );
+ QColor selBrushColor = context.selectionColor();
+ QColor selPenColor = selBrushColor == mColor ? selBrushColor : mBorderColor;
+ if ( context.alpha() < 1 )
+ {
+ selBrushColor.setAlphaF( context.alpha() );
+ selPenColor.setAlphaF( context.alpha() );
+ }
+ mSelBrush = QBrush( selBrushColor );
+ mSelPen = QPen( selPenColor );
+ mSelPen.setWidthF( context.outputLineWidth( mPen.widthF() ) );
bool hasDataDefinedRotation = context.renderHints() & QgsSymbolV2::DataDefinedRotation;
bool hasDataDefinedSize = context.renderHints() & QgsSymbolV2::DataDefinedSizeScale;
@@ -101,7 +114,7 @@
// For these set the selected border color to the selected color
if ( mName != "circle" )
- mSelPen.setColor( selColor );
+ mSelPen.setColor( selBrushColor );
}
else
{
@@ -197,13 +210,6 @@
drawMarker( &p, context );
p.end();
}
-
- //opacity
- if ( context.alpha() < 1.0 )
- {
- QgsSymbolLayerV2Utils::multiplyImageOpacity( &mCache, context.alpha() );
- if ( ! selectionIsOpaque ) QgsSymbolLayerV2Utils::multiplyImageOpacity( &mSelCache, context.alpha() );
- }
}
void QgsSimpleMarkerSymbolLayerV2::stopRender( QgsSymbolV2RenderContext& context )
More information about the QGIS-commit
mailing list