mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-12 00:02:25 -04:00
Add quadrant based label DXF alignment support
This commit is contained in:
parent
651219f390
commit
2968fb86f6
@ -1259,6 +1259,63 @@ void QgsDxfExport::writeText( const QString &layer, const QString &text, pal::La
|
|||||||
VAlign vali = VAlign::Undefined;
|
VAlign vali = VAlign::Undefined;
|
||||||
|
|
||||||
const QgsPropertyCollection &props = layerSettings.dataDefinedProperties();
|
const QgsPropertyCollection &props = layerSettings.dataDefinedProperties();
|
||||||
|
|
||||||
|
if ( props.isActive( QgsPalLayerSettings::OffsetQuad ) )
|
||||||
|
{
|
||||||
|
const QVariant exprVal = props.value( QgsPalLayerSettings::OffsetQuad, expressionContext );
|
||||||
|
if ( exprVal.isValid() )
|
||||||
|
{
|
||||||
|
int offsetQuad = exprVal.toInt();
|
||||||
|
|
||||||
|
lblX -= label->dX();
|
||||||
|
lblY -= label->dY();
|
||||||
|
|
||||||
|
switch ( offsetQuad )
|
||||||
|
{
|
||||||
|
case 0: // Above Left
|
||||||
|
hali = HAlign::HRight;
|
||||||
|
vali = VAlign::VBottom;
|
||||||
|
break;
|
||||||
|
case 1: // Above
|
||||||
|
hali = HAlign::HCenter;
|
||||||
|
vali = VAlign::VBottom;
|
||||||
|
break;
|
||||||
|
case 2: // Above Right
|
||||||
|
hali = HAlign::HLeft;
|
||||||
|
vali = VAlign::VBottom;
|
||||||
|
break;
|
||||||
|
case 3: // Left
|
||||||
|
hali = HAlign::HRight;
|
||||||
|
vali = VAlign::VMiddle;
|
||||||
|
break;
|
||||||
|
case 4: // Over
|
||||||
|
hali = HAlign::HCenter;
|
||||||
|
vali = VAlign::VMiddle;
|
||||||
|
break;
|
||||||
|
case 5: // Right
|
||||||
|
hali = HAlign::HLeft;
|
||||||
|
vali = VAlign::VMiddle;
|
||||||
|
break;
|
||||||
|
case 6: // Below Left
|
||||||
|
hali = HAlign::HRight;
|
||||||
|
vali = VAlign::VTop;
|
||||||
|
break;
|
||||||
|
case 7: // Below
|
||||||
|
hali = HAlign::HCenter;
|
||||||
|
vali = VAlign::VTop;
|
||||||
|
break;
|
||||||
|
case 8: // Below Right
|
||||||
|
hali = HAlign::HLeft;
|
||||||
|
vali = VAlign::VTop;
|
||||||
|
break;
|
||||||
|
default: // OverHali
|
||||||
|
hali = HAlign::HCenter;
|
||||||
|
vali = VAlign::VTop;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ( props.isActive( QgsPalLayerSettings::Hali ) )
|
if ( props.isActive( QgsPalLayerSettings::Hali ) )
|
||||||
{
|
{
|
||||||
hali = HAlign::HLeft;
|
hali = HAlign::HLeft;
|
||||||
@ -1393,7 +1450,7 @@ void QgsDxfExport::writeText( const QString &layer, const QString &text, const Q
|
|||||||
writeGroup( 1, pt ); // Second alignment point
|
writeGroup( 1, pt ); // Second alignment point
|
||||||
writeGroup( 40, size );
|
writeGroup( 40, size );
|
||||||
writeGroup( 1, text );
|
writeGroup( 1, text );
|
||||||
writeGroup( 50, angle );
|
writeGroup( 50, fmod( angle, 360 ) );
|
||||||
if ( hali != HAlign::Undefined )
|
if ( hali != HAlign::Undefined )
|
||||||
writeGroup( 72, static_cast<int>( hali ) );
|
writeGroup( 72, static_cast<int>( hali ) );
|
||||||
writeGroup( 7, QStringLiteral( "STANDARD" ) ); // so far only support for standard font
|
writeGroup( 7, QStringLiteral( "STANDARD" ) ); // so far only support for standard font
|
||||||
|
Loading…
x
Reference in New Issue
Block a user