2
typedef QList<QgsSymbolV2*> QgsSymbolV2List;
4
typedef QList< QPair<QString, QPixmap> > QgsLegendSymbologyList;
9
class QgsSymbolV2LevelItem
12
#include <qgsrendererv2.h>
16
QgsSymbolV2LevelItem( QgsSymbolV2* symbol, int layer );
17
QgsSymbolV2* symbol();
21
// every level has list of items: symbol + symbol layer num
22
typedef QList< QgsSymbolV2LevelItem > QgsSymbolV2Level;
24
// this is a list of levels
25
typedef QList< QgsSymbolV2Level > QgsSymbolV2LevelOrder;
31
class QgsFeatureRendererV2
34
#include <qgsrendererv2.h>
38
%ConvertToSubClassCode
39
if (sipCpp->type() == "singleSymbol")
40
sipClass = sipClass_QgsSingleSymbolRendererV2;
41
else if (sipCpp->type() == "categorizedSymbol")
42
sipClass = sipClass_QgsCategorizedSymbolRendererV2;
43
else if (sipCpp->type() == "graduatedSymbol")
44
sipClass = sipClass_QgsGraduatedSymbolRendererV2;
52
//! return a new renderer - used by default in vector layers
53
static QgsFeatureRendererV2* defaultRenderer(QGis::GeometryType geomType) /Factory/;
57
virtual QgsSymbolV2* symbolForFeature(QgsFeature& feature)=0;
59
virtual void startRender(QgsRenderContext& context, const QgsVectorLayer * )=0;
61
virtual void stopRender(QgsRenderContext& context)=0;
63
virtual QList<QString> usedAttributes()=0;
65
virtual ~QgsFeatureRendererV2();
67
virtual QString dump();
69
virtual QgsFeatureRendererV2* clone()=0 /Factory/;
71
virtual QgsSymbolV2List symbols()=0;
73
void renderFeature(QgsFeature& feature, QgsRenderContext& context, int layer = -1, bool drawVertexMarker = false );
75
bool usingSymbolLevels() const;
76
void setUsingSymbolLevels(bool usingSymbolLevels);
78
//! create a renderer from XML element
79
static QgsFeatureRendererV2* load(QDomElement& symbologyElem);
81
//! store renderer info to XML element
82
virtual QDomElement save(QDomDocument& doc);
84
//! return a list of symbology items for the legend
85
virtual QgsLegendSymbologyList legendSymbologyItems(QSize iconSize);
87
//! set type and size of editing vertex markers for subsequent rendering
88
void setVertexMarkerAppearance( int type, int size );
91
QgsFeatureRendererV2(QString type);
93
//! render editing vertex marker at specified point
94
void renderVertexMarker( QPointF& pt, QgsRenderContext& context );
95
//! render editing vertex marker for a polyline
96
void renderVertexMarkerPolyline( QPolygonF& pts, QgsRenderContext& context );
97
//! render editing vertex marker for a polygon
98
void renderVertexMarkerPolygon( QPolygonF& pts, QList<QPolygonF>* rings, QgsRenderContext& context );
104
class QgsSingleSymbolRendererV2 : QgsFeatureRendererV2
107
#include <qgssinglesymbolrendererv2.h>
112
QgsSingleSymbolRendererV2(QgsSymbolV2* symbol /Transfer/);
114
virtual ~QgsSingleSymbolRendererV2();
116
virtual QgsSymbolV2* symbolForFeature(QgsFeature& feature);
118
virtual void startRender(QgsRenderContext& context, const QgsVectorLayer * );
120
virtual void stopRender(QgsRenderContext& context);
122
virtual QList<QString> usedAttributes();
124
QgsSymbolV2* symbol() const;
125
void setSymbol(QgsSymbolV2* s /Transfer/);
127
virtual QString dump();
129
virtual QgsFeatureRendererV2* clone() /Factory/;
131
//! create a renderer from XML element
132
static QgsFeatureRendererV2* load(QDomElement& symbologyElem) /Factory/;
134
//! store renderer info to XML element
135
virtual QDomElement save(QDomDocument& doc);
137
//! return a list of symbology items for the legend
138
virtual QgsLegendSymbologyList legendSymbologyItems(QSize iconSize);
144
class QgsRendererCategoryV2
147
#include <qgscategorizedsymbolrendererv2.h>
152
//! takes ownership of symbol
153
QgsRendererCategoryV2(QVariant value, QgsSymbolV2* symbol /Transfer/, QString label);
155
QgsRendererCategoryV2(const QgsRendererCategoryV2& cat);
157
~QgsRendererCategoryV2();
159
QVariant value() const;
160
QgsSymbolV2* symbol();
161
QString label() const;
163
void setSymbol(QgsSymbolV2* s /Transfer/);
164
void setLabel(QString label);
169
typedef QList<QgsRendererCategoryV2> QgsCategoryList;
171
class QgsCategorizedSymbolRendererV2 : QgsFeatureRendererV2
174
#include <qgscategorizedsymbolrendererv2.h>
179
QgsCategorizedSymbolRendererV2(QString attrName = QString(), QgsCategoryList categories = QgsCategoryList());
181
virtual ~QgsCategorizedSymbolRendererV2();
183
virtual QgsSymbolV2* symbolForFeature(QgsFeature& feature);
185
virtual void startRender(QgsRenderContext& context, const QgsVectorLayer * );
187
virtual void stopRender(QgsRenderContext& context);
189
virtual QList<QString> usedAttributes();
191
virtual QString dump();
193
virtual QgsFeatureRendererV2* clone() /Factory/;
195
const QgsCategoryList& categories();
197
//! return index of category with specified value (-1 if not found)
198
int categoryIndexForValue(QVariant val);
200
bool updateCategorySymbol(int catIndex, QgsSymbolV2* symbol /Transfer/);
201
bool updateCategoryLabel(int catIndex, QString label);
203
bool deleteCategory(int catIndex);
204
void deleteAllCategories();
206
//! create a renderer from XML element
207
static QgsFeatureRendererV2* load(QDomElement& symbologyElem) /Factory/;
209
//! store renderer info to XML element
210
virtual QDomElement save(QDomDocument& doc);
212
//! return a list of symbology items for the legend
213
virtual QgsLegendSymbologyList legendSymbologyItems(QSize iconSize);
215
QString classAttribute() const;
216
void setClassAttribute(QString attr);
218
QgsSymbolV2* sourceSymbol();
219
void setSourceSymbol(QgsSymbolV2* sym /Transfer/);
221
QgsVectorColorRampV2* sourceColorRamp();
222
void setSourceColorRamp(QgsVectorColorRampV2* ramp /Transfer/);
226
QgsSymbolV2* symbolForValue(QVariant value);
231
class QgsRendererRangeV2
234
#include <qgsgraduatedsymbolrendererv2.h>
238
QgsRendererRangeV2(double lowerValue, double upperValue, QgsSymbolV2* symbol /Transfer/, QString label);
239
QgsRendererRangeV2(const QgsRendererRangeV2& range);
241
~QgsRendererRangeV2();
243
double lowerValue() const;
244
double upperValue() const;
246
QgsSymbolV2* symbol() const;
247
QString label() const;
249
void setSymbol(QgsSymbolV2* s /Transfer/);
250
void setLabel(QString label);
255
typedef QList<QgsRendererRangeV2> QgsRangeList;
257
class QgsGraduatedSymbolRendererV2 : QgsFeatureRendererV2
260
#include <qgsgraduatedsymbolrendererv2.h>
264
QgsGraduatedSymbolRendererV2(QString attrNum = QString(), QgsRangeList ranges = QgsRangeList());
266
virtual ~QgsGraduatedSymbolRendererV2();
268
virtual QgsSymbolV2* symbolForFeature(QgsFeature& feature);
270
virtual void startRender(QgsRenderContext& context, const QgsVectorLayer * );
272
virtual void stopRender(QgsRenderContext& context);
274
virtual QList<QString> usedAttributes();
276
virtual QString dump();
278
virtual QgsFeatureRendererV2* clone() /Factory/;
280
QString classAttribute() const;
281
void setClassAttribute(QString attr);
283
const QgsRangeList& ranges();
285
bool updateRangeSymbol(int rangeIndex, QgsSymbolV2* symbol /Transfer/);
286
bool updateRangeLabel(int rangeIndex, QString label);
296
void setMode(Mode mode);
298
static QgsGraduatedSymbolRendererV2* createRenderer(
299
QgsVectorLayer* vlayer,
304
QgsVectorColorRampV2* ramp);
306
//! create a renderer from XML element
307
static QgsFeatureRendererV2* load(QDomElement& symbologyElem) /Factory/;
309
//! store renderer info to XML element
310
virtual QDomElement save(QDomDocument& doc);
312
//! return a list of symbology items for the legend
313
virtual QgsLegendSymbologyList legendSymbologyItems(QSize iconSize);
315
QgsSymbolV2* sourceSymbol();
316
void setSourceSymbol(QgsSymbolV2* sym /Transfer/);
318
QgsVectorColorRampV2* sourceColorRamp();
319
void setSourceColorRamp(QgsVectorColorRampV2* ramp /Transfer/);
322
QgsSymbolV2* symbolForValue(double value);
327
class QgsSymbolLayerV2
330
#include <qgssymbollayerv2.h>
333
%ConvertToSubClassCode
334
switch (sipCpp->type())
336
case QgsSymbolV2::Marker: sipClass = sipClass_QgsMarkerSymbolLayerV2; break;
337
case QgsSymbolV2::Line: sipClass = sipClass_QgsLineSymbolLayerV2; break;
338
case QgsSymbolV2::Fill: sipClass = sipClass_QgsFillSymbolLayerV2; break;
339
default: sipClass = 0; break;
346
virtual void setColor(const QColor& color);
347
virtual QColor color() const;
349
virtual ~QgsSymbolLayerV2();
351
virtual QString layerType() const = 0;
353
virtual void startRender(QgsRenderContext& context) = 0;
354
virtual void stopRender(QgsRenderContext& context) = 0;
356
virtual QgsSymbolLayerV2* clone() const = 0 /Factory/;
358
virtual QgsStringMap properties() const = 0;
360
virtual void drawPreviewIcon(QPainter* painter, QSize size) = 0;
362
virtual QgsSymbolV2* subSymbol();
363
virtual bool setSubSymbol(QgsSymbolV2* symbol /Transfer/);
365
QgsSymbolV2::SymbolType type() const;
367
void setLocked(bool locked);
368
bool isLocked() const;
370
// used only with rending with symbol levels is turned on (0 = first pass, 1 = second, ...)
371
void setRenderingPass(int renderingPass);
372
int renderingPass() const;
375
QgsSymbolLayerV2(QgsSymbolV2::SymbolType type, bool locked = false);
381
class QgsMarkerSymbolLayerV2 : QgsSymbolLayerV2
384
#include <qgssymbollayerv2.h>
388
virtual void renderPoint(const QPointF& point, QgsRenderContext& context) = 0;
390
void drawPreviewIcon(QPainter* painter, QSize size);
392
void setAngle(double angle);
393
double angle() const;
395
void setSize(double size);
399
QgsMarkerSymbolLayerV2(bool locked = false);
403
class QgsLineSymbolLayerV2 : QgsSymbolLayerV2
406
#include <qgssymbollayerv2.h>
410
virtual void renderPolyline(const QPolygonF& points, QgsRenderContext& context) = 0;
412
void setWidth(double width);
413
double width() const;
415
void drawPreviewIcon(QPainter* painter, QSize size);
418
QgsLineSymbolLayerV2(bool locked = false);
422
class QgsFillSymbolLayerV2 : QgsSymbolLayerV2
425
#include <qgssymbollayerv2.h>
429
virtual void renderPolygon(const QPolygonF& points, QList<QPolygonF>* rings, QgsRenderContext& context) = 0;
431
void drawPreviewIcon(QPainter* painter, QSize size);
434
QgsFillSymbolLayerV2(bool locked = false);
441
typedef QList<QgsSymbolLayerV2*> QgsSymbolLayerV2List;
446
#include <qgssymbolv2.h>
449
%ConvertToSubClassCode
450
switch (sipCpp->type())
452
case QgsSymbolV2::Marker: sipClass = sipClass_QgsMarkerSymbolV2; break;
453
case QgsSymbolV2::Line: sipClass = sipClass_QgsLineSymbolV2; break;
454
case QgsSymbolV2::Fill: sipClass = sipClass_QgsFillSymbolV2; break;
455
default: sipClass = 0; break;
468
virtual ~QgsSymbolV2();
470
//! return new default symbol for specified geometry type
471
static QgsSymbolV2* defaultSymbol(QGis::GeometryType geomType) /Factory/;
473
SymbolType type() const;
475
// symbol layers handling
477
QgsSymbolLayerV2* symbolLayer(int layer);
479
int symbolLayerCount();
481
//! insert symbol layer to specified index
482
bool insertSymbolLayer(int index, QgsSymbolLayerV2* layer /Transfer/);
484
//! append symbol layer at the end of the list
485
bool appendSymbolLayer(QgsSymbolLayerV2* layer /Transfer/);
487
//! delete symbol layer at specified index
488
bool deleteSymbolLayer(int index);
490
//! remove symbol layer from the list and return pointer to it
491
QgsSymbolLayerV2* takeSymbolLayer(int index) /TransferBack/;
493
//! delete layer at specified index and set a new one
494
bool changeSymbolLayer(int index, QgsSymbolLayerV2* layer /Transfer/);
497
void startRender(QgsRenderContext& context);
498
void stopRender(QgsRenderContext& context);
500
void setColor(const QColor& color);
503
void drawPreviewIcon(QPainter* painter, QSize size);
505
QImage bigSymbolPreviewImage();
509
virtual QgsSymbolV2* clone() const = 0 /Factory/;
512
QgsSymbolV2(SymbolType type, QgsSymbolLayerV2List layers /Transfer/); // can't be instantiated
519
class QgsMarkerSymbolV2 : QgsSymbolV2
522
#include <qgssymbolv2.h>
526
QgsMarkerSymbolV2(QgsSymbolLayerV2List layers /Transfer/ = QgsSymbolLayerV2List());
528
void setAngle(double angle);
531
void setSize(double size);
534
void renderPoint(const QPointF& point, QgsRenderContext& context, int layer = -1);
536
virtual QgsSymbolV2* clone() const /Factory/;
541
class QgsLineSymbolV2 : QgsSymbolV2
544
#include <qgssymbolv2.h>
548
QgsLineSymbolV2(QgsSymbolLayerV2List layers /Transfer/ = QgsSymbolLayerV2List());
550
void setWidth(double width);
553
void renderPolyline(const QPolygonF& points, QgsRenderContext& context, int layer = -1);
555
virtual QgsSymbolV2* clone() const /Factory/;
560
class QgsFillSymbolV2 : QgsSymbolV2
563
#include <qgssymbolv2.h>
567
QgsFillSymbolV2(QgsSymbolLayerV2List layers /Transfer/ = QgsSymbolLayerV2List());
569
void renderPolygon(const QPolygonF& points, QList<QPolygonF>* rings, QgsRenderContext& context, int layer = -1);
571
virtual QgsSymbolV2* clone() const /Factory/;
576
typedef QMap<QString, QString> QgsStringMap;
580
class QgsSymbolLayerV2Metadata
583
#include <qgssymbollayerv2registry.h>
587
/** construct invalid metadata */
588
QgsSymbolLayerV2Metadata();
590
/** construct metadata */
592
//QgsSymbolLayerV2Metadata(QString name, QgsSymbolV2::SymbolType type,
593
// QgsSymbolLayerV2CreateFunc pfCreate,
594
// QgsSymbolLayerV2WidgetFunc pfWidget);
596
QString name() const;
597
QgsSymbolV2::SymbolType type();
598
// TODO QgsSymbolLayerV2CreateFunc createFunction() const { return mCreateFunc; }
599
// TODO QgsSymbolLayerV2WidgetFunc widgetFunction() const { return mWidgetFunc; }
605
class QgsSymbolLayerV2Registry
608
#include <qgssymbollayerv2registry.h>
613
//! return the single instance of this class (instantiate it if not exists)
614
static QgsSymbolLayerV2Registry* instance();
616
//! return metadata for specified symbol layer
617
QgsSymbolLayerV2Metadata symbolLayerMetadata(QString name) const;
619
//! register a new symbol layer type
620
void addSymbolLayerType(const QgsSymbolLayerV2Metadata& metadata);
622
//! create a new instance of symbol layer given symbol layer name and properties
623
QgsSymbolLayerV2* createSymbolLayer(QString name, const QgsStringMap& properties) const /Factory/;
625
//! return a list of available symbol layers for a specified symbol type
626
QStringList symbolLayersForType(QgsSymbolV2::SymbolType type);
628
//! create a new instance of symbol layer for specified symbol type with default settings
629
static QgsSymbolLayerV2* defaultSymbolLayer(QgsSymbolV2::SymbolType type) /Factory/;
632
QgsSymbolLayerV2Registry();
641
#include <qgsstylev2.h>
649
//! return default application-wide style
650
static QgsStyleV2* defaultStyle();
652
//! remove all contents of the style
655
//! add symbol to style. takes symbol's ownership
656
bool addSymbol(QString name, QgsSymbolV2* symbol);
658
//! remove symbol from style (and delete it)
659
bool removeSymbol(QString name);
661
//! return a NEW copy of symbol
662
QgsSymbolV2* symbol(QString name);
664
//! return a const pointer to a symbol (doesn't create new instance)
665
const QgsSymbolV2* symbolRef(QString name) const;
667
//! return count of symbols in style
670
//! return a list of names of symbols
671
QStringList symbolNames();
674
//! add color ramp to style. takes ramp's ownership
675
bool addColorRamp(QString name, QgsVectorColorRampV2* colorRamp);
677
//! remove color ramp from style (and delete it)
678
bool removeColorRamp(QString name);
680
//! return a NEW copy of color ramp
681
QgsVectorColorRampV2* colorRamp(QString name);
683
//! return a const pointer to a symbol (doesn't create new instance)
684
const QgsVectorColorRampV2* colorRampRef(QString name) const;
686
//! return count of color ramps
687
int colorRampCount();
689
//! return a list of names of color ramps
690
QStringList colorRampNames();
693
//! load a file into the style
694
bool load(QString filename);
696
//! save style into a file (will use current filename if empty string is passed)
697
bool save(QString filename = QString());
699
//! return last error from load/save operation
700
QString errorString();
702
//! return current file name of the style
709
class QgsVectorColorRampV2
712
#include <qgsvectorcolorrampv2.h>
716
virtual ~QgsVectorColorRampV2();
718
virtual QColor color(double value) const = 0;
720
virtual QString type() const = 0;
722
virtual QgsVectorColorRampV2* clone() const = 0;
724
virtual QgsStringMap properties() const = 0;
730
class QgsSymbologyV2Conversion
733
#include <qgssymbologyv2conversion.h>
738
//! return a symbol in new symbology as close as possible to old symbol
739
//! @note not all properties will be preserved
740
static QgsSymbolV2* symbolV1toV2(const QgsSymbol* s) /Factory/;
742
//! return a symbol in old symbology as close as possible to new symbol
743
//! @note not all properties will be preserved
744
static QgsSymbol* symbolV2toV1(QgsSymbolV2* s) /Factory/;
746
//! convert layer from old symbology to new symbology
747
//! @note not all properties will be preserved
748
static void rendererV1toV2(QgsVectorLayer* layer);
750
//! convert layer from new symbology to old symbology
751
//! @note not all properties will be preserved
752
static void rendererV2toV1(QgsVectorLayer* layer);