|
QGIS API Documentation
master-3f58142
|
A class for svg fill patterns. More...
#include <qgsfillsymbollayerv2.h>
Inheritance diagram for QgsSVGFillSymbolLayer:
Collaboration diagram for QgsSVGFillSymbolLayer:Public Member Functions | |
| QgsSVGFillSymbolLayer (const QString &svgFilePath="", double width=20, double rotation=0.0) | |
| QgsSVGFillSymbolLayer (const QByteArray &svgData, double width=20, double rotation=0.0) | |
| ~QgsSVGFillSymbolLayer () | |
| QgsSymbolLayerV2 * | clone () const |
| QString | layerType () const |
| QgsSymbolV2::OutputUnit | outputUnit () const |
| double | patternWidth () const |
| QgsSymbolV2::OutputUnit | patternWidthUnit () const |
| QgsStringMap | properties () const |
| void | setOutputUnit (QgsSymbolV2::OutputUnit unit) |
| void | setPatternWidth (double width) |
| void | setPatternWidthUnit (QgsSymbolV2::OutputUnit unit) |
| void | setSvgFilePath (const QString &svgPath) |
| void | setSvgFillColor (const QColor &c) |
| void | setSvgOutlineColor (const QColor &c) |
| void | setSvgOutlineWidth (double w) |
| void | setSvgOutlineWidthUnit (QgsSymbolV2::OutputUnit unit) |
| void | startRender (QgsSymbolV2RenderContext &context) |
| void | stopRender (QgsSymbolV2RenderContext &context) |
| QString | svgFilePath () const |
| QColor | svgFillColor () const |
| QColor | svgOutlineColor () const |
| double | svgOutlineWidth () const |
| QgsSymbolV2::OutputUnit | svgOutlineWidthUnit () const |
| void | toSld (QDomDocument &doc, QDomElement &element, QgsStringMap props) const |
Static Public Member Functions | |
| static QgsSymbolLayerV2 * | create (const QgsStringMap &properties=QgsStringMap()) |
| static QgsSymbolLayerV2 * | createFromSld (QDomElement &element) |
Protected Member Functions | |
| void | applyDataDefinedSettings (const QgsSymbolV2RenderContext &context) |
Protected Attributes | |
| double | mPatternWidth |
| Width of the pattern (in output units) | |
| QgsSymbolV2::OutputUnit | mPatternWidthUnit |
| QByteArray | mSvgData |
| SVG data. | |
| QString | mSvgFilePath |
| Path to the svg file (or empty if constructed directly from data) | |
| QColor | mSvgFillColor |
| QColor | mSvgOutlineColor |
| double | mSvgOutlineWidth |
| QgsSymbolV2::OutputUnit | mSvgOutlineWidthUnit |
| QImage * | mSvgPattern |
| SVG pattern image. | |
| QRectF | mSvgViewBox |
| SVG view box (to keep the aspect ratio. | |
Private Member Functions | |
| void | applyPattern (QBrush &brush, const QString &svgFilePath, double patternWidth, QgsSymbolV2::OutputUnit patternWidthUnit, const QColor &svgFillColor, const QColor &svgOutlineColor, double svgOutlineWidth, QgsSymbolV2::OutputUnit svgOutlineWidthUnit, const QgsSymbolV2RenderContext &context) |
| Applies the svg pattern to the brush. | |
| void | setDefaultSvgParams () |
| void | storeViewBox () |
| Helper function that gets the view box from the byte array. | |
A class for svg fill patterns.
The class automatically scales the pattern to the appropriate pixel dimensions of the output device
Definition at line 134 of file qgsfillsymbollayerv2.h.
| QgsSVGFillSymbolLayer::QgsSVGFillSymbolLayer | ( | const QString & | svgFilePath = "", |
| double | width = 20, |
||
| double | rotation = 0.0 |
||
| ) |
Definition at line 374 of file qgsfillsymbollayerv2.cpp.
References QgsFillSymbolLayerV2::angle(), QgsFillSymbolLayerV2::mAngle, QgsImageFillSymbolLayer::mOutlineWidth, mSvgPattern, setDefaultSvgParams(), and setSvgFilePath().
Referenced by clone(), create(), and createFromSld().
| QgsSVGFillSymbolLayer::QgsSVGFillSymbolLayer | ( | const QByteArray & | svgData, |
| double | width = 20, |
||
| double | rotation = 0.0 |
||
| ) |
Definition at line 384 of file qgsfillsymbollayerv2.cpp.
References QgsFillSymbolLayerV2::angle(), QgsFillSymbolLayerV2::mAngle, QgsImageFillSymbolLayer::mOutlineWidth, mSvgPattern, setDefaultSvgParams(), QgsImageFillSymbolLayer::setSubSymbol(), and storeViewBox().
Definition at line 395 of file qgsfillsymbollayerv2.cpp.
References QgsImageFillSymbolLayer::mOutline, and mSvgPattern.
| void QgsSVGFillSymbolLayer::applyDataDefinedSettings | ( | const QgsSymbolV2RenderContext & | context | ) | [protected, virtual] |
Reimplemented from QgsImageFillSymbolLayer.
Definition at line 762 of file qgsfillsymbollayerv2.cpp.
References applyPattern(), QgsSymbolLayerV2Utils::decodeColor(), QgsExpression::evaluate(), QgsSymbolLayerV2::expression(), QgsSymbolV2RenderContext::feature(), QgsImageFillSymbolLayer::mBrush, mPatternWidth, mPatternWidthUnit, mSvgFilePath, mSvgFillColor, mSvgOutlineColor, mSvgOutlineWidth, mSvgOutlineWidthUnit, outlineWidth, svgFillColor(), and svgOutlineColor().
| void QgsSVGFillSymbolLayer::applyPattern | ( | QBrush & | brush, |
| const QString & | svgFilePath, | ||
| double | patternWidth, | ||
| QgsSymbolV2::OutputUnit | patternWidthUnit, | ||
| const QColor & | svgFillColor, | ||
| const QColor & | svgOutlineColor, | ||
| double | svgOutlineWidth, | ||
| QgsSymbolV2::OutputUnit | svgOutlineWidthUnit, | ||
| const QgsSymbolV2RenderContext & | context | ||
| ) | [private] |
Applies the svg pattern to the brush.
Definition at line 512 of file qgsfillsymbollayerv2.cpp.
References QgsSymbolV2RenderContext::alpha(), QgsSvgCache::instance(), QgsSymbolLayerV2Utils::lineWidthScaleFactor(), mSvgPattern, mSvgViewBox, QgsSymbolLayerV2Utils::multiplyImageOpacity(), outlineWidth, patternWidthUnit(), QgsSymbolLayerV2Utils::pixelSizeScaleFactor(), qgsDoubleNear(), QgsRenderContext::rasterScaleFactor(), QgsSymbolV2RenderContext::renderContext(), QgsRenderContext::scaleFactor(), size, QgsSvgCache::svgAsImage(), QgsSvgCache::svgAsPicture(), and svgOutlineWidthUnit().
Referenced by applyDataDefinedSettings(), and startRender().
| QgsSymbolLayerV2 * QgsSVGFillSymbolLayer::clone | ( | ) | const [virtual] |
Implements QgsSymbolLayerV2.
Definition at line 618 of file qgsfillsymbollayerv2.cpp.
References QgsLineSymbolV2::clone(), QgsSymbolLayerV2::copyDataDefinedProperties(), QgsFillSymbolLayerV2::mAngle, QgsImageFillSymbolLayer::mOutline, QgsImageFillSymbolLayer::mOutlineWidthUnit, mPatternWidth, mPatternWidthUnit, mSvgData, mSvgFilePath, mSvgFillColor, mSvgOutlineColor, mSvgOutlineWidth, mSvgOutlineWidthUnit, QgsSVGFillSymbolLayer(), QgsImageFillSymbolLayer::setOutlineWidthUnit(), setPatternWidthUnit(), QgsImageFillSymbolLayer::setSubSymbol(), setSvgFillColor(), setSvgOutlineColor(), setSvgOutlineWidth(), and setSvgOutlineWidthUnit().
| QgsSymbolLayerV2 * QgsSVGFillSymbolLayer::create | ( | const QgsStringMap & | properties = QgsStringMap() | ) | [static] |
Definition at line 427 of file qgsfillsymbollayerv2.cpp.
References QgsFillSymbolLayerV2::angle(), QgsSymbolLayerV2Utils::decodeOutputUnit(), QgsSVGFillSymbolLayer(), QgsSymbolLayerV2::setDataDefinedProperty(), QgsImageFillSymbolLayer::setOutlineWidthUnit(), setPatternWidthUnit(), setSvgFillColor(), setSvgOutlineColor(), setSvgOutlineWidth(), setSvgOutlineWidthUnit(), svgFilePath(), and QgsSymbolLayerV2Utils::symbolNameToPath().
Referenced by QgsSymbolLayerV2Registry::QgsSymbolLayerV2Registry().
| QgsSymbolLayerV2 * QgsSVGFillSymbolLayer::createFromSld | ( | QDomElement & | element | ) | [static] |
Definition at line 702 of file qgsfillsymbollayerv2.cpp.
References QgsFillSymbolLayerV2::angle(), QgsSymbolLayerV2Utils::createLineLayerFromSld(), QgsSymbolLayerV2Utils::externalGraphicFromSld(), QgsSymbolLayerV2Utils::lineFromSld(), QgsDebugMsg, QgsSVGFillSymbolLayer(), QgsSymbolLayerV2Utils::rotationFromSldElement(), QgsImageFillSymbolLayer::setSubSymbol(), setSvgFillColor(), setSvgOutlineColor(), setSvgOutlineWidth(), and size.
Referenced by QgsSymbolLayerV2Registry::QgsSymbolLayerV2Registry().
| QString QgsSVGFillSymbolLayer::layerType | ( | ) | const [virtual] |
Implements QgsSymbolLayerV2.
Definition at line 507 of file qgsfillsymbollayerv2.cpp.
| QgsSymbolV2::OutputUnit QgsSVGFillSymbolLayer::outputUnit | ( | ) | const [virtual] |
Reimplemented from QgsSymbolLayerV2.
Definition at line 408 of file qgsfillsymbollayerv2.cpp.
References QgsSymbolV2::Mixed, QgsImageFillSymbolLayer::mOutlineWidthUnit, mPatternWidthUnit, and mSvgOutlineWidthUnit.
| double QgsSVGFillSymbolLayer::patternWidth | ( | ) | const [inline] |
Definition at line 161 of file qgsfillsymbollayerv2.h.
Referenced by QgsSVGFillSymbolLayerWidget::setSymbolLayer().
| QgsSymbolV2::OutputUnit QgsSVGFillSymbolLayer::patternWidthUnit | ( | ) | const [inline] |
Definition at line 171 of file qgsfillsymbollayerv2.h.
Referenced by applyPattern(), and QgsSVGFillSymbolLayerWidget::setSymbolLayer().
| QgsStringMap QgsSVGFillSymbolLayer::properties | ( | ) | const [virtual] |
Implements QgsSymbolLayerV2.
Definition at line 589 of file qgsfillsymbollayerv2.cpp.
References QgsSymbolLayerV2Utils::encodeOutputUnit(), QgsFillSymbolLayerV2::mAngle, QgsImageFillSymbolLayer::mOutlineWidthUnit, mPatternWidth, mPatternWidthUnit, mSvgData, mSvgFilePath, mSvgFillColor, mSvgOutlineColor, mSvgOutlineWidth, mSvgOutlineWidthUnit, QgsSymbolLayerV2::saveDataDefinedProperties(), and QgsSymbolLayerV2Utils::symbolPathToName().
| void QgsSVGFillSymbolLayer::setDefaultSvgParams | ( | ) | [private] |
Definition at line 820 of file qgsfillsymbollayerv2.cpp.
References QgsSvgCache::containsParams(), QgsSvgCache::instance(), mSvgFilePath, mSvgFillColor, mSvgOutlineColor, and mSvgOutlineWidth.
Referenced by QgsSVGFillSymbolLayer(), and setSvgFilePath().
| void QgsSVGFillSymbolLayer::setOutputUnit | ( | QgsSymbolV2::OutputUnit | unit | ) | [virtual] |
Reimplemented from QgsSymbolLayerV2.
Definition at line 401 of file qgsfillsymbollayerv2.cpp.
References QgsImageFillSymbolLayer::mOutlineWidthUnit, mPatternWidthUnit, and mSvgOutlineWidthUnit.
| void QgsSVGFillSymbolLayer::setPatternWidth | ( | double | width | ) | [inline] |
Definition at line 160 of file qgsfillsymbollayerv2.h.
Referenced by QgsSVGFillSymbolLayerWidget::on_mTextureWidthSpinBox_valueChanged().
| void QgsSVGFillSymbolLayer::setPatternWidthUnit | ( | QgsSymbolV2::OutputUnit | unit | ) | [inline] |
Definition at line 170 of file qgsfillsymbollayerv2.h.
Referenced by clone(), create(), and QgsSVGFillSymbolLayerWidget::on_mTextureWidthUnitComboBox_currentIndexChanged().
| void QgsSVGFillSymbolLayer::setSvgFilePath | ( | const QString & | svgPath | ) |
Definition at line 418 of file qgsfillsymbollayerv2.cpp.
References QgsSvgCache::getImageData(), QgsSvgCache::instance(), mSvgData, mSvgFilePath, setDefaultSvgParams(), and storeViewBox().
Referenced by QgsSVGFillSymbolLayerWidget::on_mSVGLineEdit_editingFinished(), QgsSVGFillSymbolLayerWidget::on_mSVGLineEdit_textEdited(), QgsSVGFillSymbolLayer(), and QgsSVGFillSymbolLayerWidget::setFile().
| void QgsSVGFillSymbolLayer::setSvgFillColor | ( | const QColor & | c | ) | [inline] |
Definition at line 163 of file qgsfillsymbollayerv2.h.
Referenced by clone(), create(), createFromSld(), and QgsSVGFillSymbolLayerWidget::on_mChangeColorButton_colorChanged().
| void QgsSVGFillSymbolLayer::setSvgOutlineColor | ( | const QColor & | c | ) | [inline] |
Definition at line 165 of file qgsfillsymbollayerv2.h.
Referenced by clone(), create(), createFromSld(), and QgsSVGFillSymbolLayerWidget::on_mChangeBorderColorButton_colorChanged().
| void QgsSVGFillSymbolLayer::setSvgOutlineWidth | ( | double | w | ) | [inline] |
Definition at line 167 of file qgsfillsymbollayerv2.h.
Referenced by clone(), create(), createFromSld(), and QgsSVGFillSymbolLayerWidget::on_mBorderWidthSpinBox_valueChanged().
| void QgsSVGFillSymbolLayer::setSvgOutlineWidthUnit | ( | QgsSymbolV2::OutputUnit | unit | ) | [inline] |
Definition at line 173 of file qgsfillsymbollayerv2.h.
Referenced by clone(), create(), and QgsSVGFillSymbolLayerWidget::on_mSvgOutlineWidthUnitComboBox_currentIndexChanged().
| void QgsSVGFillSymbolLayer::startRender | ( | QgsSymbolV2RenderContext & | context | ) | [virtual] |
Implements QgsSymbolLayerV2.
Definition at line 568 of file qgsfillsymbollayerv2.cpp.
References applyPattern(), QgsSymbolV2RenderContext::layer(), QgsImageFillSymbolLayer::mBrush, QgsImageFillSymbolLayer::mOutline, mPatternWidth, mPatternWidthUnit, mSvgFilePath, mSvgFillColor, mSvgOutlineColor, mSvgOutlineWidth, mSvgOutlineWidthUnit, QgsSymbolLayerV2::prepareExpressions(), QgsSymbolV2RenderContext::renderContext(), and QgsSymbolV2::startRender().
| void QgsSVGFillSymbolLayer::stopRender | ( | QgsSymbolV2RenderContext & | context | ) | [virtual] |
Implements QgsSymbolLayerV2.
Definition at line 581 of file qgsfillsymbollayerv2.cpp.
References QgsImageFillSymbolLayer::mOutline, QgsSymbolV2RenderContext::renderContext(), and QgsSymbolV2::stopRender().
| void QgsSVGFillSymbolLayer::storeViewBox | ( | ) | [private] |
Helper function that gets the view box from the byte array.
Definition at line 804 of file qgsfillsymbollayerv2.cpp.
References mSvgData, and mSvgViewBox.
Referenced by QgsSVGFillSymbolLayer(), and setSvgFilePath().
| QString QgsSVGFillSymbolLayer::svgFilePath | ( | ) | const [inline] |
Definition at line 159 of file qgsfillsymbollayerv2.h.
Referenced by create(), and QgsSVGFillSymbolLayerWidget::setSymbolLayer().
| QColor QgsSVGFillSymbolLayer::svgFillColor | ( | ) | const [inline] |
Definition at line 164 of file qgsfillsymbollayerv2.h.
Referenced by applyDataDefinedSettings().
| QColor QgsSVGFillSymbolLayer::svgOutlineColor | ( | ) | const [inline] |
Definition at line 166 of file qgsfillsymbollayerv2.h.
Referenced by applyDataDefinedSettings().
| double QgsSVGFillSymbolLayer::svgOutlineWidth | ( | ) | const [inline] |
Definition at line 168 of file qgsfillsymbollayerv2.h.
| QgsSymbolV2::OutputUnit QgsSVGFillSymbolLayer::svgOutlineWidthUnit | ( | ) | const [inline] |
Definition at line 174 of file qgsfillsymbollayerv2.h.
Referenced by applyPattern(), and QgsSVGFillSymbolLayerWidget::setSymbolLayer().
| void QgsSVGFillSymbolLayer::toSld | ( | QDomDocument & | doc, |
| QDomElement & | element, | ||
| QgsStringMap | props | ||
| ) | const [virtual] |
Reimplemented from QgsSymbolLayerV2.
Definition at line 645 of file qgsfillsymbollayerv2.cpp.
References QgsFillSymbolLayerV2::angle(), QgsSymbolLayerV2Utils::createGeometryElement(), QgsSymbolLayerV2Utils::createRotationElement(), QgsSymbolLayerV2Utils::externalGraphicToSld(), QgsSymbolLayerV2Utils::lineToSld(), QgsFillSymbolLayerV2::mAngle, QgsImageFillSymbolLayer::mOutline, mPatternWidth, mSvgFilePath, mSvgFillColor, mSvgOutlineColor, mSvgOutlineWidth, and QgsSymbolV2::toSld().
double QgsSVGFillSymbolLayer::mPatternWidth [protected] |
Width of the pattern (in output units)
Definition at line 181 of file qgsfillsymbollayerv2.h.
Referenced by applyDataDefinedSettings(), clone(), properties(), startRender(), and toSld().
Definition at line 182 of file qgsfillsymbollayerv2.h.
Referenced by applyDataDefinedSettings(), clone(), outputUnit(), properties(), setOutputUnit(), and startRender().
QByteArray QgsSVGFillSymbolLayer::mSvgData [protected] |
SVG data.
Definition at line 185 of file qgsfillsymbollayerv2.h.
Referenced by clone(), properties(), setSvgFilePath(), and storeViewBox().
QString QgsSVGFillSymbolLayer::mSvgFilePath [protected] |
Path to the svg file (or empty if constructed directly from data)
Definition at line 187 of file qgsfillsymbollayerv2.h.
Referenced by applyDataDefinedSettings(), clone(), properties(), setDefaultSvgParams(), setSvgFilePath(), startRender(), and toSld().
QColor QgsSVGFillSymbolLayer::mSvgFillColor [protected] |
Definition at line 196 of file qgsfillsymbollayerv2.h.
Referenced by applyDataDefinedSettings(), clone(), properties(), setDefaultSvgParams(), startRender(), and toSld().
QColor QgsSVGFillSymbolLayer::mSvgOutlineColor [protected] |
Definition at line 197 of file qgsfillsymbollayerv2.h.
Referenced by applyDataDefinedSettings(), clone(), properties(), setDefaultSvgParams(), startRender(), and toSld().
double QgsSVGFillSymbolLayer::mSvgOutlineWidth [protected] |
Definition at line 198 of file qgsfillsymbollayerv2.h.
Referenced by applyDataDefinedSettings(), clone(), properties(), setDefaultSvgParams(), startRender(), and toSld().
Definition at line 199 of file qgsfillsymbollayerv2.h.
Referenced by applyDataDefinedSettings(), clone(), outputUnit(), properties(), setOutputUnit(), and startRender().
QImage* QgsSVGFillSymbolLayer::mSvgPattern [protected] |
SVG pattern image.
Definition at line 192 of file qgsfillsymbollayerv2.h.
Referenced by applyPattern(), QgsSVGFillSymbolLayer(), and ~QgsSVGFillSymbolLayer().
QRectF QgsSVGFillSymbolLayer::mSvgViewBox [protected] |
SVG view box (to keep the aspect ratio.
Definition at line 189 of file qgsfillsymbollayerv2.h.
Referenced by applyPattern(), and storeViewBox().