17 #ifndef QGSSYMBOLLAYERV2UTILS_H
18 #define QGSSYMBOLLAYERV2UTILS_H
47 static QString encodeColor( QColor color );
48 static QColor decodeColor( QString str );
50 static QString encodeSldAlpha(
int alpha );
51 static int decodeSldAlpha( QString str );
53 static QString encodeSldFontStyle( QFont::Style style );
54 static QFont::Style decodeSldFontStyle( QString str );
56 static QString encodeSldFontWeight(
int weight );
57 static int decodeSldFontWeight( QString str );
59 static QString encodePenStyle( Qt::PenStyle style );
60 static Qt::PenStyle decodePenStyle( QString str );
62 static QString encodePenJoinStyle( Qt::PenJoinStyle style );
63 static Qt::PenJoinStyle decodePenJoinStyle( QString str );
65 static QString encodePenCapStyle( Qt::PenCapStyle style );
66 static Qt::PenCapStyle decodePenCapStyle( QString str );
68 static QString encodeSldLineJoinStyle( Qt::PenJoinStyle style );
69 static Qt::PenJoinStyle decodeSldLineJoinStyle( QString str );
71 static QString encodeSldLineCapStyle( Qt::PenCapStyle style );
72 static Qt::PenCapStyle decodeSldLineCapStyle( QString str );
74 static QString encodeBrushStyle( Qt::BrushStyle style );
75 static Qt::BrushStyle decodeBrushStyle( QString str );
77 static QString encodeSldBrushStyle( Qt::BrushStyle style );
78 static Qt::BrushStyle decodeSldBrushStyle( QString str );
80 static QString encodePoint( QPointF point );
81 static QPointF decodePoint( QString str );
83 static QString encodeMapUnitScale(
const QgsMapUnitScale& mapUnitScale );
86 static QString encodeRealVector(
const QVector<qreal>& v );
87 static QVector<qreal> decodeRealVector(
const QString& s );
89 static QString encodeSldRealVector(
const QVector<qreal>& v );
90 static QVector<qreal> decodeSldRealVector(
const QString& s );
105 static void drawStippledBackround( QPainter* painter, QRect rect );
107 static QPixmap symbolPreviewPixmap(
QgsSymbolV2* symbol, QSize size );
111 static double estimateMaxSymbolBleed(
QgsSymbolV2* symbol );
113 static QgsSymbolV2* loadSymbol( QDomElement& element );
115 static QDomElement saveSymbol( QString symbolName,
QgsSymbolV2* symbol, QDomDocument& doc );
123 static bool convertPolygonSymbolizerToPointMarker( QDomElement &element,
QgsSymbolLayerV2List &layerList );
124 static bool hasExternalGraphic( QDomElement &element );
125 static bool hasWellKnownMark( QDomElement &element );
127 static bool needFontMarker( QDomElement &element );
128 static bool needSvgMarker( QDomElement &element );
129 static bool needEllipseMarker( QDomElement &element );
130 static bool needMarkerLine( QDomElement &element );
131 static bool needLinePatternFill( QDomElement &element );
132 static bool needPointPatternFill( QDomElement &element );
133 static bool needSvgFill( QDomElement &element );
135 static void fillToSld( QDomDocument &doc, QDomElement &element,
136 Qt::BrushStyle brushStyle, QColor color = QColor() );
137 static bool fillFromSld( QDomElement &element,
138 Qt::BrushStyle &brushStyle, QColor &color );
141 static void lineToSld( QDomDocument &doc, QDomElement &element,
142 Qt::PenStyle penStyle, QColor color,
double width = -1,
143 const Qt::PenJoinStyle *penJoinStyle = 0,
const Qt::PenCapStyle *penCapStyle = 0,
144 const QVector<qreal> *customDashPattern = 0,
double dashOffset = 0.0 );
145 static bool lineFromSld( QDomElement &element,
146 Qt::PenStyle &penStyle, QColor &color,
double &width,
147 Qt::PenJoinStyle *penJoinStyle = 0, Qt::PenCapStyle *penCapStyle = 0,
148 QVector<qreal> *customDashPattern = 0,
double *dashOffset = 0 );
150 static void externalGraphicToSld( QDomDocument &doc, QDomElement &element,
151 QString path, QString mime,
152 QColor color,
double size = -1 );
153 static bool externalGraphicFromSld( QDomElement &element,
154 QString &path, QString &mime,
155 QColor &color,
double &size );
158 Q_DECL_DEPRECATED
static void wellKnownMarkerToSld( QDomDocument &doc, QDomElement &element,
159 QString name, QColor color, QColor borderColor = QColor(),
160 double borderWidth = -1,
double size = -1 );
161 static void wellKnownMarkerToSld( QDomDocument &doc, QDomElement &element,
162 QString name, QColor color, QColor borderColor, Qt::PenStyle borderStyle,
163 double borderWidth = -1,
double size = -1 );
165 Q_DECL_DEPRECATED
static bool wellKnownMarkerFromSld( QDomElement &element,
166 QString &name, QColor &color, QColor &borderColor,
167 double &borderWidth,
double &size );
168 static bool wellKnownMarkerFromSld( QDomElement &element,
169 QString &name, QColor &color, QColor &borderColor, Qt::PenStyle &borderStyle,
170 double &borderWidth,
double &size );
172 static void externalMarkerToSld( QDomDocument &doc, QDomElement &element,
173 QString path, QString format,
int *markIndex = 0,
174 QColor color = QColor(),
double size = -1 );
175 static bool externalMarkerFromSld( QDomElement &element,
176 QString &path, QString &format,
int &markIndex,
177 QColor &color,
double &size );
180 static void labelTextToSld( QDomDocument &doc, QDomElement &element, QString label,
181 QFont font, QColor color = QColor(),
double size = -1 );
184 static QString ogrFeatureStylePen(
double width,
double mmScaleFactor,
double mapUnitsScaleFactor,
const QColor& c,
185 Qt::PenJoinStyle joinStyle = Qt::MiterJoin,
186 Qt::PenCapStyle capStyle = Qt::FlatCap,
188 const QVector<qreal>* dashPattern = 0 );
191 static QString ogrFeatureStyleBrush(
const QColor& fillColr );
193 static void createRotationElement( QDomDocument &doc, QDomElement &element, QString rotationFunc );
194 static bool rotationFromSldElement( QDomElement &element, QString &rotationFunc );
196 static void createOpacityElement( QDomDocument &doc, QDomElement &element, QString alphaFunc );
197 static bool opacityFromSldElement( QDomElement &element, QString &alphaFunc );
199 static void createDisplacementElement( QDomDocument &doc, QDomElement &element, QPointF offset );
200 static bool displacementFromSldElement( QDomElement &element, QPointF &offset );
202 static void createOnlineResourceElement( QDomDocument &doc, QDomElement &element, QString path, QString format );
203 static bool onlineResourceFromSldElement( QDomElement &element, QString &path, QString &format );
205 static void createGeometryElement( QDomDocument &doc, QDomElement &element, QString geomFunc );
206 static bool geometryFromSldElement( QDomElement &element, QString &geomFunc );
208 static bool createFunctionElement( QDomDocument &doc, QDomElement &element, QString
function );
209 static bool functionFromSldElement( QDomElement &element, QString &
function );
211 static QDomElement createSvgParameterElement( QDomDocument &doc, QString name, QString value );
212 static QgsStringMap getSvgParameterList( QDomElement &element );
214 static QDomElement createVendorOptionElement( QDomDocument &doc, QString name, QString value );
215 static QgsStringMap getVendorOptionList( QDomElement &element );
217 static QgsStringMap parseProperties( QDomElement& element );
218 static void saveProperties(
QgsStringMap props, QDomDocument& doc, QDomElement& element );
221 static QDomElement saveSymbols(
QgsSymbolV2Map& symbols, QString tagName, QDomDocument& doc );
226 static QDomElement saveColorRamp( QString name,
QgsVectorColorRampV2* ramp, QDomDocument& doc );
235 static QColor parseColor( QString colorStr );
245 static QColor parseColorWithAlpha(
const QString colorStr,
bool &containsAlpha );
255 static void multiplyImageOpacity( QImage* image, qreal alpha );
260 static void blurImageInPlace( QImage& image,
const QRect& rect,
int radius,
bool alphaOnly );
265 static void premultiplyColor( QColor& rgb,
int alpha );
268 static void sortVariantList( QList<QVariant>& list, Qt::SortOrder order );
270 static QPointF pointOnLineWithDistance(
const QPointF& startPoint,
const QPointF& directionPoint,
double distance );
273 static QStringList listSvgFiles();
276 static QStringList listSvgFilesAt( QString directory );
282 static QString symbolNameToPath( QString name );
285 static QString symbolPathToName( QString path );
288 static QPointF polygonCentroid(
const QPolygonF& points );
291 static QPointF polygonPointOnSurface(
const QPolygonF& points );
294 static bool pointInPolygon(
const QPolygonF &points,
const QPointF &point );
302 static QgsExpression* fieldOrExpressionToExpression(
const QString& fieldOrExpression );
310 static QString fieldOrExpressionFromExpression(
QgsExpression* expression );
316 QList<QPolygonF>
offsetLine( QPolygonF polyline,
double dist );
QMap< QString, QgsSymbolV2 * > QgsSymbolV2Map
Class for parsing and evaluation of expressions (formerly called "search strings").
QMap< QString, QgsSymbolV2 * > QgsSymbolV2Map
QMap< QString, QString > QgsStringMap
QMap< QString, QString > QgsStringMap
Contains information about the context of a rendering operation.
QList< QPolygonF > offsetLine(QPolygonF polyline, double dist)
QList< QgsSymbolLayerV2 * > QgsSymbolLayerV2List