~ubuntu-branches/ubuntu/natty/qgis/natty

« back to all changes in this revision

Viewing changes to src/core/symbology-ng/qgsgraduatedsymbolrendererv2.h

  • Committer: Bazaar Package Importer
  • Author(s): Johan Van de Wauw
  • Date: 2010-07-11 20:23:24 UTC
  • mfrom: (3.1.4 squeeze)
  • Revision ID: james.westby@ubuntu.com-20100711202324-5ktghxa7hracohmr
Tags: 1.4.0+12730-3ubuntu1
* Merge from Debian unstable (LP: #540941).
* Fix compilation issues with QT 4.7
* Add build-depends on libqt4-webkit-dev 

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
 
 
12
    ~QgsRendererRangeV2();
 
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;
 
30
    QgsSymbolV2* mSymbol;
 
31
    QString mLabel;
 
32
};
 
33
 
 
34
typedef QList<QgsRendererRangeV2> QgsRangeList;
 
35
 
 
36
class QgsVectorLayer;
 
37
class QgsVectorColorRampV2;
 
38
 
 
39
class CORE_EXPORT QgsGraduatedSymbolRendererV2 : public QgsFeatureRendererV2
 
40
{
 
41
  public:
 
42
    QgsGraduatedSymbolRendererV2( QString attrName = QString(), QgsRangeList ranges = QgsRangeList() );
 
43
 
 
44
    virtual ~QgsGraduatedSymbolRendererV2();
 
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
    {
 
75
      EqualInterval,
 
76
      Quantile,
 
77
      Custom
 
78
    };
 
79
 
 
80
    Mode mode() const { return mMode; }
 
81
    void setMode( Mode mode ) { mMode = mode; }
 
82
 
 
83
    static QgsGraduatedSymbolRendererV2* createRenderer(
 
84
      QgsVectorLayer* vlayer,
 
85
      QString attrName,
 
86
      int classes,
 
87
      Mode mode,
 
88
      QgsSymbolV2* symbol,
 
89
      QgsVectorColorRampV2* ramp );
 
90
 
 
91
    //! create renderer from XML element
 
92
    static QgsFeatureRendererV2* create( QDomElement& element );
 
93
 
 
94
    //! store renderer info to XML element
 
95
    virtual QDomElement save( QDomDocument& doc );
 
96
 
 
97
    //! return a list of symbology items for the legend
 
98
    virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize );
 
99
 
 
100
    QgsSymbolV2* sourceSymbol();
 
101
    void setSourceSymbol( QgsSymbolV2* sym );
 
102
 
 
103
    QgsVectorColorRampV2* sourceColorRamp();
 
104
    void setSourceColorRamp( QgsVectorColorRampV2* ramp );
 
105
 
 
106
  protected:
 
107
    QString mAttrName;
 
108
    QgsRangeList mRanges;
 
109
    Mode mMode;
 
110
    QgsSymbolV2* mSourceSymbol;
 
111
    QgsVectorColorRampV2* mSourceColorRamp;
 
112
 
 
113
    //! attribute index (derived from attribute name in startRender)
 
114
    int mAttrNum;
 
115
 
 
116
    QgsSymbolV2* symbolForValue( double value );
 
117
};
 
118
 
 
119
#endif // QGSGRADUATEDSYMBOLRENDERERV2_H