Rename palettes on EditPalettePopup, removed "Custom" subfolder

This commit is contained in:
OverloadedOrama 2019-12-31 01:24:56 +02:00
parent 129885ddfc
commit 20d643b4ca
7 changed files with 74 additions and 96 deletions

View file

@ -1,8 +1,9 @@
extends WindowDialog
onready var palette_grid = $VBoxContainer/HBoxContainer/Panel/EditPaletteGridContainer
onready var color_name_edit = $VBoxContainer/HBoxContainer3/EditPaletteColorNameLineEdit
onready var color_picker = $VBoxContainer/HBoxContainer/EditPaletteColorPicker
onready var palette_grid = $VBoxContainer/HBoxContainer/Panel/EditPaletteGridContainer
onready var color_name_edit = $VBoxContainer/ColorNameContainer/EditPaletteColorNameLineEdit
onready var palette_name_edit = $VBoxContainer/PaletteNameContainer/EditPaletteNameLineEdit
var palette_button = preload("res://Prefabs/PaletteButton.tscn");
@ -12,11 +13,10 @@ var working_palette : Palette
func open(palette : String) -> void:
current_palette = palette
palette_name_edit.text = current_palette
if Global.palettes.has(palette):
working_palette = Global.palettes[palette].duplicate()
_display_palette()
self.popup_centered()
func _display_palette() -> void:
@ -98,6 +98,19 @@ func re_index_swatches() -> void:
index += 1
func _on_EditPaletteSaveButton_pressed() -> void:
if palette_name_edit.text != current_palette:
Global.palettes.erase(current_palette)
var dir := Directory.new()
dir.open(".")
dir.rename("Palettes".plus_file(current_palette + ".json"), "Palettes".plus_file(palette_name_edit.text + ".json"))
current_palette = palette_name_edit.text
working_palette.name = current_palette
var optionbutton_index = Global.palette_option_button.selected
Global.palette_option_button.set_item_text(optionbutton_index, current_palette)
Global.palette_option_button.set_item_metadata(optionbutton_index, current_palette)
Global.palette_option_button.text = current_palette
Global.palettes[current_palette] = working_palette
Global.palette_container.on_palette_select(current_palette)
Global.palette_container.save_palette(current_palette, working_palette.name + ".json")
@ -106,7 +119,7 @@ func _on_EditPaletteSaveButton_pressed() -> void:
func _on_EditPaletteCancelButton_pressed() -> void:
self.hide()
func _on_EditPaletteColorNameLineEdit_text_changed(new_text) -> void:
func _on_EditPaletteColorNameLineEdit_text_changed(new_text : String) -> void:
if current_swatch >= 0 && current_swatch < working_palette.colors.size():
working_palette.set_color_name(current_swatch, new_text)
_refresh_hint_tooltip(current_swatch)
@ -117,5 +130,5 @@ func _on_EditPaletteColorPicker_color_changed(color : Color) -> void:
working_palette.set_color(current_swatch, color)
_refresh_hint_tooltip(current_swatch)
func _refresh_hint_tooltip(_index : int):
func _refresh_hint_tooltip(_index : int) -> void:
palette_grid.get_child(current_swatch).hint_tooltip = "#" + working_palette.get_color_data(current_swatch).to_upper() + " " + working_palette.get_color_name(current_swatch)

View file

@ -94,7 +94,7 @@ func _serialize() -> String:
result = JSON.print(serialize_data)
return result;
return result
func deserialize(input_string : String) -> Palette:
var result = get_script().new()

View file

@ -8,18 +8,17 @@ export var draggable := false
var drag_preview_texture = preload("res://Assets/Graphics/Palette/swatch_drag_preview.png")
func get_drag_data(_position):
var data = null;
if(draggable):
#print(String(get_instance_id()) + ": Drag Start");
data = {source_index = index};
var drag_icon = TextureRect.new();
drag_icon.texture = drag_preview_texture;
var data = null
if draggable:
data = {source_index = index}
var drag_icon = TextureRect.new()
drag_icon.texture = drag_preview_texture
drag_icon.modulate = color
set_drag_preview(drag_icon);
return data;
set_drag_preview(drag_icon)
return data
func can_drop_data(_position, _data):
return true;
return true
func drop_data(_position, data):
emit_signal("on_drop_data", data.source_index, index);
emit_signal("on_drop_data", data.source_index, index)

View file

@ -2,7 +2,6 @@ extends GridContainer
const palette_button = preload("res://Prefabs/PaletteButton.tscn");
const palettes_path := "Palettes"
const custom_palettes_path := "Palettes/Custom"
var current_palette = "Default"
var from_palette : Palette
@ -91,7 +90,6 @@ func create_new_palette(name : String, _from_palette : Palette) -> String: # Ret
return "Error: Palette '" + name + "' already exists!"
new_palette.name = name
# Check if source palette has data
if _from_palette:
new_palette = _from_palette.duplicate()
@ -101,7 +99,7 @@ func create_new_palette(name : String, _from_palette : Palette) -> String: # Ret
# Add palette to Global and options
Global.palettes[name] = new_palette
Global.palette_option_button.add_item(name)
var index: int = Global.palette_option_button.get_item_count() - 1
var index : int = Global.palette_option_button.get_item_count() - 1
Global.palette_option_button.set_item_metadata(index, name)
Global.palette_option_button.select(index)
@ -139,8 +137,6 @@ func _load_palettes() -> void:
dir.open(".")
if not dir.dir_exists(palettes_path):
dir.make_dir(palettes_path)
if not dir.dir_exists(custom_palettes_path):
dir.make_dir(custom_palettes_path)
var palette_files : Array = get_palette_files(palettes_path)
@ -154,17 +150,6 @@ func _load_palettes() -> void:
if palette.name == "Default":
Global.palette_option_button.select(index)
dir.open(custom_palettes_path)
var custom_palette_files : Array = get_palette_files(custom_palettes_path)
for file_name in custom_palette_files:
var palette : Palette = Palette.new().load_from_file(custom_palettes_path.plus_file(file_name))
if palette:
Global.palettes[palette.name] = palette
Global.palette_option_button.add_item(palette.name)
var index: int = Global.palette_option_button.get_item_count() - 1
Global.palette_option_button.set_item_metadata(index, palette.name)
if not "Default" in Global.palettes && Global.palettes.size() > 0:
Global.control._on_PaletteOptionButton_item_selected(0)
@ -187,4 +172,4 @@ func get_palette_files(path : String) -> Array:
func save_palette(palette_name : String, filename : String) -> void:
var palette = Global.palettes[palette_name]
palette.save_to_file(custom_palettes_path.plus_file(filename))
palette.save_to_file(palettes_path.plus_file(filename))