@@ -915,30 +915,31 @@ def split_font_family(font_name):
915
915
label_settings .xOffset = text_offset .x ()
916
916
label_settings .yOffset = text_offset .y ()
917
917
918
- json_icon_image = json_layout .get ("icon-image" )
919
- if json_icon_image and label_settings .placement in (QgsPalLayerSettings .Horizontal , QgsPalLayerSettings .Curved ):
920
- sprite_size = QSize ()
921
- sprite_property = ""
922
- sprite_size_property = ""
923
- sprite = core_converter .retrieveSpriteAsBase64 (json_icon_image , context , sprite_size , sprite_property ,
924
- sprite_size_property )
925
- if sprite :
926
- marker_layer = QgsRasterMarkerSymbolLayer ()
927
- marker_layer .setPath (sprite )
928
- marker_layer .setSizeUnit (context .targetUnit ())
929
-
930
- if sprite_property :
931
- marker_dd_properties = QgsPropertyCollection ()
932
-
933
- marker_layer .setDataDefinedProperties (marker_dd_properties )
934
-
935
-
936
- backgroundSettings = QgsTextBackgroundSettings ()
937
- backgroundSettings .setEnabled (True )
938
- backgroundSettings .setType (QgsTextBackgroundSettings .ShapeMarkerSymbol )
939
- backgroundSettings .setSizeUnit (context .targetUnit ())
940
- backgroundSettings .setMarkerSymbol (QgsMarkerSymbol ([marker_layer ]))
941
- format .setBackground (backgroundSettings )
918
+ # should be fixed for shield
919
+ # json_icon_image = json_layout.get("icon-image")
920
+ # if json_icon_image and label_settings.placement in (QgsPalLayerSettings.Horizontal, QgsPalLayerSettings.Curved):
921
+ # sprite_size = QSize()
922
+ # sprite_property = ""
923
+ # sprite_size_property = ""
924
+ # sprite = core_converter.retrieveSpriteAsBase64(json_icon_image, context, sprite_size, sprite_property,
925
+ # sprite_size_property)
926
+ # if sprite:
927
+ # marker_layer = QgsRasterMarkerSymbolLayer()
928
+ # marker_layer.setPath(sprite)
929
+ # marker_layer.setSizeUnit(context.targetUnit())
930
+ #
931
+ # if sprite_property:
932
+ # marker_dd_properties = QgsPropertyCollection()
933
+ #
934
+ # marker_layer.setDataDefinedProperties(marker_dd_properties)
935
+ #
936
+ #
937
+ # backgroundSettings = QgsTextBackgroundSettings()
938
+ # backgroundSettings.setEnabled(True)
939
+ # backgroundSettings.setType(QgsTextBackgroundSettings.ShapeMarkerSymbol)
940
+ # backgroundSettings.setSizeUnit(context.targetUnit())
941
+ # backgroundSettings.setMarkerSymbol(QgsMarkerSymbol([marker_layer]))
942
+ # format.setBackground(backgroundSettings)
942
943
943
944
if text_size :
944
945
label_settings .priority = int (min (text_size / (context .pixelSizeConversionFactor () * 3 ), 10.0 ))
@@ -1161,6 +1162,7 @@ def process_label_field(string: str):
1161
1162
# Convert field name
1162
1163
# {field_name} is permitted in string -- if multiple fields are present, convert them to an expression
1163
1164
# but if single field is covered in {}, return it directly
1165
+ string = string .strip ()
1164
1166
single_field_rx = QRegularExpression ("^{([^}]+)}$" )
1165
1167
match = single_field_rx .match (string )
1166
1168
if match .hasMatch ():
@@ -1522,6 +1524,10 @@ def parse_background(bg_layer_data: dict):
1522
1524
elif isinstance (json_background_color , str ):
1523
1525
bg_color = core_converter .parseColor (json_background_color , context )
1524
1526
sym .symbolLayer (0 ).setColor (bg_color )
1527
+ elif isinstance (json_background_color , list ):
1528
+ bg_color_expr = parse_value_list (json_background_color , PropertyType .Color , context , 1 , 255 )
1529
+ fill_symbol = sym .symbolLayer (0 )
1530
+ fill_symbol .setDataDefinedProperty (QgsSymbolLayer .PropertyFillColor , bg_color_expr )
1525
1531
else :
1526
1532
context .pushWarning (f"Background: Skipping not implemented expression for background color: "
1527
1533
f"{ json_background_color } , { type (json_background_color )} " )
0 commit comments