15 #ifndef QGSDIAGRAMRENDERER_H 16 #define QGSDIAGRAMRENDERER_H 18 #include "qgis_core.h" 25 #include <QDomDocument> 81 MapOrientation = 1 << 4,
181 double zIndex()
const {
return mZIndex; }
280 void readXml(
const QDomElement &elem );
286 void writeXml( QDomElement &layerElem, QDomDocument &doc )
const;
337 LinePlacementFlags mPlacementFlags = OnLine;
347 double mZIndex = 0.0;
350 bool mObstacle =
false;
353 double mDistance = 0.0;
359 bool mShowAll =
true;
364 static void initPropertyDefinitions();
451 double penWidth = 0.0;
454 double barWidth = 5.0;
457 double opacity = 1.0;
459 bool scaleByArea =
true;
465 double rotationOffset = 270;
467 bool scaleBasedVisibility =
false;
475 double maximumScale = 0;
483 double minimumScale = 0;
486 double minimumSize = 0.0;
567 void setDirection(
Direction direction );
611 bool showAxis()
const;
621 void setShowAxis(
bool showAxis );
650 bool mShowAxis =
false;
651 std::unique_ptr< QgsLineSymbol > mAxisLineSymbol;
652 std::unique_ptr< QgsPaintEffect > mPaintEffect;
688 if ( sipCpp->rendererName() == QStringLiteral(
"SingleCategory" ) )
689 sipType = sipType_QgsSingleCategoryDiagramRenderer;
690 else if ( sipCpp->rendererName() == QStringLiteral(
"LinearlyInterpolated" ) )
691 sipType = sipType_QgsLinearlyInterpolatedDiagramRenderer;
713 virtual QString rendererName()
const = 0;
716 virtual QList<QString> diagramAttributes()
const = 0;
734 virtual QList<QgsDiagramSettings> diagramSettings()
const = 0;
748 virtual void writeXml( QDomElement &layerElem, QDomDocument &doc,
const QgsReadWriteContext &context )
const = 0;
788 void convertSizeToMapUnits( QSizeF &size,
const QgsRenderContext &context )
const;
791 static int dpiPaintDevice(
const QPainter * );
805 void _writeXml( QDomElement &rendererElem, QDomDocument &doc,
const QgsReadWriteContext &context )
const;
811 bool mShowAttributeLegend =
true;
827 QString
rendererName()
const override {
return QStringLiteral(
"SingleCategory" ); }
833 QList<QgsDiagramSettings> diagramSettings()
const override;
836 void writeXml( QDomElement &layerElem, QDomDocument &doc,
const QgsReadWriteContext &context )
const override;
862 QList<QgsDiagramSettings> diagramSettings()
const override;
866 QList<QString> diagramAttributes()
const override;
870 QString
rendererName()
const override {
return QStringLiteral(
"LinearlyInterpolated" ); }
872 void setLowerValue(
double val ) { mInterpolationSettings.lowerValue = val; }
873 double lowerValue()
const {
return mInterpolationSettings.lowerValue; }
875 void setUpperValue(
double val ) { mInterpolationSettings.upperValue = val; }
876 double upperValue()
const {
return mInterpolationSettings.upperValue; }
878 void setLowerSize( QSizeF s ) { mInterpolationSettings.lowerSize = s; }
879 QSizeF
lowerSize()
const {
return mInterpolationSettings.lowerSize; }
881 void setUpperSize( QSizeF s ) { mInterpolationSettings.upperSize = s; }
882 QSizeF
upperSize()
const {
return mInterpolationSettings.upperSize; }
905 void writeXml( QDomElement &layerElem, QDomDocument &doc,
const QgsReadWriteContext &context )
const override;
937 #endif // QGSDIAGRAMRENDERER_H void setClassificationAttributeIsExpression(bool isExpression)
The class is used as a container of context for various read/write operations on other objects...
Distance to diagram from feature.
Property
Data definable properties.
void setClassificationAttributeExpression(const QString &expression)
bool isObstacle() const
Returns whether the feature associated with a diagram acts as an obstacle for other labels or diagram...
Diagram background color.
const QgsMapUnitScale & spacingMapUnitScale() const
Returns the map unit scale for the content spacing.
QgsCoordinateTransform coordinateTransform() const
Returns the coordinate transform associated with the layer, or an invalid transform if no transformat...
Renders the diagrams for all features with the same settings.
QgsUnitTypes::RenderUnit spacingUnit() const
Returns the units for the content spacing.
QList< QString > categoryAttributes
bool classificationAttributeIsExpression
QgsDiagramRenderer * renderer()
Returns the diagram renderer associated with the layer.
int priority() const
Returns the diagram priority.
A set of features which influence the labeling process.
QgsPropertyCollection & dataDefinedProperties()
Returns a reference to the diagram's property collection, used for data defined overrides.
Base class for visual effects which can be applied to QPicture drawings.
Angle offset for pie diagram.
void setZIndex(double index)
Sets the diagram z-index.
void setSpacingMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the content spacing.
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
Whether diagram features act as obstacles for other diagrams/labels.
A line symbol type, for rendering LineString and MultiLineString geometries.
QString classificationAttributeExpression() const
bool classificationAttributeIsExpression() const
As part of the API refactoring and improvements which landed in the Processing API was substantially reworked from the x version This was done in order to allow much of the underlying Processing framework to be ported into c
void setDataDefinedProperties(const QgsPropertyCollection &collection)
Sets the diagram's property collection, used for data defined overrides.
Perform transforms between map coordinates and device coordinates.
Z-index for diagram ordering.
QgsDiagram * diagram() const
QList< QString > diagramAttributes() const override
Returns attribute indices needed for diagram rendering.
void setShowAllDiagrams(bool showAllDiagrams)
Sets whether the layer should show all diagrams, including overlapping diagrams.
void setDiagramSettings(const QgsDiagramSettings &s)
Evaluates and returns the diagram settings relating to a diagram for a specific feature.
void setAttributeLegend(bool enabled)
Sets whether the renderer will show legend items for diagram attributes.
QString classificationAttributeExpression
double lowerValue() const
double upperValue() const
void setLowerValue(double val)
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
QString classificationField() const
Returns the field name used for interpolating the diagram size.
QgsMapUnitScale sizeScale
Diagram size unit scale.
void setSpacingUnit(QgsUnitTypes::RenderUnit unit)
Sets the unit for the content spacing.
DiagramOrientation
Orientation of histogram.
double spacing() const
Returns the spacing between diagram contents.
void setClassificationField(const QString &field)
Sets the field name used for interpolating the diagram size.
Y-coordinate data defined diagram position.
Whether to show the diagram.
double zIndex() const
Returns the diagram z-index.
std::unique_ptr< QgsDiagram > mDiagram
Reference to the object that does the real diagram rendering.
const QgsPropertyCollection & dataDefinedProperties() const
Returns a reference to the diagram's property collection, used for data defined overrides.
QString rendererName() const override
Base class for all diagram types.
QMap< int, QgsPropertyDefinition > QgsPropertiesDefinition
Definition of available properties.
LinePlacementFlags linePlacementFlags() const
Returns the diagram placement flags.
const QgsDiagramRenderer * renderer() const
Returns the diagram renderer associated with the layer.
void setUpperSize(QSizeF s)
Stores the settings for rendering of all diagrams for a layer.
QString rendererName() const override
Direction
Angular directions.
void setPriority(int value)
Sets the diagram priority.
Placement placement() const
Returns the diagram placement.
double distance() const
Returns the distance between the diagram and the feature (in mm).
Additional diagram settings for interpolated size rendering.
Contains information about the context of a rendering operation.
X-coordinate data defined diagram position.
bool attributeLegend() const
Returns true if renderer will show legend items for diagram attributes.
Diagram priority (between 0 and 10)
void setLinePlacementFlags(LinePlacementFlags flags)
Sets the the diagram placement flags.
Struct for storing maximum and minimum scales for measurements in map units.
QString classificationField
Name of the field for classification.
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
void setPlacement(Placement value)
Sets the diagram placement.
The QgsLegendRendererItem class is abstract interface for legend items returned from QgsMapLayerLegen...
A grouped map of multiple QgsProperty objects, each referenced by a integer key value.
QList< QString > categoryLabels
Whether the diagram should always be shown, even if it overlaps other diagrams/labels.
LinePlacementFlag
Line placement flags for controlling line based placements.
QgsMapUnitScale lineSizeScale
Line unit scale.
Counter-clockwise orientation.
void setDiagramSettings(const QgsDiagramSettings &s)
Represents a vector layer which manages a vector based data sets.
Object that keeps configuration of appearance of marker symbol's data-defined size in legend...
QList< QColor > categoryColors
void setLowerSize(QSizeF s)
Stores the settings for rendering a single diagram.
void setSpacing(double spacing)
Sets the spacing between diagram contents.
RenderUnit
Rendering size units.
bool showAllDiagrams() const
Returns whether the layer should show all diagrams, including overlapping diagrams.
Layer tree node points to a map layer.
void setIsObstacle(bool isObstacle)
Sets whether the feature associated with a diagram acts as an obstacle for other labels or diagrams...
void setDistance(double distance)
Sets the distance between the diagram and the feature.
void setUpperValue(double val)