mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-13 00:03:09 -04:00
Added the possibility for renderers to have different transparency levels for different classes
git-svn-id: http://svn.osgeo.org/qgis/trunk@6967 c8812cc2-4d05-0410-92ff-de0c093fc19c
This commit is contained in:
parent
be40dae943
commit
44d8225e7d
@ -38,6 +38,9 @@ class QgsRenderer /Abstract/
|
||||
static void setSelectionColor(QColor color);
|
||||
/**Returns true if this renderer returns a pixmap in the render method (e.g. for point data or diagrams)*/
|
||||
virtual bool containsPixmap() const;
|
||||
/**Returns true if this renderer uses its own transparency settings, e.g. differentiated by classification.
|
||||
This is a hint for QgsVectorLayer to not use the transparency setting on layer level in this cases*/
|
||||
virtual bool usesTransparency() const;
|
||||
|
||||
};
|
||||
|
||||
|
@ -407,7 +407,12 @@ unsigned char* QgsVectorLayer::drawLineString(unsigned char* feature,
|
||||
//
|
||||
QPen myTransparentPen = p->pen(); // store current pen
|
||||
QColor myColor = myTransparentPen.color();
|
||||
myColor.setAlpha(mTransparencyLevel);
|
||||
//only set transparency from layer level if renderer does not provide
|
||||
//transparency on class level
|
||||
if(!mRenderer->usesTransparency())
|
||||
{
|
||||
myColor.setAlpha(mTransparencyLevel);
|
||||
}
|
||||
myTransparentPen.setColor(myColor);
|
||||
p->setPen(myTransparentPen);
|
||||
p->drawPolyline(pa);
|
||||
@ -631,11 +636,23 @@ std::cerr << i << ": " << ring->first[i]
|
||||
//
|
||||
QBrush myTransparentBrush = p->brush();
|
||||
QColor myColor = brush.color();
|
||||
myColor.setAlpha(mTransparencyLevel);
|
||||
|
||||
//only set transparency from layer level if renderer does not provide
|
||||
//transparency on class level
|
||||
if(!mRenderer->usesTransparency())
|
||||
{
|
||||
myColor.setAlpha(mTransparencyLevel);
|
||||
}
|
||||
myTransparentBrush.setColor(myColor);
|
||||
QPen myTransparentPen = p->pen(); // store current pen
|
||||
myColor = myTransparentPen.color();
|
||||
myColor.setAlpha(mTransparencyLevel);
|
||||
|
||||
//only set transparency from layer level if renderer does not provide
|
||||
//transparency on class level
|
||||
if(!mRenderer->usesTransparency())
|
||||
{
|
||||
myColor.setAlpha(mTransparencyLevel);
|
||||
}
|
||||
myTransparentPen.setColor(myColor);
|
||||
|
||||
p->setBrush(myTransparentBrush);
|
||||
|
@ -73,6 +73,9 @@ class CORE_EXPORT QgsRenderer
|
||||
static void setSelectionColor(QColor color);
|
||||
/**Returns true if this renderer returns a pixmap in the render method (e.g. for point data or diagrams)*/
|
||||
virtual bool containsPixmap() const;
|
||||
/**Returns true if this renderer uses its own transparency settings, e.g. differentiated by classification.
|
||||
This is a hint for QgsVectorLayer to not use the transparency setting on layer level in this cases*/
|
||||
virtual bool usesTransparency() const {return false;}
|
||||
|
||||
protected:
|
||||
/**Color to draw selected features - static so we can change it in proj props and automatically
|
||||
|
Loading…
x
Reference in New Issue
Block a user