diff --git a/src/GlobalSettings.gd b/src/GlobalSettings.gd index 9756728d..7b90b8ed 100644 --- a/src/GlobalSettings.gd +++ b/src/GlobalSettings.gd @@ -62,9 +62,24 @@ const default_config = { # No way to fetch defaults otherwise. var default_input_events := {} # Dictionary{String: Array[InputEvent]} -const configurable_keybinds = ["import", "export", "save", "move_up", "move_down", - "undo", "redo", "duplicate", "select_all", "delete", "zoom_in", "zoom_out", - "zoom_reset"] + +const configurable_keybinds = { + "file": ["import", "export", "save", "optimize_svg", "copy_svg_text", "clear_svg", + "clear_file_path", "reset_svg"], + "edit": ["undo", "redo", "select_all", "duplicate", "move_up", "move_down", "delete"], + "view": ["zoom_in", "zoom_out", "zoom_reset", "view_show_grid", "view_show_handles", + "view_rasterized_svg"]} + +const unconfigurable_keybinds = [ + "move_relative", "move_absolute", "line_relative", "line_absolute", + "horizontal_line_relative", "horizontal_line_absolute", "vertical_line_relative", + "vertical_line_absolute", "close_path_relative", "close_path_absolute", + "elliptical_arc_relative", "elliptical_arc_absolute", "quadratic_bezier_relative", + "quadratic_bezier_absolute", "shorthand_quadratic_bezier_relative", + "shorthand_quadratic_bezier_absolute", "cubic_bezier_relative", + "cubic_bezier_absolute", "shorthand_cubic_bezier_relative", + "shorthand_cubic_bezier_absolute"] + var language: String: set(new_value): @@ -182,9 +197,10 @@ func load_settings() -> void: else: for section in config.get_sections(): if section == "keybinds": - for action in configurable_keybinds: - if config.has_section_key("keybinds", action): - modify_keybind(action, config.get_value("keybinds", action)) + for category in configurable_keybinds: + for action in GlobalSettings.configurable_keybinds[category]: + if config.has_section_key("keybinds", action): + modify_keybind(action, config.get_value("keybinds", action)) else: for setting in config.get_section_keys(section): set(setting, config.get_value(section, setting)) @@ -202,8 +218,9 @@ func reset_setting(section: String, setting: String) -> void: func reset_keybinds() -> void: InputMap.load_from_project_settings() - for action in configurable_keybinds: - save_keybind(action) + for category in configurable_keybinds: + for action in GlobalSettings.configurable_keybinds[category]: + save_keybind(action) func reset_palettes() -> void: palettes = [ColorPalette.new("Pure", diff --git a/src/SVG.gd b/src/SVG.gd index 839c2792..90817382 100644 --- a/src/SVG.gd +++ b/src/SVG.gd @@ -133,6 +133,11 @@ non_native_callable: Callable) -> void: HandlerGUI.add_overlay(svg_export_dialog) svg_export_dialog.file_selected.connect(non_native_callable) +func native_file_export(has_selected: bool, files: PackedStringArray, +_filter_idx: int, extension: String, upscale_amount := 1.0) -> void: + if has_selected: + SVG.finish_export(files[0], extension, upscale_amount) + func native_file_save(has_selected: bool, files: PackedStringArray, _filter_idx: int) -> void: if has_selected: diff --git a/src/Utils.gd b/src/Utils.gd index e40c388d..2b64972e 100644 --- a/src/Utils.gd +++ b/src/Utils.gd @@ -3,10 +3,11 @@ class_name Utils extends RefCounted # In my opinion, this is nicer than groups. enum CustomNotification { LANGUAGE_CHANGED = 300, - NUMBER_PRECISION_CHANGED = 301, - HIGHLIGHT_COLORS_CHANGED = 302, - DEFAULT_VALUE_OPACITY_CHANGED = 303, - HANDLE_COLORS_CHANGED = 304, + THEME_CHANGED = 301, + NUMBER_PRECISION_CHANGED = 302, + HIGHLIGHT_COLORS_CHANGED = 303, + DEFAULT_VALUE_OPACITY_CHANGED = 304, + HANDLE_COLORS_CHANGED = 305, } const path_command_char_dict = { diff --git a/src/ui_parts/code_editor.gd b/src/ui_parts/code_editor.gd index 4558a13b..ef4dfe29 100644 --- a/src/ui_parts/code_editor.gd +++ b/src/ui_parts/code_editor.gd @@ -5,6 +5,7 @@ signal optimize_button_enable_updated(is_optimize_enabled: bool) const ContextPopup = preload("res://src/ui_elements/context_popup.tscn") +@onready var panel_container: PanelContainer = $PanelContainer @onready var code_edit: TextEdit = $ScriptEditor/SVGCodeEdit @onready var error_bar: PanelContainer = $ScriptEditor/ErrorBar @onready var error_label: RichTextLabel = $ScriptEditor/ErrorBar/Label @@ -20,7 +21,7 @@ func _ready() -> void: auto_update_text() update_size_label() update_file_button() - setup_theme(false) + setup_theme() setup_highlighter() code_edit.clear_undo_history() SVG.root_tag.attribute_changed.connect(auto_update_text.unbind(1)) @@ -33,6 +34,8 @@ func _ready() -> void: func _notification(what: int) -> void: if what == Utils.CustomNotification.HIGHLIGHT_COLORS_CHANGED: setup_highlighter() + if what == Utils.CustomNotification.THEME_CHANGED: + setup_theme() func _unhandled_input(input_event: InputEvent) -> void: @@ -66,7 +69,7 @@ func update_error(err_id: SVGParser.ParseError) -> void: var error_bar_real_height := error_bar.size.y - 2 code_edit.custom_minimum_size.y += error_bar_real_height code_edit.size.y += error_bar_real_height - setup_theme(false) + setup_theme() else: # When the error is shown, the code editor's theme is changed to match up. if not error_bar.visible: @@ -75,22 +78,46 @@ func update_error(err_id: SVGParser.ParseError) -> void: var error_bar_real_height := error_bar.size.y - 2 code_edit.custom_minimum_size.y -= error_bar_real_height code_edit.size.y -= error_bar_real_height - setup_theme(true) + setup_theme() -func setup_theme(match_below: bool) -> void: +func setup_theme() -> void: + # Set up the code edit. code_edit.begin_bulk_theme_override() for theming in ["normal", "focus", "hover"]: var stylebox := get_theme_stylebox(theming, "TextEdit").duplicate() stylebox.corner_radius_top_right = 0 stylebox.corner_radius_top_left = 0 stylebox.border_width_top = 2 - if match_below: + if error_bar.visible: stylebox.corner_radius_bottom_right = 0 stylebox.corner_radius_bottom_left = 0 stylebox.border_width_bottom = 1 code_edit.add_theme_stylebox_override(theming, stylebox) code_edit.end_bulk_theme_override() + error_label.add_theme_color_override("default_color", GlobalSettings.basic_color_error) + var panel_stylebox := get_theme_stylebox("panel", "PanelContainer") + # Set up the top panel. + var top_stylebox := panel_stylebox.duplicate() + top_stylebox.border_color = code_edit.get_theme_stylebox("normal").border_color + top_stylebox.border_width_bottom = 0 + top_stylebox.corner_radius_bottom_right = 0 + top_stylebox.corner_radius_bottom_left = 0 + top_stylebox.content_margin_left = 8 + top_stylebox.content_margin_right = 6 + top_stylebox.content_margin_top = 3 + top_stylebox.content_margin_bottom = 1 + panel_container.add_theme_stylebox_override("panel", top_stylebox) + # Set up the bottom panel. + var bottom_stylebox := panel_stylebox.duplicate() + bottom_stylebox.border_color = code_edit.get_theme_stylebox("normal").border_color + bottom_stylebox.corner_radius_top_right = 0 + bottom_stylebox.corner_radius_top_left = 0 + bottom_stylebox.content_margin_left = 10 + bottom_stylebox.content_margin_right = 8 + bottom_stylebox.content_margin_top = -1 + bottom_stylebox.content_margin_bottom = -1 + error_bar.add_theme_stylebox_override("panel", bottom_stylebox) func _on_copy_button_pressed() -> void: diff --git a/src/ui_parts/display.tscn b/src/ui_parts/display.tscn index 25f49559..2320ee53 100644 --- a/src/ui_parts/display.tscn +++ b/src/ui_parts/display.tscn @@ -109,7 +109,7 @@ script = ExtResource("6_3v3ve") hover_pressed_stylebox = SubResource("StyleBoxFlat_eujxa") [node name="SnapNumberEdit" parent="PanelContainer/HBoxContainer/LeftMenu/Snapping" instance=ExtResource("7_wrrfr")] -custom_minimum_size = Vector2(46, 22) +custom_minimum_size = Vector2(48, 22) layout_mode = 2 tooltip_text = "Snap size" theme_type_variation = &"LeftConnectedLineEdit" diff --git a/src/ui_parts/export_dialog.gd b/src/ui_parts/export_dialog.gd index 90f56652..a9511fee 100644 --- a/src/ui_parts/export_dialog.gd +++ b/src/ui_parts/export_dialog.gd @@ -48,20 +48,17 @@ func _on_dropdown_value_changed(new_value: String) -> void: update_extension_configuration() -func native_file_export(has_selected: bool, files: PackedStringArray, -_filter_idx: int) -> void: - if has_selected: - SVG.finish_export(files[0], extension, upscale_amount) - func _on_ok_button_pressed() -> void: if OS.has_feature("web"): match extension: "png": - HandlerGUI.web_save_png(SVG.generate_image_from_tags()) + HandlerGUI.web_save_png(SVG.generate_image_from_tags(upscale_amount)) _: HandlerGUI.web_save_svg() else: - SVG.open_save_dialog(extension, native_file_export, SVG.finish_export.bind(extension)) + SVG.open_save_dialog(extension, + SVG.native_file_export.bind(extension, upscale_amount), + SVG.finish_export.bind(extension, upscale_amount)) func _on_cancel_button_pressed() -> void: HandlerGUI.remove_overlay() diff --git a/src/ui_parts/good_file_dialog.gd b/src/ui_parts/good_file_dialog.gd index 6e4d726b..ff85ca22 100644 --- a/src/ui_parts/good_file_dialog.gd +++ b/src/ui_parts/good_file_dialog.gd @@ -6,6 +6,8 @@ const AlertDialog = preload("res://src/ui_parts/alert_dialog.tscn") signal file_selected(path: String) const folder_icon = preload("res://visual/icons/Folder.svg") +const broken_file_icon = preload("res://visual/icons/FileBroken.svg") + const system_dir_icons = { OS.SYSTEM_DIR_DESKTOP: preload("res://visual/icons/DirDesktop.svg"), OS.SYSTEM_DIR_DOCUMENTS: preload("res://visual/icons/DirDocuments.svg"), @@ -203,8 +205,11 @@ func _setup_file_images() -> void: var file := file_list.get_item_text(item_idx) match file.get_extension(): "png": - file_list.set_item_icon(item_idx, ImageTexture.create_from_image( - Image.load_from_file(current_dir.path_join(file)))) + var img := Image.load_from_file(current_dir.path_join(file)) + if img == null: + file_list.set_item_icon(item_idx, broken_file_icon) + else: + file_list.set_item_icon(item_idx, ImageTexture.create_from_image(img)) "svg": # Setup a clean SVG graphic by using the scaling parameter. var svg_text := FileAccess.open(current_dir.path_join(file), diff --git a/src/ui_parts/import_warning_dialog.gd b/src/ui_parts/import_warning_dialog.gd index 75351e07..b00d4275 100644 --- a/src/ui_parts/import_warning_dialog.gd +++ b/src/ui_parts/import_warning_dialog.gd @@ -11,7 +11,7 @@ signal imported var imported_text := "" func _ready() -> void: - ok_button.grab_focus() + imported.connect(queue_free) # Convert forward and backward to show how GodSVG would display the given SVG. var imported_text_parse_result := SVGParser.text_to_svg(imported_text) var preview_text := SVGParser.svg_to_text(imported_text_parse_result.svg) @@ -37,7 +37,7 @@ func _ready() -> void: GlobalSettings.basic_color_warning) for warning in svg_warnings: warnings_label.text += warning + "\n" - imported.connect(queue_free) + ok_button.grab_focus() cancel_button.pressed.connect(queue_free) diff --git a/src/ui_parts/settings_menu.gd b/src/ui_parts/settings_menu.gd index 9a9e36ff..165338a7 100644 --- a/src/ui_parts/settings_menu.gd +++ b/src/ui_parts/settings_menu.gd @@ -11,15 +11,14 @@ const SettingColor = preload("res://src/ui_elements/setting_color.gd") @onready var lang_button: Button = %Language @onready var palette_container: VBoxContainer = %PaletteContainer -@onready var shortcut_container: VBoxContainer = %ShortcutContainer @onready var content_container: MarginContainer = %ContentContainer @onready var tabs: VBoxContainer = %Tabs @onready var wrap_mouse: HBoxContainer = %WrapMouse @onready var use_native_file_dialog: HBoxContainer = %UseNativeFileDialog -@onready var configurable_shortcuts: VBoxContainer = %ConfigurableShortcuts -@onready var non_configurable_shortcuts: VBoxContainer = %NonConfigurableShortcuts +@onready var shortcut_categories: HFlowContainer = %Categories +@onready var shortcut_container: VBoxContainer = %Shortcuts var focused_content := 0 @@ -218,27 +217,40 @@ func disable_autoformat_checkboxes() -> void: func setup_shortcuts_tab() -> void: - for action in GlobalSettings.configurable_keybinds: + shortcut_categories.add_child(Utils.create_btn(tr("File"), show_keybinds.bind("file"))) + shortcut_categories.add_child(Utils.create_btn(tr("Edit"), show_keybinds.bind("edit"))) + shortcut_categories.add_child(Utils.create_btn(tr("View"), show_keybinds.bind("view"))) + shortcut_categories.add_child(Utils.create_btn(tr("Tool"), show_tool_keybinds)) + # Add them all to a button group. + var button_group := ButtonGroup.new() + for btn: Button in shortcut_categories.get_children(): + btn.toggle_mode = true + btn.button_group = button_group + shortcut_categories.get_child(0).button_pressed = true + show_keybinds("file") + +func show_keybinds(category: String): + for child in shortcut_container.get_children(): + child.queue_free() + for action in GlobalSettings.configurable_keybinds[category]: var keybind_config := ShortcutConfigWidget.instantiate() - configurable_shortcuts.add_child(keybind_config) + shortcut_container.add_child(keybind_config) keybind_config.label.text = shortcut_descriptions[action] if\ action in shortcut_descriptions else action keybind_config.setup(action) - for action in ["move_relative", "move_absolute", "line_relative", "line_absolute", - "horizontal_line_relative", "horizontal_line_absolute", "vertical_line_relative", - "vertical_line_absolute", "close_path_relative", "close_path_absolute", - "elliptical_arc_relative", "elliptical_arc_absolute", "quadratic_bezier_relative", - "quadratic_bezier_absolute", "shorthand_quadratic_bezier_relative", - "shorthand_quadratic_bezier_absolute", "cubic_bezier_relative", - "cubic_bezier_absolute", "shorthand_cubic_bezier_relative", - "shorthand_cubic_bezier_absolute"]: + +func show_tool_keybinds() -> void: + for child in shortcut_container.get_children(): + child.queue_free() + for action in GlobalSettings.unconfigurable_keybinds: var keybind_config := ShortcutShowcaseWidget.instantiate() - non_configurable_shortcuts.add_child(keybind_config) + shortcut_container.add_child(keybind_config) keybind_config.label.text = shortcut_descriptions[action] if\ action in shortcut_descriptions else action keybind_config.setup(action) + func setup_theming_tab() -> void: for child in %HighlighterVBox.get_children(): if child is SettingColor: diff --git a/src/ui_parts/settings_menu.tscn b/src/ui_parts/settings_menu.tscn index 72d0b11f..10ff779d 100644 --- a/src/ui_parts/settings_menu.tscn +++ b/src/ui_parts/settings_menu.tscn @@ -322,14 +322,11 @@ unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 -[node name="ConfigurableShortcuts" type="VBoxContainer" parent="VBoxContainer/HBoxContainer/MainPanel/ContentContainer/Shortcuts/ShortcutContainer"] +[node name="Categories" type="HFlowContainer" parent="VBoxContainer/HBoxContainer/MainPanel/ContentContainer/Shortcuts/ShortcutContainer"] unique_name_in_owner = true layout_mode = 2 -size_flags_horizontal = 3 -size_flags_vertical = 3 -theme_override_constants/separation = 3 -[node name="NonConfigurableShortcuts" type="VBoxContainer" parent="VBoxContainer/HBoxContainer/MainPanel/ContentContainer/Shortcuts/ShortcutContainer"] +[node name="Shortcuts" type="VBoxContainer" parent="VBoxContainer/HBoxContainer/MainPanel/ContentContainer/Shortcuts/ShortcutContainer"] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 @@ -541,12 +538,8 @@ text = "Close" [connection signal="pressed" from="VBoxContainer/Language" to="." method="_on_language_pressed"] [connection signal="toggled" from="VBoxContainer/HBoxContainer/ContentPicker/ScrollContainer/Tabs/AutoformattingTab" to="." method="_on_autoformatting_tab_toggled"] -[connection signal="pressed" from="VBoxContainer/HBoxContainer/ContentPicker/ScrollContainer/Tabs/PalettesTab" to="." method="_on_palettes_tab_pressed"] [connection signal="toggled" from="VBoxContainer/HBoxContainer/ContentPicker/ScrollContainer/Tabs/PalettesTab" to="." method="_on_palettes_tab_toggled"] -[connection signal="pressed" from="VBoxContainer/HBoxContainer/ContentPicker/ScrollContainer/Tabs/ShortcutsTab" to="." method="_on_shortcuts_tab_pressed"] [connection signal="toggled" from="VBoxContainer/HBoxContainer/ContentPicker/ScrollContainer/Tabs/ShortcutsTab" to="." method="_on_shortcuts_tab_toggled"] -[connection signal="pressed" from="VBoxContainer/HBoxContainer/ContentPicker/ScrollContainer/Tabs/ThemeTab" to="." method="_on_theme_tab_pressed"] [connection signal="toggled" from="VBoxContainer/HBoxContainer/ContentPicker/ScrollContainer/Tabs/ThemeTab" to="." method="_on_theme_tab_toggled"] -[connection signal="pressed" from="VBoxContainer/HBoxContainer/ContentPicker/ScrollContainer/Tabs/OtherTab" to="." method="_on_other_tab_pressed"] [connection signal="toggled" from="VBoxContainer/HBoxContainer/ContentPicker/ScrollContainer/Tabs/OtherTab" to="." method="_on_other_tab_toggled"] [connection signal="pressed" from="VBoxContainer/Close" to="." method="_on_close_pressed"] diff --git a/visual/icons/FileBroken.svg b/visual/icons/FileBroken.svg new file mode 100644 index 00000000..d55bd4e9 --- /dev/null +++ b/visual/icons/FileBroken.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/visual/icons/FileBroken.svg.import b/visual/icons/FileBroken.svg.import new file mode 100644 index 00000000..485684c5 --- /dev/null +++ b/visual/icons/FileBroken.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cr4fc0hsu58lf" +path="res://.godot/imported/FileBroken.svg-08ba8dbd963d3e7aff9ab514b7618a79.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://visual/icons/FileBroken.svg" +dest_files=["res://.godot/imported/FileBroken.svg-08ba8dbd963d3e7aff9ab514b7618a79.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/visual/icons/PlatformLinux.svg b/visual/icons/PlatformLinux.svg new file mode 100644 index 00000000..afcdab22 --- /dev/null +++ b/visual/icons/PlatformLinux.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/visual/icons/PlatformLinux.svg.import b/visual/icons/PlatformLinux.svg.import new file mode 100644 index 00000000..49562260 --- /dev/null +++ b/visual/icons/PlatformLinux.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bg37vrltk5npr" +path="res://.godot/imported/PlatformLinux.svg-b723c9506b815e291b1cebd620332bcd.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://visual/icons/PlatformLinux.svg" +dest_files=["res://.godot/imported/PlatformLinux.svg-b723c9506b815e291b1cebd620332bcd.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/visual/icons/PlatformMacOS.svg b/visual/icons/PlatformMacOS.svg new file mode 100644 index 00000000..75af6c90 --- /dev/null +++ b/visual/icons/PlatformMacOS.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/visual/icons/PlatformMacOS.svg.import b/visual/icons/PlatformMacOS.svg.import new file mode 100644 index 00000000..1d9342dd --- /dev/null +++ b/visual/icons/PlatformMacOS.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c5mof6sypo2j0" +path="res://.godot/imported/PlatformMacOS.svg-320de73a297585307fa935a8444e413e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://visual/icons/PlatformMacOS.svg" +dest_files=["res://.godot/imported/PlatformMacOS.svg-320de73a297585307fa935a8444e413e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/visual/icons/PlatformWindows.svg b/visual/icons/PlatformWindows.svg new file mode 100644 index 00000000..dd50e416 --- /dev/null +++ b/visual/icons/PlatformWindows.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/visual/icons/PlatformWindows.svg.import b/visual/icons/PlatformWindows.svg.import new file mode 100644 index 00000000..005d9f42 --- /dev/null +++ b/visual/icons/PlatformWindows.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c0xmtbtcke0hx" +path="res://.godot/imported/PlatformWindows.svg-c43309e2a4a6d38a54d0d337df873c15.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://visual/icons/PlatformWindows.svg" +dest_files=["res://.godot/imported/PlatformWindows.svg-c43309e2a4a6d38a54d0d337df873c15.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/visual/icons/Search.svg b/visual/icons/Search.svg index 73a40c91..884a523d 100644 --- a/visual/icons/Search.svg +++ b/visual/icons/Search.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file