Skip to content

Commit 8301ba2

Browse files
committedSep 13, 2016
Remove sizeScaleField and sizeScaleMethods from renderers
These were unused (since they were moved to data defined properties at the symbol layer level) and were not set anywhere in core QGIS (ie, the only way to set them was by manually calling this api)
1 parent 041ceea commit 8301ba2

16 files changed

+12
-358
lines changed
 

‎doc/api_break.dox

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1123,7 +1123,9 @@ in code which previously passed a null pointer to QgsVectorFileWriter.</li>
11231123
<ul>
11241124
<li>New virtual method <code>bool writeSld( QDomNode& node, QDomDocument& doc, QString& errorMessage, QgsStringMap props = QgsStringMap() )</code> accepts an
11251125
optional property map passing down layer level properties to the SLD encoders. If scale based visibility is enabled, it will contain the
1126-
<code>scaleMinDenom</code> and <code>scaleMaxDenom</code> properties.
1126+
<code>scaleMinDenom</code> and <code>scaleMaxDenom</code> properties.</li>
1127+
<li>The RotationField capabitity was removed. This is now handled using data defined rotation at a symbol layer level</li>
1128+
<li>setScaleMethodToSymbol was removed. This is now handled using data defined scaling at a symbol layer level</li>
11271129
</ul>
11281130

11291131

‎python/core/symbology-ng/qgscategorizedsymbolrenderer.sip

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -168,12 +168,6 @@ class QgsCategorizedSymbolRenderer : QgsFeatureRenderer
168168
*/
169169
void updateColorRamp( QgsColorRamp* ramp /Transfer/, bool inverted = false );
170170

171-
void setSizeScaleField( const QString& fieldOrExpression );
172-
QString sizeScaleField() const;
173-
174-
void setScaleMethod( QgsSymbol::ScaleMethod scaleMethod );
175-
QgsSymbol::ScaleMethod scaleMethod() const;
176-
177171
//! items of symbology items in legend should be checkable
178172
//! @note added in 2.5
179173
virtual bool legendSymbolItemsCheckable() const;

‎python/core/symbology-ng/qgsgraduatedsymbolrenderer.sip

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -293,12 +293,6 @@ class QgsGraduatedSymbolRenderer : QgsFeatureRenderer
293293
//! @note added in 2.10
294294
void setGraduatedMethod( GraduatedMethod method );
295295

296-
void setSizeScaleField( const QString& fieldOrExpression );
297-
QString sizeScaleField() const;
298-
299-
void setScaleMethod( QgsSymbol::ScaleMethod scaleMethod );
300-
QgsSymbol::ScaleMethod scaleMethod() const;
301-
302296
//! items of symbology items in legend should be checkable
303297
//! @note added in 2.5
304298
virtual bool legendSymbolItemsCheckable() const;

‎python/core/symbology-ng/qgsrenderer.sip

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,6 @@ class QgsFeatureRenderer
149149
enum Capability
150150
{
151151
SymbolLevels, // rendering with symbol levels (i.e. implements symbols(), symbolForFeature())
152-
RotationField, // rotate symbols by attribute value
153152
MoreSymbolsPerFeature, // may use more than one symbol to render a feature: symbolsForFeature() will return them
154153
Filter, // features may be filtered, i.e. some features may not be rendered (categorized, rule based ...)
155154
ScaleDependent // depends on scale if feature will be rendered (rule based )
@@ -360,8 +359,6 @@ class QgsFeatureRenderer
360359
*/
361360
static QPointF _getPoint( QgsRenderContext& context, const QgsPointV2& point );
362361

363-
void setScaleMethodToSymbol( QgsSymbol* symbol, int scaleMethod );
364-
365362
/**
366363
* Clones generic renderer data to another renderer.
367364
* Currently clones

‎python/core/symbology-ng/qgssinglesymbolrenderer.sip

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,6 @@ class QgsSingleSymbolRenderer : QgsFeatureRenderer
2424
QgsSymbol* symbol() const;
2525
void setSymbol( QgsSymbol* s /Transfer/ );
2626

27-
void setSizeScaleField( const QString& fieldOrExpression );
28-
QString sizeScaleField() const;
29-
30-
void setScaleMethod( QgsSymbol::ScaleMethod scaleMethod );
31-
QgsSymbol::ScaleMethod scaleMethod() const;
32-
3327
virtual QString dump() const;
3428

3529
virtual QgsSingleSymbolRenderer* clone() const /Factory/;

‎src/core/symbology-ng/qgscategorizedsymbolrenderer.cpp

Lines changed: 1 addition & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,6 @@ QgsCategorizedSymbolRenderer::QgsCategorizedSymbolRenderer( const QString& attrN
153153
: QgsFeatureRenderer( "categorizedSymbol" )
154154
, mAttrName( attrName )
155155
, mInvertedColorRamp( false )
156-
, mScaleMethod( DEFAULT_SCALE_METHOD )
157156
, mAttrNum( -1 )
158157
, mCounting( false )
159158
{
@@ -216,38 +215,9 @@ QgsSymbol* QgsCategorizedSymbolRenderer::symbolForValue( const QVariant& value )
216215

217216
QgsSymbol* QgsCategorizedSymbolRenderer::symbolForFeature( QgsFeature& feature, QgsRenderContext &context )
218217
{
219-
QgsSymbol* symbol = originalSymbolForFeature( feature, context );
220-
if ( !symbol )
221-
return nullptr;
222-
223-
if ( !mRotation.data() && !mSizeScale.data() )
224-
return symbol; // no data-defined rotation/scaling - just return the symbol
225-
226-
// find out rotation, size scale
227-
const double rotation = mRotation.data() ? mRotation->evaluate( &context.expressionContext() ).toDouble() : 0;
228-
const double sizeScale = mSizeScale.data() ? mSizeScale->evaluate( &context.expressionContext() ).toDouble() : 1.;
229-
230-
// take a temporary symbol (or create it if doesn't exist)
231-
QgsSymbol* tempSymbol = mTempSymbols[symbol];
232-
233-
// modify the temporary symbol and return it
234-
if ( tempSymbol->type() == QgsSymbol::Marker )
235-
{
236-
QgsMarkerSymbol* markerSymbol = static_cast<QgsMarkerSymbol*>( tempSymbol );
237-
if ( mRotation.data() ) markerSymbol->setAngle( rotation );
238-
markerSymbol->setSize( sizeScale * static_cast<QgsMarkerSymbol*>( symbol )->size() );
239-
markerSymbol->setScaleMethod( mScaleMethod );
240-
}
241-
else if ( tempSymbol->type() == QgsSymbol::Line )
242-
{
243-
QgsLineSymbol* lineSymbol = static_cast<QgsLineSymbol*>( tempSymbol );
244-
lineSymbol->setWidth( sizeScale * static_cast<QgsLineSymbol*>( symbol )->width() );
245-
}
246-
247-
return tempSymbol;
218+
return originalSymbolForFeature( feature, context );
248219
}
249220

250-
251221
QVariant QgsCategorizedSymbolRenderer::valueForFeature( QgsFeature& feature, QgsRenderContext &context ) const
252222
{
253223
QgsAttributes attrs = feature.attributes();
@@ -435,15 +405,6 @@ void QgsCategorizedSymbolRenderer::startRender( QgsRenderContext& context, const
435405
Q_FOREACH ( const QgsRendererCategory& cat, mCategories )
436406
{
437407
cat.symbol()->startRender( context, fields );
438-
439-
if ( mRotation.data() || mSizeScale.data() )
440-
{
441-
QgsSymbol* tempSymbol = cat.symbol()->clone();
442-
tempSymbol->setRenderHints(( mRotation.data() ? QgsSymbol::DataDefinedRotation : 0 ) |
443-
( mSizeScale.data() ? QgsSymbol::DataDefinedSizeScale : 0 ) );
444-
tempSymbol->startRender( context, fields );
445-
mTempSymbols[ cat.symbol()] = tempSymbol;
446-
}
447408
}
448409
return;
449410
}
@@ -454,15 +415,6 @@ void QgsCategorizedSymbolRenderer::stopRender( QgsRenderContext& context )
454415
{
455416
cat.symbol()->stopRender( context );
456417
}
457-
458-
// cleanup mTempSymbols
459-
QHash<QgsSymbol*, QgsSymbol*>::const_iterator it2 = mTempSymbols.constBegin();
460-
for ( ; it2 != mTempSymbols.constEnd(); ++it2 )
461-
{
462-
it2.value()->stopRender( context );
463-
delete it2.value();
464-
}
465-
mTempSymbols.clear();
466418
mExpression.reset();
467419
}
468420

@@ -480,9 +432,6 @@ QList<QString> QgsCategorizedSymbolRenderer::usedAttributes()
480432
if ( !testExpr.hasParserError() )
481433
attributes.unite( testExpr.referencedColumns().toSet() );
482434

483-
if ( mRotation.data() ) attributes.unite( mRotation->referencedColumns().toSet() );
484-
if ( mSizeScale.data() ) attributes.unite( mSizeScale->referencedColumns().toSet() );
485-
486435
QgsCategoryList::const_iterator catIt = mCategories.constBegin();
487436
for ( ; catIt != mCategories.constEnd(); ++catIt )
488437
{
@@ -514,7 +463,6 @@ QgsCategorizedSymbolRenderer* QgsCategorizedSymbolRenderer::clone() const
514463
r->setInvertedColorRamp( mInvertedColorRamp );
515464
}
516465
r->setUsingSymbolLevels( usingSymbolLevels() );
517-
r->setSizeScaleField( sizeScaleField() );
518466

519467
copyRendererData( r );
520468
return r;
@@ -523,10 +471,6 @@ QgsCategorizedSymbolRenderer* QgsCategorizedSymbolRenderer::clone() const
523471
void QgsCategorizedSymbolRenderer::toSld( QDomDocument &doc, QDomElement &element, QgsStringMap props ) const
524472
{
525473
props[ "attribute" ] = mAttrName;
526-
if ( mRotation.data() )
527-
props[ "angle" ] = mRotation->expression();
528-
if ( mSizeScale.data() )
529-
props[ "scale" ] = mSizeScale->expression();
530474

531475
// create a Rule for each range
532476
for ( QgsCategoryList::const_iterator it = mCategories.constBegin(); it != mCategories.constEnd(); ++it )
@@ -770,14 +714,9 @@ QDomElement QgsCategorizedSymbolRenderer::save( QDomDocument& doc )
770714
}
771715

772716
QDomElement rotationElem = doc.createElement( "rotation" );
773-
if ( mRotation.data() )
774-
rotationElem.setAttribute( "field", QgsSymbolLayerUtils::fieldOrExpressionFromExpression( mRotation.data() ) );
775717
rendererElem.appendChild( rotationElem );
776718

777719
QDomElement sizeScaleElem = doc.createElement( "sizescale" );
778-
if ( mSizeScale.data() )
779-
sizeScaleElem.setAttribute( "field", QgsSymbolLayerUtils::fieldOrExpressionFromExpression( mSizeScale.data() ) );
780-
sizeScaleElem.setAttribute( "scalemethod", QgsSymbolLayerUtils::encodeScaleMethod( mScaleMethod ) );
781720
rendererElem.appendChild( sizeScaleElem );
782721

783722
if ( mPaintEffect && !QgsPaintEffectRegistry::isDefaultStack( mPaintEffect ) )
@@ -936,16 +875,6 @@ void QgsCategorizedSymbolRenderer::updateColorRamp( QgsColorRamp* ramp, bool inv
936875
}
937876
}
938877

939-
void QgsCategorizedSymbolRenderer::setSizeScaleField( const QString& fieldOrExpression )
940-
{
941-
mSizeScale.reset( QgsSymbolLayerUtils::fieldOrExpressionToExpression( fieldOrExpression ) );
942-
}
943-
944-
QString QgsCategorizedSymbolRenderer::sizeScaleField() const
945-
{
946-
return mSizeScale.data() ? QgsSymbolLayerUtils::fieldOrExpressionFromExpression( mSizeScale.data() ) : QString();
947-
}
948-
949878
void QgsCategorizedSymbolRenderer::updateSymbols( QgsSymbol * sym )
950879
{
951880
int i = 0;
@@ -959,16 +888,6 @@ void QgsCategorizedSymbolRenderer::updateSymbols( QgsSymbol * sym )
959888
setSourceSymbol( sym->clone() );
960889
}
961890

962-
void QgsCategorizedSymbolRenderer::setScaleMethod( QgsSymbol::ScaleMethod scaleMethod )
963-
{
964-
mScaleMethod = scaleMethod;
965-
QgsCategoryList::const_iterator catIt = mCategories.constBegin();
966-
for ( ; catIt != mCategories.constEnd(); ++catIt )
967-
{
968-
setScaleMethodToSymbol( catIt->symbol(), scaleMethod );
969-
}
970-
}
971-
972891
bool QgsCategorizedSymbolRenderer::legendSymbolItemsCheckable() const
973892
{
974893
return true;

‎src/core/symbology-ng/qgscategorizedsymbolrenderer.h

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ class CORE_EXPORT QgsCategorizedSymbolRenderer : public QgsFeatureRenderer
9090
virtual QString dump() const override;
9191
virtual QgsCategorizedSymbolRenderer* clone() const override;
9292
virtual void toSld( QDomDocument& doc, QDomElement &element, QgsStringMap props = QgsStringMap() ) const override;
93-
virtual Capabilities capabilities() override { return SymbolLevels | RotationField | Filter; }
93+
virtual Capabilities capabilities() override { return SymbolLevels | Filter; }
9494
virtual QString filter( const QgsFields& fields = QgsFields() ) override;
9595
virtual QgsSymbolList symbols( QgsRenderContext& context ) override;
9696

@@ -178,12 +178,6 @@ class CORE_EXPORT QgsCategorizedSymbolRenderer : public QgsFeatureRenderer
178178
*/
179179
void updateColorRamp( QgsColorRamp* ramp, bool inverted = false );
180180

181-
void setSizeScaleField( const QString& fieldOrExpression );
182-
QString sizeScaleField() const;
183-
184-
void setScaleMethod( QgsSymbol::ScaleMethod scaleMethod );
185-
QgsSymbol::ScaleMethod scaleMethod() const { return mScaleMethod; }
186-
187181
virtual bool legendSymbolItemsCheckable() const override;
188182
virtual bool legendSymbolItemChecked( const QString& key ) override;
189183
virtual void setLegendSymbolItem( const QString& key, QgsSymbol* symbol ) override;
@@ -201,9 +195,6 @@ class CORE_EXPORT QgsCategorizedSymbolRenderer : public QgsFeatureRenderer
201195
QScopedPointer<QgsSymbol> mSourceSymbol;
202196
QScopedPointer<QgsColorRamp> mSourceColorRamp;
203197
bool mInvertedColorRamp;
204-
QScopedPointer<QgsExpression> mRotation;
205-
QScopedPointer<QgsExpression> mSizeScale;
206-
QgsSymbol::ScaleMethod mScaleMethod;
207198
QScopedPointer<QgsExpression> mExpression;
208199

209200
//! attribute index (derived from attribute name in startRender)
@@ -213,9 +204,6 @@ class CORE_EXPORT QgsCategorizedSymbolRenderer : public QgsFeatureRenderer
213204
QHash<QString, QgsSymbol*> mSymbolHash;
214205
bool mCounting;
215206

216-
//! temporary symbols, used for data-defined rotation and scaling
217-
QHash<QgsSymbol*, QgsSymbol*> mTempSymbols;
218-
219207
void rebuildHash();
220208

221209
QgsSymbol* skipRender();

‎src/core/symbology-ng/qgsgraduatedsymbolrenderer.cpp

Lines changed: 1 addition & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,6 @@ QgsGraduatedSymbolRenderer::QgsGraduatedSymbolRenderer( const QString& attrName,
289289
, mAttrName( attrName )
290290
, mMode( Custom )
291291
, mInvertedColorRamp( false )
292-
, mScaleMethod( DEFAULT_SCALE_METHOD )
293292
, mGraduatedMethod( GraduatedColor )
294293
, mAttrNum( -1 )
295294
, mCounting( false )
@@ -348,34 +347,7 @@ QString QgsGraduatedSymbolRenderer::legendKeyForValue( double value ) const
348347

349348
QgsSymbol* QgsGraduatedSymbolRenderer::symbolForFeature( QgsFeature& feature, QgsRenderContext &context )
350349
{
351-
QgsSymbol* symbol = originalSymbolForFeature( feature, context );
352-
if ( !symbol )
353-
return nullptr;
354-
355-
if ( !mRotation.data() && !mSizeScale.data() )
356-
return symbol; // no data-defined rotation/scaling - just return the symbol
357-
358-
// find out rotation, size scale
359-
const double rotation = mRotation.data() ? mRotation->evaluate( &context.expressionContext() ).toDouble() : 0;
360-
const double sizeScale = mSizeScale.data() ? mSizeScale->evaluate( &context.expressionContext() ).toDouble() : 1.;
361-
362-
// take a temporary symbol (or create it if doesn't exist)
363-
QgsSymbol* tempSymbol = mTempSymbols[symbol];
364-
365-
// modify the temporary symbol and return it
366-
if ( tempSymbol->type() == QgsSymbol::Marker )
367-
{
368-
QgsMarkerSymbol* markerSymbol = static_cast<QgsMarkerSymbol*>( tempSymbol );
369-
if ( mRotation.data() ) markerSymbol->setAngle( rotation );
370-
markerSymbol->setSize( sizeScale * static_cast<QgsMarkerSymbol*>( symbol )->size() );
371-
markerSymbol->setScaleMethod( mScaleMethod );
372-
}
373-
else if ( tempSymbol->type() == QgsSymbol::Line )
374-
{
375-
QgsLineSymbol* lineSymbol = static_cast<QgsLineSymbol*>( tempSymbol );
376-
lineSymbol->setWidth( sizeScale * static_cast<QgsLineSymbol*>( symbol )->width() );
377-
}
378-
return tempSymbol;
350+
return originalSymbolForFeature( feature, context );
379351
}
380352

381353
QVariant QgsGraduatedSymbolRenderer::valueForFeature( QgsFeature& feature, QgsRenderContext &context ) const
@@ -425,15 +397,6 @@ void QgsGraduatedSymbolRenderer::startRender( QgsRenderContext& context, const Q
425397
continue;
426398

427399
range.symbol()->startRender( context, fields );
428-
429-
if ( mRotation.data() || mSizeScale.data() )
430-
{
431-
QgsSymbol* tempSymbol = range.symbol()->clone();
432-
tempSymbol->setRenderHints(( mRotation.data() ? QgsSymbol::DataDefinedRotation : 0 ) |
433-
( mSizeScale.data() ? QgsSymbol::DataDefinedSizeScale : 0 ) );
434-
tempSymbol->startRender( context, fields );
435-
mTempSymbols[ range.symbol()] = tempSymbol;
436-
}
437400
}
438401
return;
439402
}
@@ -447,15 +410,6 @@ void QgsGraduatedSymbolRenderer::stopRender( QgsRenderContext& context )
447410

448411
range.symbol()->stopRender( context );
449412
}
450-
451-
// cleanup mTempSymbols
452-
QHash<QgsSymbol*, QgsSymbol*>::const_iterator it2 = mTempSymbols.constBegin();
453-
for ( ; it2 != mTempSymbols.constEnd(); ++it2 )
454-
{
455-
it2.value()->stopRender( context );
456-
delete it2.value();
457-
}
458-
mTempSymbols.clear();
459413
}
460414

461415
QList<QString> QgsGraduatedSymbolRenderer::usedAttributes()
@@ -472,9 +426,6 @@ QList<QString> QgsGraduatedSymbolRenderer::usedAttributes()
472426
if ( !testExpr.hasParserError() )
473427
attributes.unite( testExpr.referencedColumns().toSet() );
474428

475-
if ( mRotation.data() ) attributes.unite( mRotation->referencedColumns().toSet() );
476-
if ( mSizeScale.data() ) attributes.unite( mSizeScale->referencedColumns().toSet() );
477-
478429
QgsRangeList::const_iterator range_it = mRanges.constBegin();
479430
for ( ; range_it != mRanges.constEnd(); ++range_it )
480431
{
@@ -553,7 +504,6 @@ QgsGraduatedSymbolRenderer* QgsGraduatedSymbolRenderer::clone() const
553504
r->setInvertedColorRamp( mInvertedColorRamp );
554505
}
555506
r->setUsingSymbolLevels( usingSymbolLevels() );
556-
r->setSizeScaleField( sizeScaleField() );
557507
r->setLabelFormat( labelFormat() );
558508
r->setGraduatedMethod( graduatedMethod() );
559509
copyRendererData( r );
@@ -564,10 +514,6 @@ void QgsGraduatedSymbolRenderer::toSld( QDomDocument& doc, QDomElement &element,
564514
{
565515
props[ "attribute" ] = mAttrName;
566516
props[ "method" ] = graduatedMethodStr( mGraduatedMethod );
567-
if ( mRotation.data() )
568-
props[ "angle" ] = mRotation->expression();
569-
if ( mSizeScale.data() )
570-
props[ "scale" ] = mSizeScale->expression();
571517

572518
// create a Rule for each range
573519
bool first = true;
@@ -1176,14 +1122,9 @@ QDomElement QgsGraduatedSymbolRenderer::save( QDomDocument& doc )
11761122
}
11771123

11781124
QDomElement rotationElem = doc.createElement( "rotation" );
1179-
if ( mRotation.data() )
1180-
rotationElem.setAttribute( "field", QgsSymbolLayerUtils::fieldOrExpressionFromExpression( mRotation.data() ) );
11811125
rendererElem.appendChild( rotationElem );
11821126

11831127
QDomElement sizeScaleElem = doc.createElement( "sizescale" );
1184-
if ( mSizeScale.data() )
1185-
sizeScaleElem.setAttribute( "field", QgsSymbolLayerUtils::fieldOrExpressionFromExpression( mSizeScale.data() ) );
1186-
sizeScaleElem.setAttribute( "scalemethod", QgsSymbolLayerUtils::encodeScaleMethod( mScaleMethod ) );
11871128
rendererElem.appendChild( sizeScaleElem );
11881129

11891130
QDomElement labelFormatElem = doc.createElement( "labelformat" );
@@ -1422,26 +1363,6 @@ void QgsGraduatedSymbolRenderer::updateSymbols( QgsSymbol *sym )
14221363
setSourceSymbol( sym->clone() );
14231364
}
14241365

1425-
void QgsGraduatedSymbolRenderer::setSizeScaleField( const QString& fieldOrExpression )
1426-
{
1427-
mSizeScale.reset( QgsSymbolLayerUtils::fieldOrExpressionToExpression( fieldOrExpression ) );
1428-
}
1429-
1430-
QString QgsGraduatedSymbolRenderer::sizeScaleField() const
1431-
{
1432-
return mSizeScale.data() ? QgsSymbolLayerUtils::fieldOrExpressionFromExpression( mSizeScale.data() ) : QString();
1433-
}
1434-
1435-
void QgsGraduatedSymbolRenderer::setScaleMethod( QgsSymbol::ScaleMethod scaleMethod )
1436-
{
1437-
mScaleMethod = scaleMethod;
1438-
Q_FOREACH ( const QgsRendererRange& range, mRanges )
1439-
{
1440-
if ( range.symbol() )
1441-
setScaleMethodToSymbol( range.symbol(), scaleMethod );
1442-
}
1443-
}
1444-
14451366
bool QgsGraduatedSymbolRenderer::legendSymbolItemsCheckable() const
14461367
{
14471368
return true;

‎src/core/symbology-ng/qgsgraduatedsymbolrenderer.h

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ class CORE_EXPORT QgsGraduatedSymbolRenderer : public QgsFeatureRenderer
144144
virtual QString dump() const override;
145145
virtual QgsGraduatedSymbolRenderer* clone() const override;
146146
virtual void toSld( QDomDocument& doc, QDomElement &element, QgsStringMap props = QgsStringMap() ) const override;
147-
virtual Capabilities capabilities() override { return SymbolLevels | RotationField | Filter; }
147+
virtual Capabilities capabilities() override { return SymbolLevels | Filter; }
148148
virtual QgsSymbolList symbols( QgsRenderContext &context ) override;
149149

150150
QString classAttribute() const { return mAttrName; }
@@ -326,12 +326,6 @@ class CORE_EXPORT QgsGraduatedSymbolRenderer : public QgsFeatureRenderer
326326
//! @note added in 2.10
327327
void setGraduatedMethod( GraduatedMethod method ) { mGraduatedMethod = method; }
328328

329-
void setSizeScaleField( const QString& fieldOrExpression );
330-
QString sizeScaleField() const;
331-
332-
void setScaleMethod( QgsSymbol::ScaleMethod scaleMethod );
333-
QgsSymbol::ScaleMethod scaleMethod() const { return mScaleMethod; }
334-
335329
virtual bool legendSymbolItemsCheckable() const override;
336330
virtual bool legendSymbolItemChecked( const QString& key ) override;
337331
virtual void checkLegendSymbolItem( const QString& key, bool state = true ) override;
@@ -352,18 +346,12 @@ class CORE_EXPORT QgsGraduatedSymbolRenderer : public QgsFeatureRenderer
352346
bool mInvertedColorRamp;
353347
QgsRendererRangeLabelFormat mLabelFormat;
354348

355-
QScopedPointer<QgsExpression> mRotation;
356-
QScopedPointer<QgsExpression> mSizeScale;
357-
QgsSymbol::ScaleMethod mScaleMethod;
358349
QScopedPointer<QgsExpression> mExpression;
359350
GraduatedMethod mGraduatedMethod;
360351
//! attribute index (derived from attribute name in startRender)
361352
int mAttrNum;
362353
bool mCounting;
363354

364-
//! temporary symbols, used for data-defined rotation and scaling
365-
QHash<QgsSymbol*, QgsSymbol*> mTempSymbols;
366-
367355
QgsSymbol* symbolForValue( double value );
368356

369357
/** Returns the matching legend key for a value.

‎src/core/symbology-ng/qgsrenderer.cpp

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -45,21 +45,6 @@ QPointF QgsFeatureRenderer::_getPoint( QgsRenderContext& context, const QgsPoint
4545
return QgsSymbol::_getPoint( context, point );
4646
}
4747

48-
void QgsFeatureRenderer::setScaleMethodToSymbol( QgsSymbol* symbol, int scaleMethod )
49-
{
50-
if ( symbol )
51-
{
52-
if ( symbol->type() == QgsSymbol::Marker )
53-
{
54-
QgsMarkerSymbol* ms = static_cast<QgsMarkerSymbol*>( symbol );
55-
if ( ms )
56-
{
57-
ms->setScaleMethod( static_cast< QgsSymbol::ScaleMethod >( scaleMethod ) );
58-
}
59-
}
60-
}
61-
}
62-
6348
void QgsFeatureRenderer::copyRendererData( QgsFeatureRenderer* destRenderer ) const
6449
{
6550
if ( !destRenderer || !mPaintEffect )

‎src/core/symbology-ng/qgsrenderer.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,6 @@ class CORE_EXPORT QgsFeatureRenderer
188188
enum Capability
189189
{
190190
SymbolLevels = 1, //!< rendering with symbol levels (i.e. implements symbols(), symbolForFeature())
191-
RotationField = 1 << 1, //!< rotate symbols by attribute value
192191
MoreSymbolsPerFeature = 1 << 2, //!< may use more than one symbol to render a feature: symbolsForFeature() will return them
193192
Filter = 1 << 3, //!< features may be filtered, i.e. some features may not be rendered (categorized, rule based ...)
194193
ScaleDependent = 1 << 4 //!< depends on scale if feature will be rendered (rule based )
@@ -414,8 +413,6 @@ class CORE_EXPORT QgsFeatureRenderer
414413
*/
415414
static QPointF _getPoint( QgsRenderContext& context, const QgsPointV2& point );
416415

417-
void setScaleMethodToSymbol( QgsSymbol* symbol, int scaleMethod );
418-
419416
/**
420417
* Clones generic renderer data to another renderer.
421418
* Currently clones

‎src/core/symbology-ng/qgsrulebasedrenderer.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1211,7 +1211,6 @@ QgsRuleBasedRenderer* QgsRuleBasedRenderer::convertFromRenderer( const QgsFeatur
12111211
return nullptr;
12121212

12131213
QgsSymbol* origSymbol = singleSymbolRenderer->symbol()->clone();
1214-
convertToDataDefinedSymbology( origSymbol, singleSymbolRenderer->sizeScaleField() );
12151214
r = new QgsRuleBasedRenderer( origSymbol );
12161215
}
12171216
else if ( renderer->type() == "categorizedSymbol" )
@@ -1269,7 +1268,6 @@ QgsRuleBasedRenderer* QgsRuleBasedRenderer::convertFromRenderer( const QgsFeatur
12691268
//data dependent area and rotation, so we need to convert these to obtain the same rendering
12701269

12711270
QgsSymbol* origSymbol = category.symbol()->clone();
1272-
convertToDataDefinedSymbology( origSymbol, categorizedRenderer->sizeScaleField() );
12731271
rule->setSymbol( origSymbol );
12741272

12751273
rootrule->appendChild( rule );
@@ -1324,8 +1322,6 @@ QgsRuleBasedRenderer* QgsRuleBasedRenderer::convertFromRenderer( const QgsFeatur
13241322
//data dependent area and rotation, so we need to convert these to obtain the same rendering
13251323

13261324
QgsSymbol* symbol = range.symbol()->clone();
1327-
convertToDataDefinedSymbology( symbol, graduatedRenderer->sizeScaleField() );
1328-
13291325
rule->setSymbol( symbol );
13301326

13311327
rootrule->appendChild( rule );

‎src/core/symbology-ng/qgssinglesymbolrenderer.cpp

Lines changed: 4 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@
3636
QgsSingleSymbolRenderer::QgsSingleSymbolRenderer( QgsSymbol* symbol )
3737
: QgsFeatureRenderer( "singleSymbol" )
3838
, mSymbol( symbol )
39-
, mScaleMethod( DEFAULT_SCALE_METHOD )
40-
, mOrigSize( 0.0 )
4139
{
4240
Q_ASSERT( symbol );
4341
}
@@ -46,33 +44,9 @@ QgsSingleSymbolRenderer::~QgsSingleSymbolRenderer()
4644
{
4745
}
4846

49-
QgsSymbol* QgsSingleSymbolRenderer::symbolForFeature( QgsFeature& feature, QgsRenderContext &context )
47+
QgsSymbol* QgsSingleSymbolRenderer::symbolForFeature( QgsFeature&, QgsRenderContext & )
5048
{
51-
context.expressionContext().setFeature( feature );
52-
if ( !mRotation.data() && !mSizeScale.data() ) return mSymbol.data();
53-
54-
const double rotation = mRotation.data() ? mRotation->evaluate( &context.expressionContext() ).toDouble() : 0;
55-
const double sizeScale = mSizeScale.data() ? mSizeScale->evaluate( &context.expressionContext() ).toDouble() : 1.;
56-
57-
if ( mTempSymbol->type() == QgsSymbol::Marker )
58-
{
59-
QgsMarkerSymbol* markerSymbol = static_cast<QgsMarkerSymbol*>( mTempSymbol.data() );
60-
if ( mRotation.data() ) markerSymbol->setAngle( rotation );
61-
markerSymbol->setSize( sizeScale * mOrigSize );
62-
markerSymbol->setScaleMethod( mScaleMethod );
63-
}
64-
else if ( mTempSymbol->type() == QgsSymbol::Line )
65-
{
66-
QgsLineSymbol* lineSymbol = static_cast<QgsLineSymbol*>( mTempSymbol.data() );
67-
lineSymbol->setWidth( sizeScale * mOrigSize );
68-
}
69-
else if ( mTempSymbol->type() == QgsSymbol::Fill )
70-
{
71-
QgsFillSymbol* fillSymbol = static_cast<QgsFillSymbol*>( mTempSymbol.data() );
72-
if ( mRotation.data() ) fillSymbol->setAngle( rotation );
73-
}
74-
75-
return mTempSymbol.data();
49+
return mSymbol.data();
7650
}
7751

7852
QgsSymbol* QgsSingleSymbolRenderer::originalSymbolForFeature( QgsFeature& feature, QgsRenderContext &context )
@@ -88,58 +62,20 @@ void QgsSingleSymbolRenderer::startRender( QgsRenderContext& context, const QgsF
8862
return;
8963

9064
mSymbol->startRender( context, fields );
91-
92-
if ( mRotation.data() || mSizeScale.data() )
93-
{
94-
// we are going to need a temporary symbol
95-
mTempSymbol.reset( mSymbol->clone() );
96-
97-
int hints = 0;
98-
if ( mRotation.data() )
99-
hints |= QgsSymbol::DataDefinedRotation;
100-
if ( mSizeScale.data() )
101-
hints |= QgsSymbol::DataDefinedSizeScale;
102-
mTempSymbol->setRenderHints( hints );
103-
104-
mTempSymbol->startRender( context, fields );
105-
106-
if ( mSymbol->type() == QgsSymbol::Marker )
107-
{
108-
mOrigSize = static_cast<QgsMarkerSymbol*>( mSymbol.data() )->size();
109-
}
110-
else if ( mSymbol->type() == QgsSymbol::Line )
111-
{
112-
mOrigSize = static_cast<QgsLineSymbol*>( mSymbol.data() )->width();
113-
}
114-
else
115-
{
116-
mOrigSize = 0;
117-
}
118-
}
119-
120-
return;
12165
}
12266

12367
void QgsSingleSymbolRenderer::stopRender( QgsRenderContext& context )
12468
{
125-
if ( !mSymbol.data() ) return;
69+
if ( !mSymbol.data() )
70+
return;
12671

12772
mSymbol->stopRender( context );
128-
129-
if ( mRotation.data() || mSizeScale.data() )
130-
{
131-
// we are going to need a temporary symbol
132-
mTempSymbol->stopRender( context );
133-
mTempSymbol.reset();
134-
}
13573
}
13674

13775
QList<QString> QgsSingleSymbolRenderer::usedAttributes()
13876
{
13977
QSet<QString> attributes;
14078
if ( mSymbol.data() ) attributes.unite( mSymbol->usedAttributes() );
141-
if ( mRotation.data() ) attributes.unite( mRotation->referencedColumns().toSet() );
142-
if ( mSizeScale.data() ) attributes.unite( mSizeScale->referencedColumns().toSet() );
14379
return attributes.toList();
14480
}
14581

@@ -154,22 +90,6 @@ void QgsSingleSymbolRenderer::setSymbol( QgsSymbol* s )
15490
mSymbol.reset( s );
15591
}
15692

157-
void QgsSingleSymbolRenderer::setSizeScaleField( const QString& fieldOrExpression )
158-
{
159-
mSizeScale.reset( QgsSymbolLayerUtils::fieldOrExpressionToExpression( fieldOrExpression ) );
160-
}
161-
162-
QString QgsSingleSymbolRenderer::sizeScaleField() const
163-
{
164-
return mSizeScale.data() ? QgsSymbolLayerUtils::fieldOrExpressionFromExpression( mSizeScale.data() ) : QString();
165-
}
166-
167-
void QgsSingleSymbolRenderer::setScaleMethod( QgsSymbol::ScaleMethod scaleMethod )
168-
{
169-
mScaleMethod = scaleMethod;
170-
setScaleMethodToSymbol( mSymbol.data(), scaleMethod );
171-
}
172-
17393
QString QgsSingleSymbolRenderer::dump() const
17494
{
17595
return mSymbol.data() ? QString( "SINGLE: %1" ).arg( mSymbol->dump() ) : "";
@@ -179,18 +99,12 @@ QgsSingleSymbolRenderer* QgsSingleSymbolRenderer::clone() const
17999
{
180100
QgsSingleSymbolRenderer* r = new QgsSingleSymbolRenderer( mSymbol->clone() );
181101
r->setUsingSymbolLevels( usingSymbolLevels() );
182-
r->setSizeScaleField( sizeScaleField() );
183102
copyRendererData( r );
184103
return r;
185104
}
186105

187106
void QgsSingleSymbolRenderer::toSld( QDomDocument& doc, QDomElement &element, QgsStringMap props ) const
188107
{
189-
if ( mRotation.data() )
190-
props[ "angle" ] = mRotation->expression();
191-
if ( mSizeScale.data() )
192-
props[ "scale" ] = mSizeScale->expression();
193-
194108
QDomElement ruleElem = doc.createElement( "se:Rule" );
195109
element.appendChild( ruleElem );
196110

@@ -347,14 +261,9 @@ QDomElement QgsSingleSymbolRenderer::save( QDomDocument& doc )
347261
rendererElem.appendChild( symbolsElem );
348262

349263
QDomElement rotationElem = doc.createElement( "rotation" );
350-
if ( mRotation.data() )
351-
rotationElem.setAttribute( "field", QgsSymbolLayerUtils::fieldOrExpressionFromExpression( mRotation.data() ) );
352264
rendererElem.appendChild( rotationElem );
353265

354266
QDomElement sizeScaleElem = doc.createElement( "sizescale" );
355-
if ( mSizeScale.data() )
356-
sizeScaleElem.setAttribute( "field", QgsSymbolLayerUtils::fieldOrExpressionFromExpression( mSizeScale.data() ) );
357-
sizeScaleElem.setAttribute( "scalemethod", QgsSymbolLayerUtils::encodeScaleMethod( mScaleMethod ) );
358267
rendererElem.appendChild( sizeScaleElem );
359268

360269
if ( mPaintEffect && !QgsPaintEffectRegistry::isDefaultStack( mPaintEffect ) )

‎src/core/symbology-ng/qgssinglesymbolrenderer.h

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -41,20 +41,14 @@ class CORE_EXPORT QgsSingleSymbolRenderer : public QgsFeatureRenderer
4141
QgsSymbol* symbol() const;
4242
void setSymbol( QgsSymbol* s );
4343

44-
void setSizeScaleField( const QString& fieldOrExpression );
45-
QString sizeScaleField() const;
46-
47-
void setScaleMethod( QgsSymbol::ScaleMethod scaleMethod );
48-
QgsSymbol::ScaleMethod scaleMethod() const { return mScaleMethod; }
49-
5044
virtual QString dump() const override;
5145

5246
virtual QgsSingleSymbolRenderer* clone() const override;
5347

5448
virtual void toSld( QDomDocument& doc, QDomElement &element, QgsStringMap props = QgsStringMap() ) const override;
5549
static QgsFeatureRenderer* createFromSld( QDomElement& element, QgsWkbTypes::GeometryType geomType );
5650

57-
virtual Capabilities capabilities() override { return SymbolLevels | RotationField; }
51+
virtual Capabilities capabilities() override { return SymbolLevels; }
5852
virtual QgsSymbolList symbols( QgsRenderContext& context ) override;
5953
static QgsFeatureRenderer* create( QDomElement& element );
6054
virtual QDomElement save( QDomDocument& doc ) override;
@@ -71,13 +65,7 @@ class CORE_EXPORT QgsSingleSymbolRenderer : public QgsFeatureRenderer
7165

7266
protected:
7367
QScopedPointer<QgsSymbol> mSymbol;
74-
QScopedPointer<QgsExpression> mRotation;
75-
QScopedPointer<QgsExpression> mSizeScale;
76-
QgsSymbol::ScaleMethod mScaleMethod;
7768

78-
// temporary stuff for rendering
79-
QScopedPointer<QgsSymbol> mTempSymbol;
80-
double mOrigSize;
8169
};
8270

8371

‎src/gui/symbology-ng/qgscategorizedsymbolrendererwidget.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -761,8 +761,6 @@ void QgsCategorizedSymbolRendererWidget::addCategories()
761761
// recreate renderer
762762
QgsCategorizedSymbolRenderer *r = new QgsCategorizedSymbolRenderer( attrName, cats );
763763
r->setSourceSymbol( mCategorizedSymbol->clone() );
764-
r->setScaleMethod( mRenderer->scaleMethod() );
765-
r->setSizeScaleField( mRenderer->sizeScaleField() );
766764
r->setInvertedColorRamp( cbxInvertedColorRamp->isChecked() );
767765
QScopedPointer< QgsColorRamp > ramp( getColorRamp() );
768766
if ( ramp )

‎tests/src/python/test_qgsgraduatedsymbolrenderer.py

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,6 @@ def dumpGraduatedRenderer(r):
144144
rstr = rstr + dumpColorRamp(r.sourceColorRamp())
145145
rstr = rstr + str(r.invertedColorRamp()) + ':'
146146
rstr = rstr + dumpRangeList(r.ranges())
147-
rstr = rstr + r.sizeScaleField() + ':'
148-
rstr = rstr + str(r.scaleMethod()) + ':'
149147
return rstr
150148

151149
#=================================================================
@@ -314,26 +312,12 @@ def testQgsGraduatedSymbolRenderer_1(self):
314312
self.assertFalse(renderer.invertedColorRamp(),
315313
"Get/set renderer inverted color ramp")
316314

317-
value = '"value"*3'
318-
exp = QgsSymbolLayerUtils.fieldOrExpressionToExpression(value)
319-
valuestr = QgsSymbolLayerUtils.fieldOrExpressionFromExpression(exp)
320-
renderer.setSizeScaleField(value)
321-
self.assertEqual(valuestr, renderer.sizeScaleField(),
322-
"Get/set renderer size scale field")
323-
324315
renderer.setSourceColorRamp(ramp)
325316
self.assertEqual(
326317
dumpColorRamp(ramp),
327318
dumpColorRamp(renderer.sourceColorRamp()),
328319
"Get/set renderer color ramp")
329320

330-
for sm in (
331-
QgsSymbol.ScaleArea,
332-
QgsSymbol.ScaleDiameter,
333-
):
334-
renderer.setScaleMethod(sm)
335-
self.assertEqual(str(sm), str(renderer.scaleMethod()),
336-
"Get/set renderer scale method")
337321
# test for classificatio with varying size
338322
renderer.setGraduatedMethod(QgsGraduatedSymbolRenderer.GraduatedSize)
339323
renderer.setSourceColorRamp(None)

0 commit comments

Comments
 (0)
Please sign in to comment.