mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-01 00:46:20 -05:00
Fix conversion of text alignment
This commit is contained in:
parent
0685c5e0d6
commit
c11608071b
@ -1142,6 +1142,54 @@ void QgsMapBoxGlStyleConverter::parseSymbolLayer( const QVariantMap &jsonLayer,
|
||||
}
|
||||
}
|
||||
|
||||
if ( jsonLayout.contains( QStringLiteral( "text-justify" ) ) )
|
||||
{
|
||||
const QVariant jsonTextJustify = jsonLayout.value( QStringLiteral( "text-justify" ) );
|
||||
|
||||
// default is center
|
||||
QString textAlign = QStringLiteral( "center" );
|
||||
|
||||
const QVariantMap conversionMap
|
||||
{
|
||||
{ QStringLiteral( "left" ), QStringLiteral( "left" ) },
|
||||
{ QStringLiteral( "center" ), QStringLiteral( "center" ) },
|
||||
{ QStringLiteral( "right" ), QStringLiteral( "right" ) },
|
||||
{ QStringLiteral( "auto" ), QStringLiteral( "follow" ) }
|
||||
};
|
||||
|
||||
switch ( jsonTextJustify.type() )
|
||||
{
|
||||
case QVariant::String:
|
||||
textAlign = jsonTextJustify.toString();
|
||||
break;
|
||||
|
||||
case QVariant::List:
|
||||
ddLabelProperties.setProperty( QgsPalLayerSettings::OffsetQuad, QgsProperty::fromExpression( parseStringStops( jsonTextJustify.toList(), context, conversionMap, &textAlign ) ) );
|
||||
break;
|
||||
|
||||
case QVariant::Map:
|
||||
ddLabelProperties.setProperty( QgsPalLayerSettings::OffsetQuad, parseInterpolateStringByZoom( jsonTextJustify.toMap(), context, conversionMap, &textAlign ) );
|
||||
break;
|
||||
|
||||
default:
|
||||
context.pushWarning( QObject::tr( "Skipping non-implemented text-anchor expression" ) );
|
||||
break;
|
||||
}
|
||||
|
||||
if ( textAlign == QLatin1String( "left" ) )
|
||||
labelSettings.multilineAlign = QgsPalLayerSettings::MultiLeft;
|
||||
else if ( textAlign == QLatin1String( "right" ) )
|
||||
labelSettings.multilineAlign = QgsPalLayerSettings::MultiRight;
|
||||
else if ( textAlign == QLatin1String( "center" ) )
|
||||
labelSettings.multilineAlign = QgsPalLayerSettings::MultiCenter;
|
||||
else if ( textAlign == QLatin1String( "follow" ) )
|
||||
labelSettings.multilineAlign = QgsPalLayerSettings::MultiFollowPlacement;
|
||||
}
|
||||
else
|
||||
{
|
||||
labelSettings.multilineAlign = QgsPalLayerSettings::MultiCenter;
|
||||
}
|
||||
|
||||
if ( labelSettings.placement == QgsPalLayerSettings::OverPoint )
|
||||
{
|
||||
if ( jsonLayout.contains( QStringLiteral( "text-anchor" ) ) )
|
||||
|
Loading…
x
Reference in New Issue
Block a user