Skip to content

Commit 99b6194

Browse files
committed
Improve docs for single symbol renderer, add missing SIP_FACTORY
1 parent 43928d8 commit 99b6194

3 files changed

Lines changed: 72 additions & 14 deletions

File tree

‎python/core/auto_generated/symbology/qgssinglesymbolrenderer.sip.in‎

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@ class QgsSingleSymbolRenderer : QgsFeatureRenderer
1616
public:
1717

1818
QgsSingleSymbolRenderer( QgsSymbol *symbol /Transfer/ );
19+
%Docstring
20+
Constructor for QgsSingleSymbolRenderer.
21+
22+
The same ``symbol`` will be used to render every feature. Ownership
23+
of ``symbol`` is transferred to the renderer.
24+
%End
1925

2026
virtual QgsSymbol *symbolForFeature( const QgsFeature &feature, QgsRenderContext &context ) const;
2127

@@ -29,7 +35,19 @@ class QgsSingleSymbolRenderer : QgsFeatureRenderer
2935

3036

3137
QgsSymbol *symbol() const;
38+
%Docstring
39+
Returns the symbol which will be rendered for every feature.
40+
41+
.. seealso:: :py:func:`setSymbol`
42+
%End
43+
3244
void setSymbol( QgsSymbol *s /Transfer/ );
45+
%Docstring
46+
Sets the symbol which will be rendered for every feature. Ownership
47+
of the symbol is transferred to the renderer.
48+
49+
.. seealso:: :py:func:`symbol`
50+
%End
3351

3452
virtual QString dump() const;
3553

@@ -39,16 +57,27 @@ class QgsSingleSymbolRenderer : QgsFeatureRenderer
3957

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

42-
static QgsFeatureRenderer *createFromSld( QDomElement &element, QgsWkbTypes::GeometryType geomType );
60+
61+
static QgsFeatureRenderer *createFromSld( QDomElement &element, QgsWkbTypes::GeometryType geomType ) /Factory/;
62+
%Docstring
63+
Creates a new single symbol renderer from an SLD ``element``.
64+
65+
The geometry type for features to be rendered must be specified via the ``geomType`` argument.
66+
67+
The caller takes ownership of the returned renderer.
68+
%End
4369

4470
virtual QgsFeatureRenderer::Capabilities capabilities();
4571
virtual QgsSymbolList symbols( QgsRenderContext &context ) const;
4672

4773

4874
static QgsFeatureRenderer *create( QDomElement &element, const QgsReadWriteContext &context ) /Factory/;
4975
%Docstring
50-
create renderer from XML element
76+
Creates a new single symbol renderer from an XML ``element``, using the supplied read/write ``context``.
77+
78+
The caller takes ownership of the returned renderer.
5179
%End
80+
5281
virtual QDomElement save( QDomDocument &doc, const QgsReadWriteContext &context );
5382

5483
virtual QgsLegendSymbolList legendSymbolItems() const;
@@ -60,9 +89,9 @@ create renderer from XML element
6089

6190
static QgsSingleSymbolRenderer *convertFromRenderer( const QgsFeatureRenderer *renderer ) /Factory/;
6291
%Docstring
63-
creates a QgsSingleSymbolRenderer from an existing renderer.
92+
Creates a new single symbol renderer from an existing ``renderer``.
6493

65-
:return: a new renderer if the conversion was possible, otherwise 0.
94+
:return: a new renderer if the conversion was possible, otherwise None.
6695

6796
.. versionadded:: 2.5
6897
%End

‎src/core/symbology/qgssinglesymbolrenderer.cpp‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -234,28 +234,28 @@ QgsFeatureRenderer *QgsSingleSymbolRenderer::createFromSld( QDomElement &element
234234
return nullptr;
235235

236236
// now create the symbol
237-
QgsSymbol *symbol = nullptr;
237+
std::unique_ptr< QgsSymbol > symbol;
238238
switch ( geomType )
239239
{
240240
case QgsWkbTypes::LineGeometry:
241-
symbol = new QgsLineSymbol( layers );
241+
symbol = qgis::make_unique< QgsLineSymbol >( layers );
242242
break;
243243

244244
case QgsWkbTypes::PolygonGeometry:
245-
symbol = new QgsFillSymbol( layers );
245+
symbol = qgis::make_unique< QgsFillSymbol >( layers );
246246
break;
247247

248248
case QgsWkbTypes::PointGeometry:
249-
symbol = new QgsMarkerSymbol( layers );
249+
symbol = qgis::make_unique< QgsMarkerSymbol >( layers );
250250
break;
251251

252252
default:
253-
QgsDebugMsg( QString( "invalid geometry type: found %1" ).arg( geomType ) );
253+
QgsDebugMsg( QStringLiteral( "invalid geometry type: found %1" ).arg( geomType ) );
254254
return nullptr;
255255
}
256256

257257
// and finally return the new renderer
258-
return new QgsSingleSymbolRenderer( symbol );
258+
return new QgsSingleSymbolRenderer( symbol.release() );
259259
}
260260

261261
QDomElement QgsSingleSymbolRenderer::save( QDomDocument &doc, const QgsReadWriteContext &context )

‎src/core/symbology/qgssinglesymbolrenderer.h‎

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ class CORE_EXPORT QgsSingleSymbolRenderer : public QgsFeatureRenderer
3030
{
3131
public:
3232

33+
/**
34+
* Constructor for QgsSingleSymbolRenderer.
35+
*
36+
* The same \a symbol will be used to render every feature. Ownership
37+
* of \a symbol is transferred to the renderer.
38+
*/
3339
QgsSingleSymbolRenderer( QgsSymbol *symbol SIP_TRANSFER );
3440

3541
QgsSymbol *symbolForFeature( const QgsFeature &feature, QgsRenderContext &context ) const override;
@@ -38,29 +44,52 @@ class CORE_EXPORT QgsSingleSymbolRenderer : public QgsFeatureRenderer
3844
void stopRender( QgsRenderContext &context ) override;
3945
QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
4046

47+
/**
48+
* Returns the symbol which will be rendered for every feature.
49+
* \see setSymbol()
50+
*/
4151
QgsSymbol *symbol() const;
52+
53+
/**
54+
* Sets the symbol which will be rendered for every feature. Ownership
55+
* of the symbol is transferred to the renderer.
56+
* \see symbol()
57+
*/
4258
void setSymbol( QgsSymbol *s SIP_TRANSFER );
4359

4460
QString dump() const override;
4561

4662
QgsSingleSymbolRenderer *clone() const override SIP_FACTORY;
4763

4864
void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap &props = QgsStringMap() ) const override;
49-
static QgsFeatureRenderer *createFromSld( QDomElement &element, QgsWkbTypes::GeometryType geomType );
65+
66+
/**
67+
* Creates a new single symbol renderer from an SLD \a element.
68+
*
69+
* The geometry type for features to be rendered must be specified via the \a geomType argument.
70+
*
71+
* The caller takes ownership of the returned renderer.
72+
*/
73+
static QgsFeatureRenderer *createFromSld( QDomElement &element, QgsWkbTypes::GeometryType geomType ) SIP_FACTORY;
5074

5175
QgsFeatureRenderer::Capabilities capabilities() override { return SymbolLevels; }
5276
QgsSymbolList symbols( QgsRenderContext &context ) const override;
5377

54-
//! create renderer from XML element
78+
/**
79+
* Creates a new single symbol renderer from an XML \a element, using the supplied read/write \a context.
80+
*
81+
* The caller takes ownership of the returned renderer.
82+
*/
5583
static QgsFeatureRenderer *create( QDomElement &element, const QgsReadWriteContext &context ) SIP_FACTORY;
84+
5685
QDomElement save( QDomDocument &doc, const QgsReadWriteContext &context ) override;
5786
QgsLegendSymbolList legendSymbolItems() const override;
5887
QSet< QString > legendKeysForFeature( const QgsFeature &feature, QgsRenderContext &context ) const override;
5988
void setLegendSymbolItem( const QString &key, QgsSymbol *symbol SIP_TRANSFER ) override;
6089

6190
/**
62-
* creates a QgsSingleSymbolRenderer from an existing renderer.
63-
* \returns a new renderer if the conversion was possible, otherwise 0.
91+
* Creates a new single symbol renderer from an existing \a renderer.
92+
* \returns a new renderer if the conversion was possible, otherwise nullptr.
6493
* \since QGIS 2.5
6594
*/
6695
static QgsSingleSymbolRenderer *convertFromRenderer( const QgsFeatureRenderer *renderer ) SIP_FACTORY;

0 commit comments

Comments
 (0)