Skip to content

Commit 7c4f879

Browse files
committed
Fix labeling unit types incorrectly restored as map units from old projects
1 parent f46b25b commit 7c4f879

File tree

1 file changed

+26
-24
lines changed

1 file changed

+26
-24
lines changed

src/core/qgstextrenderer.cpp

+26-24
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,20 @@
2626
Q_GUI_EXPORT extern int qt_defaultDpiX();
2727
Q_GUI_EXPORT extern int qt_defaultDpiY();
2828

29+
QgsUnitTypes::RenderUnit convertFromOldLabelUnit( int val )
30+
{
31+
if ( val == 0 )
32+
return QgsUnitTypes::RenderPoints;
33+
else if ( val == 1 )
34+
return QgsUnitTypes::RenderMillimeters;
35+
else if ( val == 2 )
36+
return QgsUnitTypes::RenderMapUnits;
37+
else if ( val == 3 )
38+
return QgsUnitTypes::RenderPercentage;
39+
else
40+
return QgsUnitTypes::RenderMillimeters;
41+
}
42+
2943
static void _fixQPictureDPI( QPainter* p )
3044
{
3145
// QPicture makes an assumption that we drawing to it with system DPI.
@@ -581,8 +595,7 @@ void QgsTextBackgroundSettings::readFromLayer( QgsVectorLayer* layer )
581595

582596
if ( layer->customProperty( QStringLiteral( "labeling/shapeSizeUnit" ) ).toString().isEmpty() )
583597
{
584-
d->sizeUnits = layer->customProperty( QStringLiteral( "labeling/shapeSizeUnits" ), 0 ).toUInt() == 0 ?
585-
QgsUnitTypes::RenderMillimeters : QgsUnitTypes::RenderMapUnits;
598+
d->sizeUnits = convertFromOldLabelUnit( layer->customProperty( QStringLiteral( "labeling/shapeSizeUnits" ), 0 ).toUInt() );
586599
}
587600
else
588601
{
@@ -606,8 +619,7 @@ void QgsTextBackgroundSettings::readFromLayer( QgsVectorLayer* layer )
606619

607620
if ( layer->customProperty( QStringLiteral( "labeling/shapeOffsetUnit" ) ).toString().isEmpty() )
608621
{
609-
d->offsetUnits = layer->customProperty( QStringLiteral( "labeling/shapeOffsetUnits" ), 0 ).toUInt() == 0 ?
610-
QgsUnitTypes::RenderMillimeters : QgsUnitTypes::RenderMapUnits;
622+
d->offsetUnits = convertFromOldLabelUnit( layer->customProperty( QStringLiteral( "labeling/shapeOffsetUnits" ), 0 ).toUInt() );
611623
}
612624
else
613625
{
@@ -630,8 +642,7 @@ void QgsTextBackgroundSettings::readFromLayer( QgsVectorLayer* layer )
630642

631643
if ( layer->customProperty( QStringLiteral( "labeling/shapeRadiiUnit" ) ).toString().isEmpty() )
632644
{
633-
d->radiiUnits = layer->customProperty( QStringLiteral( "labeling/shapeRadiiUnits" ), 0 ).toUInt() == 0 ?
634-
QgsUnitTypes::RenderMillimeters : QgsUnitTypes::RenderMapUnits;
645+
d->radiiUnits = convertFromOldLabelUnit( layer->customProperty( QStringLiteral( "labeling/shapeRadiiUnits" ), 0 ).toUInt() );
635646
}
636647
else
637648
{
@@ -653,8 +664,7 @@ void QgsTextBackgroundSettings::readFromLayer( QgsVectorLayer* layer )
653664
d->borderWidth = layer->customProperty( QStringLiteral( "labeling/shapeBorderWidth" ), QVariant( .0 ) ).toDouble();
654665
if ( layer->customProperty( QStringLiteral( "labeling/shapeBorderWidthUnit" ) ).toString().isEmpty() )
655666
{
656-
d->borderWidthUnits = layer->customProperty( QStringLiteral( "labeling/shapeBorderWidthUnits" ), 0 ).toUInt() == 0 ?
657-
QgsUnitTypes::RenderMillimeters : QgsUnitTypes::RenderMapUnits;
667+
d->borderWidthUnits = convertFromOldLabelUnit( layer->customProperty( QStringLiteral( "labeling/shapeBorderWidthUnits" ), 0 ).toUInt() );
658668
}
659669
else
660670
{
@@ -726,8 +736,7 @@ void QgsTextBackgroundSettings::readXml( const QDomElement& elem )
726736

727737
if ( !backgroundElem.hasAttribute( QStringLiteral( "shapeSizeUnit" ) ) )
728738
{
729-
d->sizeUnits = backgroundElem.attribute( QStringLiteral( "shapeSizeUnits" ) ).toUInt() == 0 ? QgsUnitTypes::RenderMillimeters
730-
: QgsUnitTypes::RenderMapUnits;
739+
d->sizeUnits = convertFromOldLabelUnit( backgroundElem.attribute( QStringLiteral( "shapeSizeUnits" ) ).toUInt() );
731740
}
732741
else
733742
{
@@ -751,8 +760,7 @@ void QgsTextBackgroundSettings::readXml( const QDomElement& elem )
751760

752761
if ( !backgroundElem.hasAttribute( QStringLiteral( "shapeOffsetUnit" ) ) )
753762
{
754-
d->offsetUnits = backgroundElem.attribute( QStringLiteral( "shapeOffsetUnits" ) ).toUInt() == 0 ? QgsUnitTypes::RenderMillimeters
755-
: QgsUnitTypes::RenderMapUnits;
763+
d->offsetUnits = convertFromOldLabelUnit( backgroundElem.attribute( QStringLiteral( "shapeOffsetUnits" ) ).toUInt() );
756764
}
757765
else
758766
{
@@ -774,8 +782,7 @@ void QgsTextBackgroundSettings::readXml( const QDomElement& elem )
774782

775783
if ( !backgroundElem.hasAttribute( QStringLiteral( "shapeRadiiUnit" ) ) )
776784
{
777-
d->radiiUnits = backgroundElem.attribute( QStringLiteral( "shapeRadiiUnits" ) ).toUInt() == 0 ? QgsUnitTypes::RenderMillimeters
778-
: QgsUnitTypes::RenderMapUnits;
785+
d->radiiUnits = convertFromOldLabelUnit( backgroundElem.attribute( QStringLiteral( "shapeRadiiUnits" ) ).toUInt() );
779786
}
780787
else
781788
{
@@ -797,8 +804,7 @@ void QgsTextBackgroundSettings::readXml( const QDomElement& elem )
797804

798805
if ( !backgroundElem.hasAttribute( QStringLiteral( "shapeBorderWidthUnit" ) ) )
799806
{
800-
d->borderWidthUnits = backgroundElem.attribute( QStringLiteral( "shapeBorderWidthUnits" ) ).toUInt() == 0 ? QgsUnitTypes::RenderMillimeters
801-
: QgsUnitTypes::RenderMapUnits;
807+
d->borderWidthUnits = convertFromOldLabelUnit( backgroundElem.attribute( QStringLiteral( "shapeBorderWidthUnits" ) ).toUInt() );
802808
}
803809
else
804810
{
@@ -1048,8 +1054,7 @@ void QgsTextShadowSettings::readFromLayer( QgsVectorLayer* layer )
10481054

10491055
if ( layer->customProperty( QStringLiteral( "labeling/shadowOffsetUnit" ) ).toString().isEmpty() )
10501056
{
1051-
d->offsetUnits = layer->customProperty( QStringLiteral( "labeling/shadowOffsetUnits" ), 0 ).toUInt() == 0 ?
1052-
QgsUnitTypes::RenderMillimeters : QgsUnitTypes::RenderMapUnits;
1057+
d->offsetUnits = convertFromOldLabelUnit( layer->customProperty( QStringLiteral( "labeling/shadowOffsetUnits" ), 0 ).toUInt() );
10531058
}
10541059
else
10551060
{
@@ -1070,8 +1075,7 @@ void QgsTextShadowSettings::readFromLayer( QgsVectorLayer* layer )
10701075

10711076
if ( layer->customProperty( QStringLiteral( "labeling/shadowRadiusUnit" ) ).toString().isEmpty() )
10721077
{
1073-
d->radiusUnits = layer->customProperty( QStringLiteral( "labeling/shadowRadiusUnits" ), 0 ).toUInt() == 0 ?
1074-
QgsUnitTypes::RenderMillimeters : QgsUnitTypes::RenderMapUnits;
1078+
d->radiusUnits = convertFromOldLabelUnit( layer->customProperty( QStringLiteral( "labeling/shadowRadiusUnits" ), 0 ).toUInt() );
10751079
}
10761080
else
10771081
{
@@ -1132,8 +1136,7 @@ void QgsTextShadowSettings::readXml( const QDomElement& elem )
11321136

11331137
if ( !shadowElem.hasAttribute( QStringLiteral( "shadowOffsetUnit" ) ) )
11341138
{
1135-
d->offsetUnits = shadowElem.attribute( QStringLiteral( "shadowOffsetUnits" ) ).toUInt() == 0 ? QgsUnitTypes::RenderMillimeters
1136-
: QgsUnitTypes::RenderMapUnits;
1139+
d->offsetUnits = convertFromOldLabelUnit( shadowElem.attribute( QStringLiteral( "shadowOffsetUnits" ) ).toUInt() );
11371140
}
11381141
else
11391142
{
@@ -1155,8 +1158,7 @@ void QgsTextShadowSettings::readXml( const QDomElement& elem )
11551158

11561159
if ( !shadowElem.hasAttribute( QStringLiteral( "shadowRadiusUnit" ) ) )
11571160
{
1158-
d->radiusUnits = shadowElem.attribute( QStringLiteral( "shadowRadiusUnits" ) ).toUInt() == 0 ? QgsUnitTypes::RenderMillimeters
1159-
: QgsUnitTypes::RenderMapUnits;
1161+
d->radiusUnits = convertFromOldLabelUnit( shadowElem.attribute( QStringLiteral( "shadowRadiusUnits" ) ).toUInt() );
11601162
}
11611163
else
11621164
{

0 commit comments

Comments
 (0)