QGIS/python/core/symbology-ng/qgsgraduatedsymbolrendererv2.sip

253 lines
8.5 KiB
Plaintext

class QgsRendererRangeV2
{
%TypeHeaderCode
#include <qgsgraduatedsymbolrendererv2.h>
%End
public:
QgsRendererRangeV2();
QgsRendererRangeV2( double lowerValue, double upperValue, QgsSymbolV2* symbol, QString label, bool render = true );
QgsRendererRangeV2( const QgsRendererRangeV2& range );
// default dtor is ok
~QgsRendererRangeV2();
double lowerValue() const;
double upperValue() const;
QgsSymbolV2* symbol() const;
QString label() const;
void setSymbol( QgsSymbolV2* s /Transfer/ );
void setLabel( QString label );
void setLowerValue( double lowerValue );
void setUpperValue( double upperValue );
// @note added in 2.5
bool renderState() const;
void setRenderState( bool render );
// debugging
QString dump() const;
void toSld( QDomDocument& doc, QDomElement &element, QgsStringMap props ) const;
protected:
// for cpy+swap idiom
void swap( QgsRendererRangeV2 & other );
};
typedef QList<QgsRendererRangeV2> QgsRangeList;
class QgsRendererRangeV2LabelFormat
{
%TypeHeaderCode
#include <qgsgraduatedsymbolrendererv2.h>
%End
public:
QgsRendererRangeV2LabelFormat();
QgsRendererRangeV2LabelFormat( QString format, int decimalPlaces=4, bool trimTrailingZeroes=false );
bool operator==( const QgsRendererRangeV2LabelFormat & other ) const;
bool operator!=( const QgsRendererRangeV2LabelFormat & other ) const;
QString format() const;
void setFormat( QString format );
int decimalPlaces() const;
void setDecimalPlaces( int decimalPlaces );
bool trimTrailingZeroes() const;
void setTrimTrailingZeroes( bool trimTrailingZeroes );
//! @note labelForLowerUpper in python bindings
QString labelForRange( double lower, double upper ) /PyName=labelForLowerUpper/;
QString labelForRange( const QgsRendererRangeV2 &range );
void setFromDomElement( QDomElement &element );
void saveToDomElement( QDomElement &element );
};
class QgsGraduatedSymbolRendererV2 : QgsFeatureRendererV2
{
%TypeHeaderCode
#include <qgsgraduatedsymbolrendererv2.h>
%End
public:
QgsGraduatedSymbolRendererV2( QString attrName = QString(), QgsRangeList ranges = QgsRangeList() );
virtual ~QgsGraduatedSymbolRendererV2();
virtual QgsSymbolV2* symbolForFeature( QgsFeature& feature );
virtual QgsSymbolV2* originalSymbolForFeature( QgsFeature& feature );
virtual void startRender( QgsRenderContext& context, const QgsFields& fields );
virtual void stopRender( QgsRenderContext& context );
virtual QList<QString> usedAttributes();
virtual QString dump() const;
virtual QgsFeatureRendererV2* clone() const /Factory/;
virtual void toSld( QDomDocument& doc, QDomElement &element ) const;
//! returns bitwise OR-ed capabilities of the renderer
//! \note added in 2.0
virtual int capabilities();
virtual QgsSymbolV2List symbols();
QString classAttribute() const;
void setClassAttribute( QString attr );
const QgsRangeList& ranges();
bool updateRangeSymbol( int rangeIndex, QgsSymbolV2* symbol /Transfer/ );
bool updateRangeLabel( int rangeIndex, QString label );
bool updateRangeUpperValue( int rangeIndex, double value );
bool updateRangeLowerValue( int rangeIndex, double value );
//! @note added in 2.5
bool updateRangeRenderState( int rangeIndex, bool render );
void addClass( QgsSymbolV2* symbol );
//! @note available in python bindings as addClassRange
void addClass( QgsRendererRangeV2 range ) /PyName=addClassRange/;
//! @note available in python bindings as addClassLowerUpper
void addClass( double lower, double upper ) /PyName=addClassLowerUpper/;
void deleteClass( int idx );
void deleteAllClasses();
//! Moves the category at index position from to index position to.
void moveClass( int from, int to );
void sortByValue( Qt::SortOrder order = Qt::AscendingOrder );
void sortByLabel( Qt::SortOrder order = Qt::AscendingOrder );
enum Mode
{
EqualInterval,
Quantile,
Jenks,
StdDev,
Pretty,
Custom
};
Mode mode() const;
void setMode( Mode mode );
//! Recalculate classes for a layer
//! @param vlayer The layer being rendered (from which data values are calculated)
//! @param mode The calculation mode
//! @param nclasses The number of classes to calculate (approximate for some modes)
//! @note Added in 2.6
void updateClasses( QgsVectorLayer *vlayer, Mode mode, int nclasses );
//! Evaluates the data expression and returns the list of values from the layer
//! @param vlayer The layer for which to evaluate the expression
//! @note Added in 2.6
QList<double> getDataValues( QgsVectorLayer *vlayer );
//! Return the label format used to generate default classification labels
//! @note Added in 2.6
const QgsRendererRangeV2LabelFormat &labelFormat();
//! Set the label format used to generate default classification labels
//! @param labelFormat The string appended to classification labels
//! @param updateRanges If true then ranges ending with the old unit string are updated to the new.
//! @note Added in 2.6
void setLabelFormat( const QgsRendererRangeV2LabelFormat &labelFormat, bool updateRanges=true );
//! Reset the label decimal places to a numberbased on the minimum class interval
//! @param updateRanges if true then ranges currently using the default label will be updated
//! @note Added in 2.6
void calculateLabelDecimalPlaces( bool updateRanges=true );
static QgsGraduatedSymbolRendererV2* createRenderer(
QgsVectorLayer* vlayer,
QString attrName,
int classes,
Mode mode,
QgsSymbolV2* symbol /Transfer/,
QgsVectorColorRampV2* ramp /Transfer/,
bool inverted = false,
QgsRendererRangeV2LabelFormat labelFormat=QgsRendererRangeV2LabelFormat()
);
//! create renderer from XML element
static QgsFeatureRendererV2* create( QDomElement& element ) /Factory/;
//! store renderer info to XML element
virtual QDomElement save( QDomDocument& doc );
//! return a list of symbology items for the legend
virtual QgsLegendSymbologyList legendSymbologyItems( QSize iconSize );
//! return a list of item text / symbol
//! @note: this method was added in version 1.5
//! @note not available in python bindings
// virtual QgsLegendSymbolList legendSymbolItems();
QgsSymbolV2* sourceSymbol();
void setSourceSymbol( QgsSymbolV2* sym /Transfer/ );
QgsVectorColorRampV2* sourceColorRamp();
void setSourceColorRamp( QgsVectorColorRampV2* ramp /Transfer/ );
//! @note added in 2.1
bool invertedColorRamp();
void setInvertedColorRamp( bool inverted );
/** Update the color ramp used. Also updates all symbols colors.
* Doesn't alter current breaks.
*/
void updateColorRamp( QgsVectorColorRampV2* ramp /Transfer/ = 0, bool inverted = false );
/** Update all the symbols but leave breaks and colors. */
void updateSymbols( QgsSymbolV2* sym /Transfer/ );
//! @note added in 1.6
void setRotationField( QString fieldOrExpression );
//! @note added in 1.6
QString rotationField() const;
//! @note added in 1.6
void setSizeScaleField( QString fieldOrExpression );
//! @note added in 1.6
QString sizeScaleField() const;
//! @note added in 2.0
void setScaleMethod( QgsSymbolV2::ScaleMethod scaleMethod );
//! @note added in 2.0
QgsSymbolV2::ScaleMethod scaleMethod() const;
//! items of symbology items in legend should be checkable
// @note added in 2.5
virtual bool legendSymbolItemsCheckable() const;
//! item in symbology was checked
// @note added in 2.5
virtual bool legendSymbolItemChecked( QString key );
//! item in symbology was checked
// @note added in 2.5
virtual void checkLegendSymbolItem( QString key, bool state = true );
//! If supported by the renderer, return classification attribute for the use in legend
//! @note added in 2.6
virtual QString legendClassificationAttribute();
//! creates a QgsGraduatedSymbolRendererV2 from an existing renderer.
//! @note added in 2.5
//! @returns a new renderer if the conversion was possible, otherwise 0.
static QgsGraduatedSymbolRendererV2* convertFromRenderer( const QgsFeatureRendererV2 *renderer ) /Factory/;
protected:
QgsSymbolV2* symbolForValue( double value );
private:
QgsGraduatedSymbolRendererV2( const QgsGraduatedSymbolRendererV2 & );
QgsGraduatedSymbolRendererV2 & operator=( const QgsGraduatedSymbolRendererV2 & );
};