mirror of
https://github.com/Orama-Interactive/Pixelorama.git
synced 2025-02-22 13:33:13 +00:00
Lazy load the preferences dialog
Speeds up the initial loading time of Pixelorama. It's now almost as fast as 0.x on my computer (a bit more than 2 seconds). Lazy loading the preferences dialog also drastically reduces memory usage and node count (when preferences have not been opened), from 150MB, 13634 objects and 3680 nodes, to 94MB, 8207 objects and 1823 nodes. This essentially cuts the initial node count to half!
This commit is contained in:
parent
8c9a01feae
commit
b620cf2a9e
4 changed files with 148 additions and 93 deletions
|
@ -629,8 +629,6 @@ var cel_button_scene: PackedScene = load("res://src/UI/Timeline/CelButton.tscn")
|
||||||
@onready var save_sprites_dialog: FileDialog = control.find_child("SaveSprite")
|
@onready var save_sprites_dialog: FileDialog = control.find_child("SaveSprite")
|
||||||
## Dialog used to export images. It has the [param ExportDialog.gd] script attached.
|
## Dialog used to export images. It has the [param ExportDialog.gd] script attached.
|
||||||
@onready var export_dialog: AcceptDialog = control.find_child("ExportDialog")
|
@onready var export_dialog: AcceptDialog = control.find_child("ExportDialog")
|
||||||
## The preferences dialog. It has the [param PreferencesDialog.gd] script attached.
|
|
||||||
@onready var preferences_dialog: AcceptDialog = control.find_child("PreferencesDialog")
|
|
||||||
## An error dialog to show errors.
|
## An error dialog to show errors.
|
||||||
@onready var error_dialog: AcceptDialog = control.find_child("ErrorDialog")
|
@onready var error_dialog: AcceptDialog = control.find_child("ErrorDialog")
|
||||||
|
|
||||||
|
@ -680,6 +678,12 @@ func _ready() -> void:
|
||||||
|
|
||||||
await get_tree().process_frame
|
await get_tree().process_frame
|
||||||
project_switched.emit()
|
project_switched.emit()
|
||||||
|
# Load preferences from the config file
|
||||||
|
for pref in config_cache.get_section_keys("preferences"):
|
||||||
|
if get(pref) == null:
|
||||||
|
continue
|
||||||
|
var value = config_cache.get_value("preferences", pref)
|
||||||
|
set(pref, value)
|
||||||
|
|
||||||
|
|
||||||
func _initialize_keychain() -> void:
|
func _initialize_keychain() -> void:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=16 format=3 uid="uid://dbylw5k04ulp8"]
|
[gd_scene load_steps=15 format=3 uid="uid://dbylw5k04ulp8"]
|
||||||
|
|
||||||
[ext_resource type="Theme" uid="uid://cngbvfpwjoimv" path="res://assets/themes/dark/theme.tres" id="1"]
|
[ext_resource type="Theme" uid="uid://cngbvfpwjoimv" path="res://assets/themes/dark/theme.tres" id="1"]
|
||||||
[ext_resource type="Script" path="res://src/Main.gd" id="2"]
|
[ext_resource type="Script" path="res://src/Main.gd" id="2"]
|
||||||
|
@ -13,7 +13,6 @@
|
||||||
[ext_resource type="PackedScene" uid="uid://c0nuukjakmai2" path="res://src/UI/Dialogs/TileModeOffsetsDialog.tscn" id="14"]
|
[ext_resource type="PackedScene" uid="uid://c0nuukjakmai2" path="res://src/UI/Dialogs/TileModeOffsetsDialog.tscn" id="14"]
|
||||||
[ext_resource type="Script" path="res://src/HandleExtensions.gd" id="15_v0k2h"]
|
[ext_resource type="Script" path="res://src/HandleExtensions.gd" id="15_v0k2h"]
|
||||||
[ext_resource type="PackedScene" uid="uid://clbjfkdupw52l" path="res://src/UI/Timeline/CelProperties.tscn" id="17_ucs64"]
|
[ext_resource type="PackedScene" uid="uid://clbjfkdupw52l" path="res://src/UI/Timeline/CelProperties.tscn" id="17_ucs64"]
|
||||||
[ext_resource type="PackedScene" uid="uid://b3hkjj3s6pe4x" path="res://src/Preferences/PreferencesDialog.tscn" id="32"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://clgu8wb5o6oup" path="res://src/UI/Dialogs/ExportDialog.tscn" id="39"]
|
[ext_resource type="PackedScene" uid="uid://clgu8wb5o6oup" path="res://src/UI/Dialogs/ExportDialog.tscn" id="39"]
|
||||||
|
|
||||||
[node name="Control" type="Control"]
|
[node name="Control" type="Control"]
|
||||||
|
@ -54,8 +53,6 @@ mouse_filter = 2
|
||||||
|
|
||||||
[node name="ExportDialog" parent="Dialogs" instance=ExtResource("39")]
|
[node name="ExportDialog" parent="Dialogs" instance=ExtResource("39")]
|
||||||
|
|
||||||
[node name="PreferencesDialog" parent="Dialogs" instance=ExtResource("32")]
|
|
||||||
|
|
||||||
[node name="UnsavedCanvasDialog" type="ConfirmationDialog" parent="Dialogs"]
|
[node name="UnsavedCanvasDialog" type="ConfirmationDialog" parent="Dialogs"]
|
||||||
title = "Unsaved Image"
|
title = "Unsaved Image"
|
||||||
exclusive = false
|
exclusive = false
|
||||||
|
|
|
@ -2,17 +2,22 @@ extends AcceptDialog
|
||||||
|
|
||||||
var preferences: Array[Preference] = [
|
var preferences: Array[Preference] = [
|
||||||
Preference.new(
|
Preference.new(
|
||||||
"open_last_project", "Startup/StartupContainer/OpenLastProject", "button_pressed"
|
"open_last_project", "Startup/StartupContainer/OpenLastProject", "button_pressed", false
|
||||||
),
|
),
|
||||||
Preference.new(
|
Preference.new(
|
||||||
"quit_confirmation", "Startup/StartupContainer/QuitConfirmation", "button_pressed"
|
"quit_confirmation", "Startup/StartupContainer/QuitConfirmation", "button_pressed", false
|
||||||
),
|
),
|
||||||
Preference.new("ffmpeg_path", "Startup/StartupContainer/FFMPEGPath", "text"),
|
Preference.new("ffmpeg_path", "Startup/StartupContainer/FFMPEGPath", "text", ""),
|
||||||
Preference.new("shrink", "%ShrinkSlider", "value"),
|
Preference.new("shrink", "%ShrinkSlider", "value", 1.0),
|
||||||
Preference.new("font_size", "Interface/InterfaceOptions/FontSizeSlider", "value"),
|
Preference.new("font_size", "Interface/InterfaceOptions/FontSizeSlider", "value", 16),
|
||||||
Preference.new("dim_on_popup", "Interface/InterfaceOptions/DimCheckBox", "button_pressed"),
|
|
||||||
Preference.new(
|
Preference.new(
|
||||||
"use_native_file_dialogs", "Interface/InterfaceOptions/NativeFileDialogs", "button_pressed"
|
"dim_on_popup", "Interface/InterfaceOptions/DimCheckBox", "button_pressed", true
|
||||||
|
),
|
||||||
|
Preference.new(
|
||||||
|
"use_native_file_dialogs",
|
||||||
|
"Interface/InterfaceOptions/NativeFileDialogs",
|
||||||
|
"button_pressed",
|
||||||
|
false
|
||||||
),
|
),
|
||||||
Preference.new(
|
Preference.new(
|
||||||
"single_window_mode",
|
"single_window_mode",
|
||||||
|
@ -21,97 +26,166 @@ var preferences: Array[Preference] = [
|
||||||
true,
|
true,
|
||||||
true
|
true
|
||||||
),
|
),
|
||||||
Preference.new("icon_color_from", "Interface/ButtonOptions/IconColorOptionButton", "selected"),
|
|
||||||
Preference.new("custom_icon_color", "Interface/ButtonOptions/IconColorButton", "color"),
|
|
||||||
Preference.new("left_tool_color", "Interface/ButtonOptions/LeftToolColorButton", "color"),
|
|
||||||
Preference.new("right_tool_color", "Interface/ButtonOptions/RightToolColorButton", "color"),
|
|
||||||
Preference.new(
|
Preference.new(
|
||||||
"tool_button_size", "Interface/ButtonOptions/ToolButtonSizeOptionButton", "selected"
|
"icon_color_from",
|
||||||
|
"Interface/ButtonOptions/IconColorOptionButton",
|
||||||
|
"selected",
|
||||||
|
Global.ColorFrom.THEME
|
||||||
),
|
),
|
||||||
Preference.new(
|
Preference.new(
|
||||||
"show_left_tool_icon", "Cursors/CursorsContainer/LeftToolIconCheckbox", "button_pressed"
|
"custom_icon_color", "Interface/ButtonOptions/IconColorButton", "color", Color.GRAY
|
||||||
),
|
),
|
||||||
Preference.new(
|
Preference.new(
|
||||||
"show_right_tool_icon", "Cursors/CursorsContainer/RightToolIconCheckbox", "button_pressed"
|
"left_tool_color", "Interface/ButtonOptions/LeftToolColorButton", "color", Color("0086cf")
|
||||||
|
),
|
||||||
|
Preference.new(
|
||||||
|
"right_tool_color", "Interface/ButtonOptions/RightToolColorButton", "color", Color("fd6d14")
|
||||||
|
),
|
||||||
|
Preference.new(
|
||||||
|
"tool_button_size",
|
||||||
|
"Interface/ButtonOptions/ToolButtonSizeOptionButton",
|
||||||
|
"selected",
|
||||||
|
Global.ButtonSize.SMALL
|
||||||
|
),
|
||||||
|
Preference.new(
|
||||||
|
"show_left_tool_icon",
|
||||||
|
"Cursors/CursorsContainer/LeftToolIconCheckbox",
|
||||||
|
"button_pressed",
|
||||||
|
true
|
||||||
|
),
|
||||||
|
Preference.new(
|
||||||
|
"show_right_tool_icon",
|
||||||
|
"Cursors/CursorsContainer/RightToolIconCheckbox",
|
||||||
|
"button_pressed",
|
||||||
|
true
|
||||||
),
|
),
|
||||||
Preference.new(
|
Preference.new(
|
||||||
"left_square_indicator_visible",
|
"left_square_indicator_visible",
|
||||||
"Cursors/CursorsContainer/LeftIndicatorCheckbox",
|
"Cursors/CursorsContainer/LeftIndicatorCheckbox",
|
||||||
"button_pressed"
|
"button_pressed",
|
||||||
|
true
|
||||||
),
|
),
|
||||||
Preference.new(
|
Preference.new(
|
||||||
"right_square_indicator_visible",
|
"right_square_indicator_visible",
|
||||||
"Cursors/CursorsContainer/RightIndicatorCheckbox",
|
"Cursors/CursorsContainer/RightIndicatorCheckbox",
|
||||||
"button_pressed"
|
"button_pressed",
|
||||||
|
true
|
||||||
),
|
),
|
||||||
Preference.new(
|
Preference.new(
|
||||||
"native_cursors", "Cursors/CursorsContainer/NativeCursorsCheckbox", "button_pressed"
|
"native_cursors", "Cursors/CursorsContainer/NativeCursorsCheckbox", "button_pressed", false
|
||||||
),
|
),
|
||||||
Preference.new(
|
Preference.new(
|
||||||
"cross_cursor", "Cursors/CursorsContainer/CrossCursorCheckbox", "button_pressed"
|
"cross_cursor", "Cursors/CursorsContainer/CrossCursorCheckbox", "button_pressed", true
|
||||||
),
|
),
|
||||||
Preference.new("autosave_interval", "Backup/AutosaveContainer/AutosaveInterval", "value"),
|
Preference.new("autosave_interval", "Backup/AutosaveContainer/AutosaveInterval", "value", 1.0),
|
||||||
Preference.new("enable_autosave", "Backup/AutosaveContainer/EnableAutosave", "button_pressed"),
|
|
||||||
Preference.new("default_width", "Image/ImageOptions/ImageDefaultWidth", "value"),
|
|
||||||
Preference.new("default_height", "Image/ImageOptions/ImageDefaultHeight", "value"),
|
|
||||||
Preference.new("default_fill_color", "Image/ImageOptions/DefaultFillColor", "color"),
|
|
||||||
Preference.new("smooth_zoom", "Canvas/ZoomOptions/SmoothZoom", "button_pressed"),
|
|
||||||
Preference.new("integer_zoom", "Canvas/ZoomOptions/IntegerZoom", "button_pressed"),
|
|
||||||
Preference.new("snapping_distance", "Canvas/SnappingOptions/DistanceValue", "value"),
|
|
||||||
Preference.new("grid_type", "Canvas/GridOptions/GridType", "selected"),
|
|
||||||
Preference.new("grid_size", "Canvas/GridOptions/GridSizeValue", "value"),
|
|
||||||
Preference.new("isometric_grid_size", "Canvas/GridOptions/IsometricGridSizeValue", "value"),
|
|
||||||
Preference.new("grid_offset", "Canvas/GridOptions/GridOffsetValue", "value"),
|
|
||||||
Preference.new(
|
Preference.new(
|
||||||
"grid_draw_over_tile_mode", "Canvas/GridOptions/GridDrawOverTileMode", "button_pressed"
|
"enable_autosave", "Backup/AutosaveContainer/EnableAutosave", "button_pressed", true
|
||||||
),
|
),
|
||||||
Preference.new("grid_color", "Canvas/GridOptions/GridColor", "color"),
|
Preference.new("default_width", "Image/ImageOptions/ImageDefaultWidth", "value", 64),
|
||||||
Preference.new("pixel_grid_show_at_zoom", "Canvas/PixelGridOptions/ShowAtZoom", "value"),
|
Preference.new("default_height", "Image/ImageOptions/ImageDefaultHeight", "value", 64),
|
||||||
Preference.new("pixel_grid_color", "Canvas/PixelGridOptions/GridColor", "color"),
|
Preference.new("default_fill_color", "Image/ImageOptions/DefaultFillColor", "color", Color(0)),
|
||||||
Preference.new("guide_color", "Canvas/GuideOptions/GuideColor", "color"),
|
Preference.new("smooth_zoom", "Canvas/ZoomOptions/SmoothZoom", "button_pressed", true),
|
||||||
Preference.new("checker_size", "Canvas/CheckerOptions/CheckerSizeValue", "value"),
|
Preference.new("integer_zoom", "Canvas/ZoomOptions/IntegerZoom", "button_pressed", false),
|
||||||
Preference.new("checker_color_1", "Canvas/CheckerOptions/CheckerColor1", "color"),
|
Preference.new("snapping_distance", "Canvas/SnappingOptions/DistanceValue", "value", 32.0),
|
||||||
Preference.new("checker_color_2", "Canvas/CheckerOptions/CheckerColor2", "color"),
|
|
||||||
Preference.new(
|
Preference.new(
|
||||||
"checker_follow_movement", "Canvas/CheckerOptions/CheckerFollowMovement", "button_pressed"
|
"grid_type", "Canvas/GridOptions/GridType", "selected", Global.GridTypes.CARTESIAN
|
||||||
|
),
|
||||||
|
Preference.new("grid_size", "Canvas/GridOptions/GridSizeValue", "value", Vector2i(2, 2)),
|
||||||
|
Preference.new(
|
||||||
|
"isometric_grid_size", "Canvas/GridOptions/IsometricGridSizeValue", "value", Vector2i(16, 8)
|
||||||
|
),
|
||||||
|
Preference.new("grid_offset", "Canvas/GridOptions/GridOffsetValue", "value", Vector2i.ZERO),
|
||||||
|
Preference.new(
|
||||||
|
"grid_draw_over_tile_mode",
|
||||||
|
"Canvas/GridOptions/GridDrawOverTileMode",
|
||||||
|
"button_pressed",
|
||||||
|
false
|
||||||
|
),
|
||||||
|
Preference.new("grid_color", "Canvas/GridOptions/GridColor", "color", Color.BLACK),
|
||||||
|
Preference.new(
|
||||||
|
"pixel_grid_show_at_zoom", "Canvas/PixelGridOptions/ShowAtZoom", "value", 1500.0
|
||||||
),
|
),
|
||||||
Preference.new(
|
Preference.new(
|
||||||
"checker_follow_scale", "Canvas/CheckerOptions/CheckerFollowScale", "button_pressed"
|
"pixel_grid_color", "Canvas/PixelGridOptions/GridColor", "color", Color("21212191")
|
||||||
|
),
|
||||||
|
Preference.new("guide_color", "Canvas/GuideOptions/GuideColor", "color", Color.PURPLE),
|
||||||
|
Preference.new("checker_size", "Canvas/CheckerOptions/CheckerSizeValue", "value", 10),
|
||||||
|
Preference.new(
|
||||||
|
"checker_color_1",
|
||||||
|
"Canvas/CheckerOptions/CheckerColor1",
|
||||||
|
"color",
|
||||||
|
Color(0.47, 0.47, 0.47, 1)
|
||||||
|
),
|
||||||
|
Preference.new(
|
||||||
|
"checker_color_2",
|
||||||
|
"Canvas/CheckerOptions/CheckerColor2",
|
||||||
|
"color",
|
||||||
|
Color(0.34, 0.35, 0.34, 1)
|
||||||
|
),
|
||||||
|
Preference.new(
|
||||||
|
"checker_follow_movement",
|
||||||
|
"Canvas/CheckerOptions/CheckerFollowMovement",
|
||||||
|
"button_pressed",
|
||||||
|
false
|
||||||
|
),
|
||||||
|
Preference.new(
|
||||||
|
"checker_follow_scale", "Canvas/CheckerOptions/CheckerFollowScale", "button_pressed", false
|
||||||
|
),
|
||||||
|
Preference.new("tilemode_opacity", "Canvas/CheckerOptions/TileModeOpacity", "value", 1.0),
|
||||||
|
Preference.new(
|
||||||
|
"clear_color_from",
|
||||||
|
"Canvas/BackgroundOptions/ColorOptionButton",
|
||||||
|
"selected",
|
||||||
|
Global.ColorFrom.THEME
|
||||||
|
),
|
||||||
|
Preference.new(
|
||||||
|
"modulate_clear_color", "Canvas/BackgroundOptions/BackgroundColor", "color", Color.GRAY
|
||||||
),
|
),
|
||||||
Preference.new("tilemode_opacity", "Canvas/CheckerOptions/TileModeOpacity", "value"),
|
|
||||||
Preference.new("clear_color_from", "Canvas/BackgroundOptions/ColorOptionButton", "selected"),
|
|
||||||
Preference.new("modulate_clear_color", "Canvas/BackgroundOptions/BackgroundColor", "color"),
|
|
||||||
Preference.new(
|
Preference.new(
|
||||||
"select_layer_on_button_click",
|
"select_layer_on_button_click",
|
||||||
"Timeline/TimelineOptions/SelectLayerOnButton",
|
"Timeline/TimelineOptions/SelectLayerOnButton",
|
||||||
"button_pressed"
|
"button_pressed",
|
||||||
|
false
|
||||||
),
|
),
|
||||||
Preference.new(
|
Preference.new(
|
||||||
"onion_skinning_past_color", "Timeline/TimelineOptions/OnionSkinningPastColor", "color"
|
"onion_skinning_past_color",
|
||||||
|
"Timeline/TimelineOptions/OnionSkinningPastColor",
|
||||||
|
"color",
|
||||||
|
Color.RED
|
||||||
),
|
),
|
||||||
Preference.new(
|
Preference.new(
|
||||||
"onion_skinning_future_color", "Timeline/TimelineOptions/OnionSkinningFutureColor", "color"
|
"onion_skinning_future_color",
|
||||||
|
"Timeline/TimelineOptions/OnionSkinningFutureColor",
|
||||||
|
"color",
|
||||||
|
Color.BLUE
|
||||||
),
|
),
|
||||||
Preference.new(
|
Preference.new(
|
||||||
"selection_animated_borders", "Selection/SelectionOptions/Animate", "button_pressed"
|
"selection_animated_borders", "Selection/SelectionOptions/Animate", "button_pressed", true
|
||||||
),
|
),
|
||||||
Preference.new("selection_border_color_1", "Selection/SelectionOptions/BorderColor1", "color"),
|
|
||||||
Preference.new("selection_border_color_2", "Selection/SelectionOptions/BorderColor2", "color"),
|
|
||||||
Preference.new("fps_limit", "Performance/PerformanceContainer/SetFPSLimit", "value"),
|
|
||||||
Preference.new(
|
Preference.new(
|
||||||
"pause_when_unfocused", "Performance/PerformanceContainer/PauseAppFocus", "button_pressed"
|
"selection_border_color_1", "Selection/SelectionOptions/BorderColor1", "color", Color.WHITE
|
||||||
|
),
|
||||||
|
Preference.new(
|
||||||
|
"selection_border_color_2", "Selection/SelectionOptions/BorderColor2", "color", Color.BLACK
|
||||||
|
),
|
||||||
|
Preference.new("fps_limit", "Performance/PerformanceContainer/SetFPSLimit", "value", 0),
|
||||||
|
Preference.new(
|
||||||
|
"pause_when_unfocused",
|
||||||
|
"Performance/PerformanceContainer/PauseAppFocus",
|
||||||
|
"button_pressed",
|
||||||
|
true
|
||||||
),
|
),
|
||||||
Preference.new(
|
Preference.new(
|
||||||
"window_transparency",
|
"window_transparency",
|
||||||
"Performance/PerformanceContainer/WindowTransparency",
|
"Performance/PerformanceContainer/WindowTransparency",
|
||||||
"button_pressed",
|
"button_pressed",
|
||||||
true,
|
false,
|
||||||
false
|
true
|
||||||
),
|
),
|
||||||
# Preference.new(
|
# Preference.new(
|
||||||
# "renderer", "Drivers/DriversContainer/Renderer", "selected", true, OS.VIDEO_DRIVER_GLES2
|
# "renderer", "Drivers/DriversContainer/Renderer", "selected", OS.VIDEO_DRIVER_GLES2, true
|
||||||
# ),
|
# ),
|
||||||
Preference.new("tablet_driver", "Drivers/DriversContainer/TabletDriver", "selected", true, 0)
|
Preference.new("tablet_driver", "Drivers/DriversContainer/TabletDriver", "selected", 0, true)
|
||||||
]
|
]
|
||||||
|
|
||||||
var content_list := []
|
var content_list := []
|
||||||
|
@ -135,15 +209,15 @@ class Preference:
|
||||||
var prop_name: String
|
var prop_name: String
|
||||||
var node_path: String
|
var node_path: String
|
||||||
var value_type: String
|
var value_type: String
|
||||||
var require_restart := false
|
|
||||||
var default_value
|
var default_value
|
||||||
|
var require_restart := false
|
||||||
|
|
||||||
func _init(
|
func _init(
|
||||||
_prop_name: String,
|
_prop_name: String,
|
||||||
_node_path: String,
|
_node_path: String,
|
||||||
_value_type: String,
|
_value_type: String,
|
||||||
_require_restart := false,
|
_default_value = null,
|
||||||
_default_value = null
|
_require_restart := false
|
||||||
) -> void:
|
) -> void:
|
||||||
prop_name = _prop_name
|
prop_name = _prop_name
|
||||||
node_path = _node_path
|
node_path = _node_path
|
||||||
|
@ -241,34 +315,13 @@ func _ready() -> void:
|
||||||
_on_Preference_value_changed.bind(pref, restore_default_button)
|
_on_Preference_value_changed.bind(pref, restore_default_button)
|
||||||
)
|
)
|
||||||
|
|
||||||
var global_value = Global.get(pref.prop_name)
|
var value = Global.get(pref.prop_name)
|
||||||
if Global.config_cache.has_section_key("preferences", pref.prop_name):
|
|
||||||
var value = Global.config_cache.get_value("preferences", pref.prop_name)
|
|
||||||
Global.set(pref.prop_name, value)
|
|
||||||
node.set(pref.value_type, value)
|
node.set(pref.value_type, value)
|
||||||
global_value = Global.get(pref.prop_name)
|
var is_default: bool = value == pref.default_value
|
||||||
|
|
||||||
# This is needed because color_changed doesn't fire if the color changes in code
|
# This is needed because color_changed doesn't fire if the color changes in code
|
||||||
if typeof(value) == TYPE_VECTOR2 or typeof(value) == TYPE_COLOR:
|
if typeof(value) == TYPE_VECTOR2 or typeof(value) == TYPE_COLOR:
|
||||||
preference_update(pref.require_restart)
|
is_default = value.is_equal_approx(pref.default_value)
|
||||||
if typeof(global_value) == TYPE_VECTOR2I:
|
disable_restore_default_button(restore_default_button, is_default)
|
||||||
disable_restore_default_button(
|
|
||||||
restore_default_button, global_value == pref.default_value
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
disable_restore_default_button(
|
|
||||||
restore_default_button, global_value.is_equal_approx(pref.default_value)
|
|
||||||
)
|
|
||||||
elif pref.value_type == "selected":
|
|
||||||
preference_update(pref.require_restart)
|
|
||||||
disable_restore_default_button(
|
|
||||||
restore_default_button, global_value == pref.default_value
|
|
||||||
)
|
|
||||||
else:
|
|
||||||
node.set(pref.value_type, global_value)
|
|
||||||
disable_restore_default_button(
|
|
||||||
restore_default_button, global_value == pref.default_value
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
func _on_Preference_value_changed(value, pref: Preference, button: RestoreDefaultButton) -> void:
|
func _on_Preference_value_changed(value, pref: Preference, button: RestoreDefaultButton) -> void:
|
||||||
|
|
|
@ -15,6 +15,7 @@ var zen_mode := false
|
||||||
|
|
||||||
# Dialogs
|
# Dialogs
|
||||||
var new_image_dialog := Dialog.new("res://src/UI/Dialogs/CreateNewImage.tscn")
|
var new_image_dialog := Dialog.new("res://src/UI/Dialogs/CreateNewImage.tscn")
|
||||||
|
var preferences_dialog := Dialog.new("res://src/Preferences/PreferencesDialog.tscn")
|
||||||
var offset_image_dialog := Dialog.new("res://src/UI/Dialogs/ImageEffects/OffsetImage.tscn")
|
var offset_image_dialog := Dialog.new("res://src/UI/Dialogs/ImageEffects/OffsetImage.tscn")
|
||||||
var scale_image_dialog := Dialog.new("res://src/UI/Dialogs/ImageEffects/ScaleImage.tscn")
|
var scale_image_dialog := Dialog.new("res://src/UI/Dialogs/ImageEffects/ScaleImage.tscn")
|
||||||
var resize_canvas_dialog := Dialog.new("res://src/UI/Dialogs/ImageEffects/ResizeCanvas.tscn")
|
var resize_canvas_dialog := Dialog.new("res://src/UI/Dialogs/ImageEffects/ResizeCanvas.tscn")
|
||||||
|
@ -528,7 +529,7 @@ func edit_menu_id_pressed(id: int) -> void:
|
||||||
Global.EditMenu.NEW_BRUSH:
|
Global.EditMenu.NEW_BRUSH:
|
||||||
Global.canvas.selection.new_brush()
|
Global.canvas.selection.new_brush()
|
||||||
Global.EditMenu.PREFERENCES:
|
Global.EditMenu.PREFERENCES:
|
||||||
_popup_dialog(Global.preferences_dialog)
|
preferences_dialog.popup()
|
||||||
_:
|
_:
|
||||||
_handle_metadata(id, edit_menu)
|
_handle_metadata(id, edit_menu)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue