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 22, 2019
1 parent 23e3a72 commit 767ad36
Show file tree
Hide file tree
Showing 14 changed files with 16 additions and 26 deletions.
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
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
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
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
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 null.
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
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
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
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
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
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
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
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
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
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 767ad36

Please sign in to comment.