@@ -17,7 +17,8 @@ var export_data_resources: Dictionary[String, ImageExportData] = {
1717 "dds" : ImageExportDataDDS .new (),
1818}
1919var current_format := ""
20- var dimensions := Vector2 .ZERO
20+ var svg_width := 0.0
21+ var svg_height := 0.0
2122
2223@onready var dimensions_label : Label = % DimensionsLabel
2324@onready var texture_preview : PreviewRect = % TexturePreview
@@ -47,14 +48,15 @@ func _ready() -> void:
4748 format_dropdown .value_changed .connect (_on_format_dropdown_value_changed )
4849
4950 # Update dimensions label.
50- dimensions = State .root_element .get_size ()
51- dimensions_label .text = Translator .translate ("Dimensions" ) + ": " + get_dimensions_text (dimensions )
51+ svg_width = State .root_element .width
52+ svg_height = State .root_element .height
53+ dimensions_label .text = Translator .translate ("Dimensions" ) + ": " + get_dimensions_text (svg_width , svg_height )
5254 set_current_format ("svg" )
5355
5456 # Setup the warning for when the image is too big to have a preview.
55- var scaling_factor := texture_preview .MAX_IMAGE_DIMENSION / maxf (dimensions . x , dimensions . y )
57+ var scaling_factor := texture_preview .MAX_IMAGE_DIMENSION / maxf (svg_width , svg_height )
5658 info_tooltip .tooltip_text = Translator .translate ("Preview image size is limited to {dimensions} " ).format (
57- {"dimensions" : get_dimensions_text (Vector2 ( maxf (dimensions . x * scaling_factor , 1.0 ), maxf (dimensions . y * scaling_factor , 1.0 ) ), true )})
59+ {"dimensions" : get_dimensions_text (maxf (svg_width * scaling_factor , 1.0 ), maxf (svg_height * scaling_factor , 1.0 ), true )})
5860 info_tooltip .modulate = ThemeUtils .info_icon_color
5961
6062 if Configs .savedata .get_active_tab ().svg_file_path .is_empty ():
@@ -121,7 +123,7 @@ func set_current_format(new_format: String) -> void:
121123 if is_instance_valid (new_properties_scene_root ):
122124 content_container .add_child (new_properties_scene_root )
123125 HandlerGUI .register_focus_sequence (content_container , [new_properties_scene_root ])
124- new_properties_scene_root .setup (get_edited_export_data (), undo_redo , dimensions )
126+ new_properties_scene_root .setup (get_edited_export_data (), undo_redo , svg_width , svg_height )
125127
126128 var file_name := Utils .get_file_name (Configs .savedata .get_active_tab ().svg_file_path )
127129 if not file_name .is_empty ():
@@ -139,21 +141,21 @@ func _on_edited_export_data_changed() -> void:
139141 var export_size : int
140142 if export_data is ImageExportDataRaster :
141143 texture_preview .setup_image (export_data )
142- var export_size_factor := roundf (export_data .upscale_amount * maxf (dimensions . x , dimensions . y )) / texture_preview .MAX_IMAGE_DIMENSION
144+ var export_size_factor := roundf (export_data .upscale_amount * maxf (svg_width , svg_height )) / texture_preview .MAX_IMAGE_DIMENSION
143145 # Calculate or estimate size. WebP fares better when scaled.
144146 if not export_data is ImageExportDataWEBP :
145147 export_size_factor **= 2
146148 export_size = roundi (texture_preview .last_image_size * maxf (1.0 , export_size_factor ))
147149 final_size_label .text = Translator .translate ("Size" ) if export_size_factor <= 1.0 else Translator .translate ("Estimated size" )
148150 else :
149- texture_preview .setup_svg (State .get_export_text (), dimensions )
151+ texture_preview .setup_svg (State .get_export_text (), Vector2 ( svg_width , svg_height ) )
150152 export_size = State .get_export_text ().length ()
151153 final_size_label .text = Translator .translate ("Size" )
152154
153155 final_size_label .text += ": " + String .humanize_size (export_size )
154156 info_tooltip .visible = (export_data is ImageExportDataRaster and \
155- roundi (export_data .upscale_amount * maxf (dimensions . x , dimensions . y )) > texture_preview .MAX_IMAGE_DIMENSION )
157+ roundi (export_data .upscale_amount * maxf (svg_width , svg_height )) > texture_preview .MAX_IMAGE_DIMENSION )
156158
157- func get_dimensions_text (sides : Vector2 , integer := false ) -> String :
159+ func get_dimensions_text (width : float , height : float , integer := false ) -> String :
158160 var precision := 0 if integer else 2
159- return "%s ×%s " % [Utils .num_simple (sides . x , precision ), Utils .num_simple (sides . y , precision )]
161+ return "%s ×%s " % [Utils .num_simple (width , precision ), Utils .num_simple (height , precision )]
0 commit comments