Skip to content

Commit 6fb0673

Browse files
henriknyalldawson
authored andcommittedMar 26, 2019
[FEATURE] [needs-docs] Point Displacement label distance factor
Adds label distance factor spinbox to Point Displacement symbology window. Calculates label distance based on the current symbology diagonal instead of a general maximum diagonal. Replaces the hard coded distance "symbolDiagonal/2.0" with "symbolDiagonal*mLabelDistanceFactor", where mLabelDistanceFactor is set to the spinbox value. It's an old feature request (Point displacement labels adjustable offsets "https://issues.qgis.org/issues/5945").
1 parent 09fe865 commit 6fb0673

File tree

7 files changed

+147
-55
lines changed

7 files changed

+147
-55
lines changed
 

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

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,22 @@ Sets a factor for increasing the ring size of displacement groups.
104104
Returns the factor for increasing the ring size of displacement groups.
105105

106106
.. seealso:: :py:func:`setCircleRadiusAddition`
107+
%End
108+
109+
void setLabelDistanceFactor( double factor );
110+
%Docstring
111+
Sets a factor for increasing the label distances from the symbol.
112+
113+
:param factor: addition factor
114+
115+
.. seealso:: :py:func:`labelDistanceFactor`
116+
%End
117+
118+
double labelDistanceFactor() const;
119+
%Docstring
120+
Returns the factor for label distance from the symbol.
121+
122+
.. seealso:: :py:func:`setLabelDistanceFactor`
107123
%End
108124

109125
Placement placement() const;

‎src/core/symbology/qgspointdisplacementrenderer.cpp

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ QgsPointDisplacementRenderer *QgsPointDisplacementRenderer::clone() const
4343
r->setLabelColor( mLabelColor );
4444
r->setPlacement( mPlacement );
4545
r->setCircleRadiusAddition( mCircleRadiusAddition );
46+
r->setLabelDistanceFactor( mLabelDistanceFactor );
4647
r->setMinimumLabelScale( mMinLabelScale );
4748
r->setTolerance( mTolerance );
4849
r->setToleranceUnit( mToleranceUnit );
@@ -60,12 +61,21 @@ void QgsPointDisplacementRenderer::drawGroup( QPointF centerPoint, QgsRenderCont
6061

6162
//calculate max diagonal size from all symbols in group
6263
double diagonal = 0;
64+
QList<double> diagonals;
65+
double currentDiagonal;
6366

6467
for ( const GroupedFeature &feature : group )
6568
{
6669
if ( QgsMarkerSymbol *symbol = feature.symbol() )
6770
{
68-
diagonal = std::max( diagonal, M_SQRT2 * symbol->size( context ) );
71+
currentDiagonal = M_SQRT2 * symbol->size( context );
72+
diagonals.append( currentDiagonal );
73+
diagonal = std::max( diagonal, currentDiagonal );
74+
75+
}
76+
else
77+
{
78+
diagonals.append( 0.0 );
6979
}
7080
}
7181

@@ -77,7 +87,7 @@ void QgsPointDisplacementRenderer::drawGroup( QPointF centerPoint, QgsRenderCont
7787
double gridRadius = -1.0;
7888
int gridSize = -1;
7989

80-
calculateSymbolAndLabelPositions( symbolContext, centerPoint, group.size(), diagonal, symbolPositions, labelPositions, circleRadius, gridRadius, gridSize );
90+
calculateSymbolAndLabelPositions( symbolContext, centerPoint, group.size(), diagonal, symbolPositions, labelPositions, circleRadius, gridRadius, gridSize, diagonals );
8191

8292
//only draw circle/grid if there's a pen present - otherwise skip drawing transparent grids
8393
if ( mCircleColor.isValid() && mCircleColor.alpha() > 0 )
@@ -149,6 +159,7 @@ QgsFeatureRenderer *QgsPointDisplacementRenderer::create( QDomElement &symbology
149159
r->setCircleColor( QgsSymbolLayerUtils::decodeColor( symbologyElem.attribute( QStringLiteral( "circleColor" ), QString() ) ) );
150160
r->setLabelColor( QgsSymbolLayerUtils::decodeColor( symbologyElem.attribute( QStringLiteral( "labelColor" ), QString() ) ) );
151161
r->setCircleRadiusAddition( symbologyElem.attribute( QStringLiteral( "circleRadiusAddition" ), QStringLiteral( "0.0" ) ).toDouble() );
162+
r->setLabelDistanceFactor( symbologyElem.attribute( QStringLiteral( "labelDistanceFactor" ), QStringLiteral( "0.5" ) ).toDouble() );
152163
r->setMinimumLabelScale( symbologyElem.attribute( QStringLiteral( "maxLabelScaleDenominator" ), QStringLiteral( "-1" ) ).toDouble() );
153164
r->setTolerance( symbologyElem.attribute( QStringLiteral( "tolerance" ), QStringLiteral( "0.00001" ) ).toDouble() );
154165
r->setToleranceUnit( QgsUnitTypes::decodeRenderUnit( symbologyElem.attribute( QStringLiteral( "toleranceUnit" ), QStringLiteral( "MapUnit" ) ) ) );
@@ -186,6 +197,7 @@ QDomElement QgsPointDisplacementRenderer::save( QDomDocument &doc, const QgsRead
186197
rendererElement.setAttribute( QStringLiteral( "circleColor" ), QgsSymbolLayerUtils::encodeColor( mCircleColor ) );
187198
rendererElement.setAttribute( QStringLiteral( "labelColor" ), QgsSymbolLayerUtils::encodeColor( mLabelColor ) );
188199
rendererElement.setAttribute( QStringLiteral( "circleRadiusAddition" ), QString::number( mCircleRadiusAddition ) );
200+
rendererElement.setAttribute( QStringLiteral( "labelDistanceFactor" ), QString::number( mLabelDistanceFactor ) );
189201
rendererElement.setAttribute( QStringLiteral( "placement" ), static_cast< int >( mPlacement ) );
190202
rendererElement.setAttribute( QStringLiteral( "maxLabelScaleDenominator" ), QString::number( mMinLabelScale ) );
191203
rendererElement.setAttribute( QStringLiteral( "tolerance" ), QString::number( mTolerance ) );
@@ -232,7 +244,7 @@ void QgsPointDisplacementRenderer::setCenterSymbol( QgsMarkerSymbol *symbol )
232244

233245
void QgsPointDisplacementRenderer::calculateSymbolAndLabelPositions( QgsSymbolRenderContext &symbolContext, QPointF centerPoint, int nPosition,
234246
double symbolDiagonal, QList<QPointF> &symbolPositions, QList<QPointF> &labelShifts, double &circleRadius, double &gridRadius,
235-
int &gridSize ) const
247+
int &gridSize, QList<double> &diagonals ) const
236248
{
237249
symbolPositions.clear();
238250
labelShifts.clear();
@@ -243,8 +255,9 @@ void QgsPointDisplacementRenderer::calculateSymbolAndLabelPositions( QgsSymbolRe
243255
}
244256
else if ( nPosition == 1 ) //If there is only one feature, draw it exactly at the center position
245257
{
258+
double side = sqrt( pow( symbolDiagonal, 2 ) / 2.0 );
246259
symbolPositions.append( centerPoint );
247-
labelShifts.append( QPointF( symbolDiagonal / 2.0, -symbolDiagonal / 2.0 ) );
260+
labelShifts.append( QPointF( side * mLabelDistanceFactor, -side * mLabelDistanceFactor ) );
248261
return;
249262
}
250263

@@ -259,16 +272,19 @@ void QgsPointDisplacementRenderer::calculateSymbolAndLabelPositions( QgsSymbolRe
259272

260273
double fullPerimeter = 2 * M_PI;
261274
double angleStep = fullPerimeter / nPosition;
262-
for ( double currentAngle = 0.0; currentAngle < fullPerimeter; currentAngle += angleStep )
275+
276+
int featureIndex;
277+
double currentAngle;
278+
for ( currentAngle = 0.0, featureIndex = 0; currentAngle < fullPerimeter; currentAngle += angleStep, featureIndex++ )
263279
{
264280
double sinusCurrentAngle = std::sin( currentAngle );
265281
double cosinusCurrentAngle = std::cos( currentAngle );
266282
QPointF positionShift( radius * sinusCurrentAngle, radius * cosinusCurrentAngle );
267-
QPointF labelShift( ( radius + symbolDiagonal / 2 ) * sinusCurrentAngle, ( radius + symbolDiagonal / 2 ) * cosinusCurrentAngle );
283+
284+
QPointF labelShift( ( radius + diagonals[featureIndex] * mLabelDistanceFactor ) * sinusCurrentAngle, ( radius + diagonals[featureIndex] * mLabelDistanceFactor ) * cosinusCurrentAngle );
268285
symbolPositions.append( centerPoint + positionShift );
269286
labelShifts.append( labelShift );
270287
}
271-
272288
circleRadius = radius;
273289
break;
274290
}
@@ -279,6 +295,7 @@ void QgsPointDisplacementRenderer::calculateSymbolAndLabelPositions( QgsSymbolRe
279295
int pointsRemaining = nPosition;
280296
int ringNumber = 1;
281297
double firstRingRadius = centerDiagonal / 2.0 + symbolDiagonal / 2.0;
298+
int featureIndex = 0;
282299
while ( pointsRemaining > 0 )
283300
{
284301
double radiusCurrentRing = std::max( firstRingRadius + ( ringNumber - 1 ) * symbolDiagonal + ringNumber * circleAdditionPainterUnits, 0.0 );
@@ -292,10 +309,11 @@ void QgsPointDisplacementRenderer::calculateSymbolAndLabelPositions( QgsSymbolRe
292309
double sinusCurrentAngle = std::sin( currentAngle );
293310
double cosinusCurrentAngle = std::cos( currentAngle );
294311
QPointF positionShift( radiusCurrentRing * sinusCurrentAngle, radiusCurrentRing * cosinusCurrentAngle );
295-
QPointF labelShift( ( radiusCurrentRing + symbolDiagonal / 2 ) * sinusCurrentAngle, ( radiusCurrentRing + symbolDiagonal / 2 ) * cosinusCurrentAngle );
312+
QPointF labelShift( ( radiusCurrentRing + diagonals[featureIndex] * mLabelDistanceFactor ) * sinusCurrentAngle, ( radiusCurrentRing + diagonals[featureIndex] * mLabelDistanceFactor ) * cosinusCurrentAngle );
296313
symbolPositions.append( centerPoint + positionShift );
297314
labelShifts.append( labelShift );
298315
currentAngle += angleStep;
316+
featureIndex++;
299317
}
300318

301319
pointsRemaining -= actualPointsCurrentRing;
@@ -315,15 +333,17 @@ void QgsPointDisplacementRenderer::calculateSymbolAndLabelPositions( QgsSymbolRe
315333
double userPointRadius = originalPointRadius + circleAdditionPainterUnits;
316334

317335
int yIndex = 0;
336+
int featureIndex = 0;
318337
while ( pointsRemaining > 0 )
319338
{
320339
for ( int xIndex = 0; xIndex < gridSize && pointsRemaining > 0; ++xIndex )
321340
{
322341
QPointF positionShift( userPointRadius * xIndex, userPointRadius * yIndex );
323-
QPointF labelShift( ( userPointRadius + symbolDiagonal / 2 ) * xIndex, ( userPointRadius + symbolDiagonal / 2 ) * yIndex );
342+
QPointF labelShift( ( userPointRadius + diagonals[featureIndex] * mLabelDistanceFactor ) * xIndex, ( userPointRadius + diagonals[featureIndex] * mLabelDistanceFactor ) * yIndex );
324343
symbolPositions.append( centerPoint + positionShift );
325344
labelShifts.append( labelShift );
326345
pointsRemaining--;
346+
featureIndex++;
327347
}
328348
yIndex++;
329349
}

‎src/core/symbology/qgspointdisplacementrenderer.h

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,19 @@ class CORE_EXPORT QgsPointDisplacementRenderer: public QgsPointDistanceRenderer
9999
*/
100100
double circleRadiusAddition() const { return mCircleRadiusAddition; }
101101

102+
/**
103+
* Sets a factor for increasing the label distances from the symbol.
104+
* \param factor addition factor
105+
* \see labelDistanceFactor()
106+
*/
107+
void setLabelDistanceFactor( double factor ) { mLabelDistanceFactor = factor; }
108+
109+
/**
110+
* Returns the factor for label distance from the symbol.
111+
* \see setLabelDistanceFactor()
112+
*/
113+
double labelDistanceFactor() const { return mLabelDistanceFactor; }
114+
102115
/**
103116
* Returns the placement method used for dispersing the points.
104117
* \see setPlacement()
@@ -152,12 +165,14 @@ class CORE_EXPORT QgsPointDisplacementRenderer: public QgsPointDistanceRenderer
152165
QColor mCircleColor;
153166
//! Addition to the default circle radius
154167
double mCircleRadiusAddition = 0;
168+
//! Factor for label distance
169+
double mLabelDistanceFactor = 0.5;
155170

156171
void drawGroup( QPointF centerPoint, QgsRenderContext &context, const QgsPointDistanceRenderer::ClusteredGroup &group ) override SIP_FORCE;
157172

158173
//helper functions
159174
void calculateSymbolAndLabelPositions( QgsSymbolRenderContext &symbolContext, QPointF centerPoint, int nPosition, double symbolDiagonal, QList<QPointF> &symbolPositions, QList<QPointF> &labelShifts, double &circleRadius,
160-
double &gridRadius, int &gridSize ) const;
175+
double &gridRadius, int &gridSize, QList<double> &diagonals ) const;
161176
void drawCircle( double radiusPainterUnits, QgsSymbolRenderContext &context, QPointF centerPoint, int nSymbols );
162177
void drawSymbols( const ClusteredGroup &group, QgsRenderContext &context, const QList<QPointF> &symbolPositions );
163178
void drawGrid( int gridSizeUnits, QgsSymbolRenderContext &context,

‎src/gui/symbology/qgspointdisplacementrendererwidget.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ QgsPointDisplacementRendererWidget::QgsPointDisplacementRendererWidget( QgsVecto
5858
connect( mDistanceUnitWidget, &QgsUnitSelectionWidget::changed, this, &QgsPointDisplacementRendererWidget::mDistanceUnitWidget_changed );
5959
connect( mLabelColorButton, &QgsColorButton::colorChanged, this, &QgsPointDisplacementRendererWidget::mLabelColorButton_colorChanged );
6060
connect( mCircleModificationSpinBox, static_cast < void ( QDoubleSpinBox::* )( double ) > ( &QDoubleSpinBox::valueChanged ), this, &QgsPointDisplacementRendererWidget::mCircleModificationSpinBox_valueChanged );
61+
connect( mLabelDistanceFactorSpinBox, static_cast < void ( QDoubleSpinBox::* )( double ) > ( &QDoubleSpinBox::valueChanged ), this, &QgsPointDisplacementRendererWidget::mLabelDistanceFactorSpinBox_valueChanged );
6162
connect( mScaleDependentLabelsCheckBox, &QCheckBox::stateChanged, this, &QgsPointDisplacementRendererWidget::mScaleDependentLabelsCheckBox_stateChanged );
6263
connect( mRendererSettingsButton, &QPushButton::clicked, this, &QgsPointDisplacementRendererWidget::mRendererSettingsButton_clicked );
6364
this->layout()->setContentsMargins( 0, 0, 0, 0 );
@@ -130,6 +131,8 @@ QgsPointDisplacementRendererWidget::QgsPointDisplacementRendererWidget( QgsVecto
130131
mLabelFontButton->setCurrentFont( mRenderer->labelFont() );
131132
mCircleModificationSpinBox->setClearValue( 0.0 );
132133
mCircleModificationSpinBox->setValue( mRenderer->circleRadiusAddition() );
134+
mLabelDistanceFactorSpinBox->setClearValue( 0.5 );
135+
mLabelDistanceFactorSpinBox->setValue( mRenderer->labelDistanceFactor() );
133136
mDistanceSpinBox->setValue( mRenderer->tolerance() );
134137
mDistanceUnitWidget->setUnit( mRenderer->toleranceUnit() );
135138
mDistanceUnitWidget->setMapUnitScale( mRenderer->toleranceMapUnitScale() );
@@ -336,6 +339,17 @@ void QgsPointDisplacementRendererWidget::mCircleModificationSpinBox_valueChanged
336339
emit widgetChanged();
337340
}
338341

342+
void QgsPointDisplacementRendererWidget::mLabelDistanceFactorSpinBox_valueChanged( double d )
343+
{
344+
if ( !mRenderer )
345+
{
346+
return;
347+
}
348+
349+
mRenderer->setLabelDistanceFactor( d );
350+
emit widgetChanged();
351+
}
352+
339353
void QgsPointDisplacementRendererWidget::mDistanceSpinBox_valueChanged( double d )
340354
{
341355
if ( mRenderer )
@@ -388,6 +402,7 @@ void QgsPointDisplacementRendererWidget::blockAllSignals( bool block )
388402
mRendererComboBox->blockSignals( block );
389403
mLabelColorButton->blockSignals( block );
390404
mCircleModificationSpinBox->blockSignals( block );
405+
mLabelDistanceFactorSpinBox->blockSignals( block );
391406
mScaleDependentLabelsCheckBox->blockSignals( block );
392407
mMinLabelScaleWidget->blockSignals( block );
393408
mCenterSymbolToolButton->blockSignals( block );

‎src/gui/symbology/qgspointdisplacementrendererwidget.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ class GUI_EXPORT QgsPointDisplacementRendererWidget: public QgsRendererWidget, p
6060
void mDistanceUnitWidget_changed();
6161
void mLabelColorButton_colorChanged( const QColor &newColor );
6262
void mCircleModificationSpinBox_valueChanged( double d );
63+
void mLabelDistanceFactorSpinBox_valueChanged( double d );
6364
void mScaleDependentLabelsCheckBox_stateChanged( int state );
6465
void minLabelScaleChanged( double scale );
6566
void mRendererSettingsButton_clicked();

‎src/ui/qgspointdisplacementrendererwidgetbase.ui

Lines changed: 68 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<x>0</x>
88
<y>0</y>
99
<width>381</width>
10-
<height>529</height>
10+
<height>550</height>
1111
</rect>
1212
</property>
1313
<property name="windowTitle">
@@ -42,31 +42,42 @@
4242
<string>Labels</string>
4343
</property>
4444
<layout class="QGridLayout" name="gridLayout">
45-
<item row="0" column="0">
46-
<widget class="QLabel" name="mLabelAttributeLabel">
45+
<item row="3" column="0">
46+
<widget class="QLabel" name="mLabelDistanceLabel">
4747
<property name="text">
48-
<string>Label attribute</string>
48+
<string>Label distance factor</string>
4949
</property>
5050
</widget>
5151
</item>
52-
<item row="0" column="1">
53-
<widget class="QComboBox" name="mLabelFieldComboBox"/>
52+
<item row="2" column="0">
53+
<widget class="QLabel" name="mLabelColorLabel">
54+
<property name="text">
55+
<string>Label color</string>
56+
</property>
57+
</widget>
5458
</item>
55-
<item row="1" column="0">
56-
<widget class="QLabel" name="label">
59+
<item row="5" column="2">
60+
<widget class="QgsScaleWidget" name="mMinLabelScaleWidget">
61+
<property name="focusPolicy">
62+
<enum>Qt::StrongFocus</enum>
63+
</property>
64+
</widget>
65+
</item>
66+
<item row="0" column="0">
67+
<widget class="QLabel" name="mLabelAttributeLabel">
5768
<property name="text">
58-
<string>Label font</string>
69+
<string>Label attribute</string>
5970
</property>
6071
</widget>
6172
</item>
62-
<item row="2" column="0">
63-
<widget class="QLabel" name="mLabelColorLabel">
73+
<item row="4" column="0" colspan="3">
74+
<widget class="QCheckBox" name="mScaleDependentLabelsCheckBox">
6475
<property name="text">
65-
<string>Label color</string>
76+
<string>Use scale dependent labeling</string>
6677
</property>
6778
</widget>
6879
</item>
69-
<item row="2" column="1">
80+
<item row="2" column="2">
7081
<widget class="QgsColorButton" name="mLabelColorButton">
7182
<property name="minimumSize">
7283
<size>
@@ -85,28 +96,24 @@
8596
</property>
8697
</widget>
8798
</item>
88-
<item row="3" column="0" colspan="2">
89-
<widget class="QCheckBox" name="mScaleDependentLabelsCheckBox">
99+
<item row="1" column="0">
100+
<widget class="QLabel" name="label">
90101
<property name="text">
91-
<string>Use scale dependent labeling</string>
102+
<string>Label font</string>
92103
</property>
93104
</widget>
94105
</item>
95-
<item row="4" column="0">
106+
<item row="0" column="2">
107+
<widget class="QComboBox" name="mLabelFieldComboBox"/>
108+
</item>
109+
<item row="5" column="0">
96110
<widget class="QLabel" name="mMaxScaleLabel">
97111
<property name="text">
98112
<string>Minimum map scale</string>
99113
</property>
100114
</widget>
101115
</item>
102-
<item row="4" column="1">
103-
<widget class="QgsScaleWidget" name="mMinLabelScaleWidget" native="true">
104-
<property name="focusPolicy">
105-
<enum>Qt::StrongFocus</enum>
106-
</property>
107-
</widget>
108-
</item>
109-
<item row="1" column="1">
116+
<item row="1" column="2">
110117
<widget class="QgsFontButton" name="mLabelFontButton">
111118
<property name="sizePolicy">
112119
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
@@ -119,6 +126,22 @@
119126
</property>
120127
</widget>
121128
</item>
129+
<item row="3" column="2">
130+
<widget class="QgsDoubleSpinBox" name="mLabelDistanceFactorSpinBox">
131+
<property name="minimum">
132+
<double>-5.000000000000000</double>
133+
</property>
134+
<property name="maximum">
135+
<double>5.000000000000000</double>
136+
</property>
137+
<property name="singleStep">
138+
<double>0.100000000000000</double>
139+
</property>
140+
<property name="value">
141+
<double>0.500000000000000</double>
142+
</property>
143+
</widget>
144+
</item>
122145
</layout>
123146
</widget>
124147
</item>
@@ -131,12 +154,12 @@
131154
</item>
132155
<item row="6" column="0">
133156
<widget class="QLabel" name="mDistanceToleranceLabel">
134-
<property name="text">
135-
<string>Distance</string>
136-
</property>
137157
<property name="toolTip">
138158
<string>Point distance tolerance</string>
139159
</property>
160+
<property name="text">
161+
<string>Distance</string>
162+
</property>
140163
</widget>
141164
</item>
142165
<item row="4" column="0" colspan="2">
@@ -284,44 +307,44 @@
284307
</layout>
285308
</widget>
286309
<customwidgets>
310+
<customwidget>
311+
<class>QgsColorButton</class>
312+
<extends>QToolButton</extends>
313+
<header>qgscolorbutton.h</header>
314+
<container>1</container>
315+
</customwidget>
287316
<customwidget>
288317
<class>QgsDoubleSpinBox</class>
289318
<extends>QDoubleSpinBox</extends>
290319
<header>qgsdoublespinbox.h</header>
291320
</customwidget>
292321
<customwidget>
293-
<class>QgsCollapsibleGroupBoxBasic</class>
294-
<extends>QGroupBox</extends>
295-
<header>qgscollapsiblegroupbox.h</header>
296-
<container>1</container>
322+
<class>QgsFontButton</class>
323+
<extends>QToolButton</extends>
324+
<header>qgsfontbutton.h</header>
325+
</customwidget>
326+
<customwidget>
327+
<class>QgsScaleWidget</class>
328+
<extends>QWidget</extends>
329+
<header>qgsscalewidget.h</header>
297330
</customwidget>
298331
<customwidget>
299332
<class>QgsSymbolButton</class>
300333
<extends>QToolButton</extends>
301334
<header>qgssymbolbutton.h</header>
302335
</customwidget>
303336
<customwidget>
304-
<class>QgsColorButton</class>
305-
<extends>QToolButton</extends>
306-
<header>qgscolorbutton.h</header>
337+
<class>QgsCollapsibleGroupBoxBasic</class>
338+
<extends>QGroupBox</extends>
339+
<header>qgscollapsiblegroupbox.h</header>
307340
<container>1</container>
308341
</customwidget>
309-
<customwidget>
310-
<class>QgsFontButton</class>
311-
<extends>QToolButton</extends>
312-
<header>qgsfontbutton.h</header>
313-
</customwidget>
314342
<customwidget>
315343
<class>QgsUnitSelectionWidget</class>
316344
<extends>QWidget</extends>
317345
<header>qgsunitselectionwidget.h</header>
318346
<container>1</container>
319347
</customwidget>
320-
<customwidget>
321-
<class>QgsScaleWidget</class>
322-
<extends>QWidget</extends>
323-
<header>qgsscalewidget.h</header>
324-
</customwidget>
325348
</customwidgets>
326349
<tabstops>
327350
<tabstop>mCenterSymbolToolButton</tabstop>

‎tests/src/python/test_qgspointdisplacementrenderer.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ def _setProperties(self, r):
9797
r.setCircleColor(QColor(0, 255, 0))
9898
r.setCircleRadiusAddition(2.5)
9999
r.setPlacement(QgsPointDisplacementRenderer.ConcentricRings)
100+
r.setLabelDistanceFactor(0.25)
100101
m = QgsMarkerSymbol()
101102
m.setColor(QColor(0, 255, 0))
102103
r.setCenterSymbol(m)
@@ -120,6 +121,7 @@ def _checkProperties(self, r):
120121
self.assertEqual(r.placement(), QgsPointDisplacementRenderer.ConcentricRings)
121122
self.assertEqual(r.centerSymbol().color(), QColor(0, 255, 0))
122123
self.assertEqual(r.embeddedRenderer().symbol().color().name(), '#fdbf6f')
124+
self.assertEqual(r.labelDistanceFactor(), 0.25)
123125

124126
def testGettersSetters(self):
125127
""" test getters and setters """

0 commit comments

Comments
 (0)
Please sign in to comment.