Quantum GIS API Documentation  1.7.4
src/core/symbology-ng/qgssymbollayerv2utils.h
Go to the documentation of this file.
00001 
00002 
00003 #ifndef QGSSYMBOLLAYERV2UTILS_H
00004 #define QGSSYMBOLLAYERV2UTILS_H
00005 
00006 #include <QMap>
00007 #include <Qt>
00008 #include <QtCore>
00009 #include "qgssymbolv2.h"
00010 
00011 class QgsSymbolV2;
00012 class QgsSymbolLayerV2;
00013 class QgsVectorColorRampV2;
00014 
00015 typedef QMap<QString, QString> QgsStringMap;
00016 typedef QMap<QString, QgsSymbolV2* > QgsSymbolV2Map;
00017 
00018 class QColor;
00019 class QDomDocument;
00020 class QDomElement;
00021 class QIcon;
00022 class QPixmap;
00023 class QPointF;
00024 class QSize;
00025 
00026 class CORE_EXPORT QgsSymbolLayerV2Utils
00027 {
00028   public:
00029 
00030     static QString encodeColor( QColor color );
00031     static QColor decodeColor( QString str );
00032 
00033     static QString encodePenStyle( Qt::PenStyle style );
00034     static Qt::PenStyle decodePenStyle( QString str );
00035 
00036     static QString encodePenJoinStyle( Qt::PenJoinStyle style );
00037     static Qt::PenJoinStyle decodePenJoinStyle( QString str );
00038 
00039     static QString encodePenCapStyle( Qt::PenCapStyle style );
00040     static Qt::PenCapStyle decodePenCapStyle( QString str );
00041 
00042     static QString encodeBrushStyle( Qt::BrushStyle style );
00043     static Qt::BrushStyle decodeBrushStyle( QString str );
00044 
00045     static QString encodePoint( QPointF point );
00046     static QPointF decodePoint( QString str );
00047 
00048     static QString encodeRealVector( const QVector<qreal>& v );
00049     static QVector<qreal> decodeRealVector( const QString& s );
00050 
00051     static QString encodeOutputUnit( QgsSymbolV2::OutputUnit unit );
00052     static QgsSymbolV2::OutputUnit decodeOutputUnit( QString str );
00053 
00054     static QIcon symbolPreviewIcon( QgsSymbolV2* symbol, QSize size );
00055     static QIcon symbolLayerPreviewIcon( QgsSymbolLayerV2* layer, QgsSymbolV2::OutputUnit u, QSize size );
00056     static QIcon colorRampPreviewIcon( QgsVectorColorRampV2* ramp, QSize size );
00057 
00058     static QPixmap symbolPreviewPixmap( QgsSymbolV2* symbol, QSize size );
00059     static QPixmap colorRampPreviewPixmap( QgsVectorColorRampV2* ramp, QSize size );
00060 
00061     static QgsSymbolV2* loadSymbol( QDomElement& element );
00062     static QgsSymbolLayerV2* loadSymbolLayer( QDomElement& element );
00063     static QDomElement saveSymbol( QString name, QgsSymbolV2* symbol, QDomDocument& doc, QgsSymbolV2Map* subSymbols = NULL );
00064 
00065     static QgsStringMap parseProperties( QDomElement& element );
00066     static void saveProperties( QgsStringMap props, QDomDocument& doc, QDomElement& element );
00067 
00068     static QgsSymbolV2Map loadSymbols( QDomElement& element );
00069     static QDomElement saveSymbols( QgsSymbolV2Map& symbols, QString tagName, QDomDocument& doc );
00070 
00071     static void clearSymbolMap( QgsSymbolV2Map& symbols );
00072 
00073     static QgsVectorColorRampV2* loadColorRamp( QDomElement& element );
00074     static QDomElement saveColorRamp( QString name, QgsVectorColorRampV2* ramp, QDomDocument& doc );
00075 
00077     static double lineWidthScaleFactor( QgsRenderContext& c, QgsSymbolV2::OutputUnit u );
00079     static double pixelSizeScaleFactor( QgsRenderContext& c, QgsSymbolV2::OutputUnit u );
00081     static QgsRenderContext createRenderContext( QPainter* p );
00082 
00084     static void multiplyImageOpacity( QImage* image, qreal alpha );
00085 
00087   static void sortVariantList( QList<QVariant>& list, Qt::SortOrder order );
00088 };
00089 
00090 class QPolygonF;
00091 
00093 QPolygonF offsetLine( QPolygonF polyline, double dist );
00094 
00095 
00096 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines