Quantum GIS API Documentation  1.7.5-Wroclaw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
qgsgraduatedsymbolrendererv2.h
Go to the documentation of this file.
1 #ifndef QGSGRADUATEDSYMBOLRENDERERV2_H
2 #define QGSGRADUATEDSYMBOLRENDERERV2_H
3 
4 #include "qgsrendererv2.h"
5 
6 class CORE_EXPORT QgsRendererRangeV2
7 {
8  public:
9  QgsRendererRangeV2( double lowerValue, double upperValue, QgsSymbolV2* symbol, QString label );
10  QgsRendererRangeV2( const QgsRendererRangeV2& range );
11 
13 
14  double lowerValue() const;
15  double upperValue() const;
16 
17  QgsSymbolV2* symbol() const;
18  QString label() const;
19 
20  void setSymbol( QgsSymbolV2* s );
21  void setLabel( QString label );
22  void setLowerValue( double lowerValue );
23  void setUpperValue( double upperValue );
24 
25  // debugging
26  QString dump();
27 
28  protected:
29  double mLowerValue, mUpperValue;
31  QString mLabel;
32 };
33 
34 typedef QList<QgsRendererRangeV2> QgsRangeList;
35 
36 class QgsVectorLayer;
38 
40 {
41  public:
42  QgsGraduatedSymbolRendererV2( QString attrName = QString(), QgsRangeList ranges = QgsRangeList() );
43 
45 
46  virtual QgsSymbolV2* symbolForFeature( QgsFeature& feature );
47 
48  virtual void startRender( QgsRenderContext& context, const QgsVectorLayer *vlayer );
49 
50  virtual void stopRender( QgsRenderContext& context );
51 
52  virtual QList<QString> usedAttributes();
53 
54  virtual QString dump();
55 
56  virtual QgsFeatureRendererV2* clone();
57 
58  virtual QgsSymbolV2List symbols();
59 
60  QString classAttribute() const { return mAttrName; }
61  void setClassAttribute( QString attr ) { mAttrName = attr; }
62 
63  const QgsRangeList& ranges() { return mRanges; }
64 
65  bool updateRangeSymbol( int rangeIndex, QgsSymbolV2* symbol );
66  bool updateRangeLabel( int rangeIndex, QString label );
67  bool updateRangeUpperValue( int rangeIndex, double value );
68  bool updateRangeLowerValue( int rangeIndex, double value );
69 
70  void addClass( QgsSymbolV2* symbol );
71  void deleteClass( int idx );
72 
73  enum Mode
74  {
80  Custom
81  };
82 
83  Mode mode() const { return mMode; }
84  void setMode( Mode mode ) { mMode = mode; }
85 
86  static QgsGraduatedSymbolRendererV2* createRenderer(
87  QgsVectorLayer* vlayer,
88  QString attrName,
89  int classes,
90  Mode mode,
91  QgsSymbolV2* symbol,
92  QgsVectorColorRampV2* ramp );
93 
95  static QgsFeatureRendererV2* create( QDomElement& element );
96 
98  virtual QDomElement save( QDomDocument& doc );
99 
101  virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize );
102 
106 
107  QgsSymbolV2* sourceSymbol();
108  void setSourceSymbol( QgsSymbolV2* sym );
109 
110  QgsVectorColorRampV2* sourceColorRamp();
111  void setSourceColorRamp( QgsVectorColorRampV2* ramp );
112 
114  void setRotationField( QString fieldName ) { mRotationField = fieldName; }
116  QString rotationField() const { return mRotationField; }
117 
119  void setSizeScaleField( QString fieldName ) { mSizeScaleField = fieldName; }
121  QString sizeScaleField() const { return mSizeScaleField; }
122 
123  protected:
124  QString mAttrName;
129  QString mRotationField;
131 
133  int mAttrNum;
134  int mRotationFieldIdx, mSizeScaleFieldIdx;
135 
137 #if QT_VERSION < 0x40600
138  QMap<QgsSymbolV2*, QgsSymbolV2*> mTempSymbols;
139 #else
140  QHash<QgsSymbolV2*, QgsSymbolV2*> mTempSymbols;
141 #endif
142 
143  QgsSymbolV2* symbolForValue( double value );
144 };
145 
146 #endif // QGSGRADUATEDSYMBOLRENDERERV2_H