Skip to content

Commit

Permalink
Mark render features methods as throwing QgsCsException, to allow it …
Browse files Browse the repository at this point in the history
…to be nicely caught in Python
  • Loading branch information
nyalldawson committed May 21, 2019
1 parent 177ab83 commit e23ceaa
Show file tree
Hide file tree
Showing 14 changed files with 16 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ A renderer which draws points as a live heatmap

virtual void startRender( QgsRenderContext &context, const QgsFields &fields );

virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false );
virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) throw( QgsCsException );

virtual void stopRender( QgsRenderContext &context );

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Direct copies are forbidden. Use clone() instead.
virtual void startRender( QgsRenderContext &context, const QgsFields &fields );


virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false );
virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) throw( QgsCsException );

%Docstring
Renders a given feature.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ and diagrams for the layer. Selected features will also be drawn with a default
virtual QgsSymbol *originalSymbolForFeature( const QgsFeature &feature, QgsRenderContext &context ) const;


virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false );
virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) throw( QgsCsException );

virtual void stopRender( QgsRenderContext &context );

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ Constructor for QgsPointDistanceRenderer.

virtual void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap &props = QgsStringMap() ) const;

virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false );
virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) throw( QgsCsException );

virtual QSet<QString> usedAttributes( const QgsRenderContext &context ) const;

Expand Down
9 changes: 2 additions & 7 deletions python/core/auto_generated/symbology/qgsrenderer.sip.in
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ and generate a proper subclass.
:return: A copy of this renderer
%End

virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false );
virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) throw( QgsCsException );
%Docstring
Render a feature using this renderer in the given context.
Must be called between startRender() and stopRender() calls.
Expand Down Expand Up @@ -476,12 +476,7 @@ implementation does not use subrenderers and will always return ``None``.
protected:
QgsFeatureRenderer( const QString &type );

void renderFeatureWithSymbol( const QgsFeature &feature,
QgsSymbol *symbol,
QgsRenderContext &context,
int layer,
bool selected,
bool drawVertexMarker );
void renderFeatureWithSymbol( const QgsFeature &feature, QgsSymbol *symbol, QgsRenderContext &context, int layer, bool selected, bool drawVertexMarker ) throw( QgsCsException );
%Docstring
Render the ``feature`` with the ``symbol`` using ``context``.
Use ``layer`` to specify the symbol layer, ``selected`` to
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -453,7 +453,7 @@ Constructor for convenience. Creates a root rule and adds a default rule with sy
Returns symbol for current feature. Should not be used individually: there could be more symbols for a feature
%End

virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false );
virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) throw( QgsCsException );


virtual void startRender( QgsRenderContext &context, const QgsFields &fields );
Expand Down
2 changes: 1 addition & 1 deletion python/core/auto_generated/symbology/qgssymbol.sip.in
Original file line number Diff line number Diff line change
Expand Up @@ -428,7 +428,7 @@ Returns whether the symbol utilizes any data defined properties.
.. deprecated:: Will be removed in QGIS 4.0
%End

void renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false, int currentVertexMarkerType = 0, double currentVertexMarkerSize = 0.0 );
void renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false, int currentVertexMarkerType = 0, double currentVertexMarkerSize = 0.0 ) throw( QgsCsException );
%Docstring
Render a feature. Before calling this the startRender() method should be called to initialize
the rendering process. After rendering all features stopRender() must be called.
Expand Down
2 changes: 1 addition & 1 deletion src/core/symbology/qgsheatmaprenderer.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class CORE_EXPORT QgsHeatmapRenderer : public QgsFeatureRenderer
//reimplemented methods
QgsHeatmapRenderer *clone() const override SIP_FACTORY;
void startRender( QgsRenderContext &context, const QgsFields &fields ) override;
bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) override;
bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) override SIP_THROW( QgsCsException );
void stopRender( QgsRenderContext &context ) override;
//! \note symbolForFeature2 in Python bindings
QgsSymbol *symbolForFeature( const QgsFeature &feature, QgsRenderContext &context ) const override;
Expand Down
2 changes: 1 addition & 1 deletion src/core/symbology/qgsinvertedpolygonrenderer.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ class CORE_EXPORT QgsInvertedPolygonRenderer : public QgsFeatureRenderer
* \param drawVertexMarker whether this feature has vertex markers (in edit mode usually)
* \returns TRUE if the rendering was OK
*/
bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) override;
bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) override SIP_THROW( QgsCsException );

/**
* The actual rendering will take place here.
Expand Down
2 changes: 1 addition & 1 deletion src/core/symbology/qgsnullsymbolrenderer.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class CORE_EXPORT QgsNullSymbolRenderer : public QgsFeatureRenderer
QgsSymbol *symbolForFeature( const QgsFeature &feature, QgsRenderContext &context ) const override;
QgsSymbol *originalSymbolForFeature( const QgsFeature &feature, QgsRenderContext &context ) const override;

bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) override;
bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) override SIP_THROW( QgsCsException );
void stopRender( QgsRenderContext &context ) override;
bool willRenderFeature( const QgsFeature &feature, QgsRenderContext &context ) const override;

Expand Down
2 changes: 1 addition & 1 deletion src/core/symbology/qgspointdistancerenderer.h
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ class CORE_EXPORT QgsPointDistanceRenderer: public QgsFeatureRenderer
QgsPointDistanceRenderer( const QString &rendererName, const QString &labelAttributeName = QString() );

void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap &props = QgsStringMap() ) const override;
bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) override;
bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) override SIP_THROW( QgsCsException );
QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
bool filterNeedsGeometry() const override;
QgsFeatureRenderer::Capabilities capabilities() override;
Expand Down
9 changes: 2 additions & 7 deletions src/core/symbology/qgsrenderer.h
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ class CORE_EXPORT QgsFeatureRenderer
* \see startRender()
* \see stopRender()
*/
virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false );
virtual bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) SIP_THROW( QgsCsException );

//! Returns debug information about this renderer
virtual QString dump() const;
Expand Down Expand Up @@ -468,12 +468,7 @@ class CORE_EXPORT QgsFeatureRenderer
* specify if it should be rendered as selected and \a drawVertexMarker
* to specify if vertex markers should be rendered.
*/
void renderFeatureWithSymbol( const QgsFeature &feature,
QgsSymbol *symbol,
QgsRenderContext &context,
int layer,
bool selected,
bool drawVertexMarker );
void renderFeatureWithSymbol( const QgsFeature &feature, QgsSymbol *symbol, QgsRenderContext &context, int layer, bool selected, bool drawVertexMarker ) SIP_THROW( QgsCsException );

//! render editing vertex marker at specified point
void renderVertexMarker( QPointF pt, QgsRenderContext &context );
Expand Down
2 changes: 1 addition & 1 deletion src/core/symbology/qgsrulebasedrenderer.h
Original file line number Diff line number Diff line change
Expand Up @@ -476,7 +476,7 @@ class CORE_EXPORT QgsRuleBasedRenderer : public QgsFeatureRenderer
//! Returns symbol for current feature. Should not be used individually: there could be more symbols for a feature
QgsSymbol *symbolForFeature( const QgsFeature &feature, QgsRenderContext &context ) const override;

bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) override;
bool renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false ) override SIP_THROW( QgsCsException );

void startRender( QgsRenderContext &context, const QgsFields &fields ) override;

Expand Down
2 changes: 1 addition & 1 deletion src/core/symbology/qgssymbol.h
Original file line number Diff line number Diff line change
Expand Up @@ -429,7 +429,7 @@ class CORE_EXPORT QgsSymbol
* Render a feature. Before calling this the startRender() method should be called to initialize
* the rendering process. After rendering all features stopRender() must be called.
*/
void renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false, int currentVertexMarkerType = 0, double currentVertexMarkerSize = 0.0 );
void renderFeature( const QgsFeature &feature, QgsRenderContext &context, int layer = -1, bool selected = false, bool drawVertexMarker = false, int currentVertexMarkerType = 0, double currentVertexMarkerSize = 0.0 ) SIP_THROW( QgsCsException );

/**
* Returns the symbol render context. Only valid between startRender and stopRender calls.
Expand Down

0 comments on commit e23ceaa

Please sign in to comment.