Skip to content

Commit

Permalink
[0.x] Allow user to move Palettes to Trash/Recycle Bin instead of del…
Browse files Browse the repository at this point in the history
…eting them permanently (#918)

* backport #914

move palettes to bin instead of deleting them permanently

* update backport to use dialog
  • Loading branch information
Variable-ind committed Oct 11, 2023
1 parent be093f3 commit 7416ed3
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 28 deletions.
13 changes: 8 additions & 5 deletions src/Autoload/Palettes.gd
Expand Up @@ -211,14 +211,17 @@ func current_palette_edit(name: String, comment: String, width: int, height: int
palettes[palette_path] = current_palette


func _delete_palette(path: String) -> void:
var dir = Directory.new()
dir.remove(path)
func _delete_palette(path: String, permanent := true) -> void:
if permanent:
var dir = Directory.new()
dir.remove(path)
else:
OS.move_to_trash(path)
palettes.erase(path)


func current_palete_delete() -> void:
_delete_palette(current_palette.resource_path)
func current_palete_delete(permanent := true) -> void:
_delete_palette(current_palette.resource_path, permanent)

if palettes.size() > 0:
select_palette(palettes.keys()[0])
Expand Down
18 changes: 17 additions & 1 deletion src/Palette/EditPaletteDialog.gd
Expand Up @@ -5,6 +5,7 @@ signal saved(name, comment, width, height)
signal deleted

const DELETE_ACTION := "delete"
const BIN_ACTION := "trash"

# Keeps original size of edited palette
var origin_width := 0
Expand All @@ -20,11 +21,14 @@ onready var path_input := $VBoxContainer/PaletteMetadata/Path

onready var size_reduced_warning := $VBoxContainer/SizeReducedWarning
onready var already_exists_warning := $VBoxContainer/AlreadyExistsWarning
onready var delete_confirmation := $DeleteConfirmation


func _ready() -> void:
# Add delete button to edit palette dialog
add_button(tr("Delete"), false, DELETE_ACTION)
delete_confirmation.get_ok().text = tr("Delete Permanently")
delete_confirmation.add_button(tr("Move to Trash"), false, BIN_ACTION)


func open(current_palette: Palette) -> void:
Expand Down Expand Up @@ -78,8 +82,20 @@ func _on_EditPaletteDialog_confirmed() -> void:

func _on_EditPaletteDialog_custom_action(action: String) -> void:
if action == DELETE_ACTION:
delete_confirmation.popup_centered()


func _on_delete_confirmation_confirmed() -> void:
emit_signal("deleted", true)
delete_confirmation.hide()
hide()


func _on_delete_confirmation_custom_action(action: String) -> void:
if action == BIN_ACTION:
emit_signal("deleted", false)
delete_confirmation.hide()
hide()
emit_signal("deleted")


func _on_size_value_changed(_value):
Expand Down
59 changes: 39 additions & 20 deletions src/Palette/EditPaletteDialog.tscn
Expand Up @@ -5,6 +5,7 @@
[node name="EditPaletteDialog" type="ConfirmationDialog"]
margin_right = 409.0
margin_bottom = 535.0
rect_min_size = Vector2( 170, 59.5 )
window_title = "Edit Palette"
resizable = true
script = ExtResource( 1 )
Expand All @@ -25,7 +26,7 @@ __meta__ = {

[node name="PaletteMetadata" type="GridContainer" parent="VBoxContainer"]
margin_right = 393.0
margin_bottom = 188.0
margin_bottom = 213.0
columns = 2
__meta__ = {
"_edit_use_anchors_": false
Expand All @@ -46,31 +47,31 @@ rect_min_size = Vector2( 0, 24 )
size_flags_horizontal = 3

[node name="CommentLabel" type="Label" parent="VBoxContainer/PaletteMetadata"]
margin_top = 46.0
margin_top = 58.0
margin_right = 67.0
margin_bottom = 60.0
margin_bottom = 72.0
rect_min_size = Vector2( 50, 0 )
text = "Comment:"

[node name="Comment" type="TextEdit" parent="VBoxContainer/PaletteMetadata"]
margin_left = 71.0
margin_top = 28.0
margin_right = 393.0
margin_bottom = 78.0
margin_bottom = 103.0
rect_min_size = Vector2( 0, 75 )
size_flags_horizontal = 3

[node name="WidthLabel" type="Label" parent="VBoxContainer/PaletteMetadata"]
margin_top = 87.0
margin_top = 112.0
margin_right = 67.0
margin_bottom = 101.0
margin_bottom = 126.0
text = "Width:"

[node name="Width" type="SpinBox" parent="VBoxContainer/PaletteMetadata"]
margin_left = 71.0
margin_top = 82.0
margin_top = 107.0
margin_right = 393.0
margin_bottom = 106.0
margin_bottom = 131.0
rect_min_size = Vector2( 0, 24 )
size_flags_horizontal = 3
min_value = 1.0
Expand All @@ -79,16 +80,16 @@ value = 1.0
align = 2

[node name="HeightLabel" type="Label" parent="VBoxContainer/PaletteMetadata"]
margin_top = 115.0
margin_top = 140.0
margin_right = 67.0
margin_bottom = 129.0
margin_bottom = 154.0
text = "Height:"

[node name="Height" type="SpinBox" parent="VBoxContainer/PaletteMetadata"]
margin_left = 71.0
margin_top = 110.0
margin_top = 135.0
margin_right = 393.0
margin_bottom = 134.0
margin_bottom = 159.0
rect_min_size = Vector2( 0, 24 )
size_flags_horizontal = 3
min_value = 1.0
Expand All @@ -97,25 +98,25 @@ value = 1.0
align = 2

[node name="PathLabel" type="Label" parent="VBoxContainer/PaletteMetadata"]
margin_top = 156.0
margin_top = 181.0
margin_right = 67.0
margin_bottom = 170.0
margin_bottom = 195.0
text = "Path:"

[node name="Path" type="TextEdit" parent="VBoxContainer/PaletteMetadata"]
margin_left = 71.0
margin_top = 138.0
margin_top = 163.0
margin_right = 393.0
margin_bottom = 188.0
margin_bottom = 213.0
rect_min_size = Vector2( 0, 50 )
size_flags_horizontal = 3
readonly = true
wrap_enabled = true

[node name="SizeReducedWarning" type="Label" parent="VBoxContainer"]
margin_top = 192.0
margin_top = 217.0
margin_right = 393.0
margin_bottom = 223.0
margin_bottom = 248.0
custom_colors/font_color = Color( 1, 0.603922, 0.603922, 1 )
text = "Reducing palette size will reset positions of colors. Colors that don't fit in new palette size will be lost!"
align = 1
Expand All @@ -126,9 +127,9 @@ __meta__ = {
}

[node name="AlreadyExistsWarning" type="Label" parent="VBoxContainer"]
margin_top = 227.0
margin_top = 252.0
margin_right = 393.0
margin_bottom = 241.0
margin_bottom = 266.0
custom_colors/font_color = Color( 1, 0.603922, 0.603922, 1 )
text = "Palette with the same name and path already exists!"
align = 1
Expand All @@ -138,9 +139,27 @@ __meta__ = {
"_edit_use_anchors_": false
}

[node name="DeleteConfirmation" type="ConfirmationDialog" parent="."]
margin_right = 170.0
margin_bottom = 60.0
rect_min_size = Vector2( 170, 59.5 )

[node name="Label2" type="Label" parent="DeleteConfirmation"]
anchor_right = 1.0
anchor_bottom = 1.0
margin_left = 8.0
margin_top = 8.0
margin_right = -8.0
margin_bottom = -36.0
text = "Delete Palette?"
align = 1
valign = 1

[connection signal="confirmed" from="." to="." method="_on_EditPaletteDialog_confirmed"]
[connection signal="custom_action" from="." to="." method="_on_EditPaletteDialog_custom_action"]
[connection signal="popup_hide" from="." to="." method="_on_EditPaletteDialog_popup_hide"]
[connection signal="text_changed" from="VBoxContainer/PaletteMetadata/Name" to="." method="_on_Name_text_changed"]
[connection signal="value_changed" from="VBoxContainer/PaletteMetadata/Width" to="." method="_on_size_value_changed"]
[connection signal="value_changed" from="VBoxContainer/PaletteMetadata/Height" to="." method="_on_size_value_changed"]
[connection signal="confirmed" from="DeleteConfirmation" to="." method="_on_delete_confirmation_confirmed"]
[connection signal="custom_action" from="DeleteConfirmation" to="." method="_on_delete_confirmation_custom_action"]
4 changes: 2 additions & 2 deletions src/Palette/PalettePanel.gd
Expand Up @@ -204,8 +204,8 @@ func _on_HiddenColorPickerButton_popup_closed():
Palettes.current_palette_set_color(edited_swatch_index, edited_swatch_color)


func _on_EditPaletteDialog_deleted() -> void:
Palettes.current_palete_delete()
func _on_EditPaletteDialog_deleted(permanent: bool) -> void:
Palettes.current_palete_delete(permanent)
setup_palettes_selector()
redraw_current_palette()

Expand Down

0 comments on commit 7416ed3

Please sign in to comment.