@@ -50,6 +50,18 @@ QgsSymbolLayer *QgsEllipseSymbolLayer::create( const QgsStringMap &properties )
50
50
{
51
51
layer->setSymbolName ( properties[ QStringLiteral ( " symbol_name" )] );
52
52
}
53
+ if ( properties.contains ( QStringLiteral ( " size" ) ) )
54
+ {
55
+ layer->setSize ( properties[QStringLiteral ( " size" )].toDouble () );
56
+ }
57
+ if ( properties.contains ( QStringLiteral ( " size_unit" ) ) )
58
+ {
59
+ layer->setSizeUnit ( QgsUnitTypes::decodeRenderUnit ( properties[QStringLiteral ( " size_unit" )] ) );
60
+ }
61
+ if ( properties.contains ( QStringLiteral ( " size_map_unit_scale" ) ) )
62
+ {
63
+ layer->setSizeMapUnitScale ( QgsSymbolLayerUtils::decodeMapUnitScale ( properties[QStringLiteral ( " size_map_unit_scale" )] ) );
64
+ }
53
65
if ( properties.contains ( QStringLiteral ( " symbol_width" ) ) )
54
66
{
55
67
layer->setSymbolWidth ( properties[QStringLiteral ( " symbol_width" )].toDouble () );
@@ -127,18 +139,6 @@ QgsSymbolLayer *QgsEllipseSymbolLayer::create( const QgsStringMap &properties )
127
139
{
128
140
layer->setStrokeColor ( QgsSymbolLayerUtils::decodeColor ( properties[QStringLiteral ( " line_color" )] ) );
129
141
}
130
- if ( properties.contains ( QStringLiteral ( " size" ) ) )
131
- {
132
- layer->setSize ( properties[QStringLiteral ( " size" )].toDouble () );
133
- }
134
- if ( properties.contains ( QStringLiteral ( " size_unit" ) ) )
135
- {
136
- layer->setSizeUnit ( QgsUnitTypes::decodeRenderUnit ( properties[QStringLiteral ( " size_unit" )] ) );
137
- }
138
- if ( properties.contains ( QStringLiteral ( " size_map_unit_scale" ) ) )
139
- {
140
- layer->setSizeMapUnitScale ( QgsSymbolLayerUtils::decodeMapUnitScale ( properties[QStringLiteral ( " size_map_unit_scale" )] ) );
141
- }
142
142
if ( properties.contains ( QStringLiteral ( " offset" ) ) )
143
143
{
144
144
layer->setOffset ( QgsSymbolLayerUtils::decodePoint ( properties[QStringLiteral ( " offset" )] ) );
@@ -593,6 +593,33 @@ void QgsEllipseSymbolLayer::preparePath( const QString &symbolName, QgsSymbolRen
593
593
}
594
594
}
595
595
596
+ void QgsEllipseSymbolLayer::setSize ( double size )
597
+ {
598
+ if ( mSymbolWidth >= mSymbolHeight )
599
+ {
600
+ mSymbolHeight = mSymbolHeight * size / mSymbolWidth ;
601
+ mSymbolWidth = size;
602
+ }
603
+ else
604
+ {
605
+ mSymbolWidth = mSymbolWidth * size / mSymbolHeight ;
606
+ mSymbolHeight = size;
607
+ }
608
+ QgsMarkerSymbolLayer::setSize ( size );
609
+ }
610
+
611
+ void QgsEllipseSymbolLayer::setSymbolWidth ( double w )
612
+ {
613
+ mSymbolWidth = w;
614
+ QgsMarkerSymbolLayer::setSize ( mSymbolWidth >= mSymbolHeight ? mSymbolWidth : mSymbolHeight );
615
+ }
616
+
617
+ void QgsEllipseSymbolLayer::setSymbolHeight ( double h )
618
+ {
619
+ mSymbolHeight = h;
620
+ QgsMarkerSymbolLayer::setSize ( mSymbolWidth >= mSymbolHeight ? mSymbolWidth : mSymbolHeight );
621
+ }
622
+
596
623
void QgsEllipseSymbolLayer::setOutputUnit ( QgsUnitTypes::RenderUnit unit )
597
624
{
598
625
QgsMarkerSymbolLayer::setOutputUnit ( unit );
0 commit comments