mirror of
https://github.com/Relintai/godot-resources-as-sheets-plugin.git
synced 2024-11-10 10:12:08 +01:00
Many, many bug fixes
This commit is contained in:
parent
bd9dd395c8
commit
3c3b16970f
@ -35,6 +35,7 @@ var edited_cells := []
|
||||
var edited_cells_text := []
|
||||
var edit_cursor_positions := []
|
||||
var inspector_resource : Resource
|
||||
var search_cond : Reference
|
||||
|
||||
|
||||
func _ready():
|
||||
@ -94,7 +95,11 @@ func display_folder(folderpath : String, sort_by : String = "", sort_reverse : b
|
||||
|
||||
get_node(path_folder_path).text = folderpath
|
||||
_create_table(force_rebuild or current_path != folderpath)
|
||||
_apply_search_cond()
|
||||
current_path = folderpath
|
||||
yield(get_tree(), "idle_frame")
|
||||
if get_node(path_table_root).get_child_count() == 0:
|
||||
display_folder(folderpath, sort_by, sort_reverse, force_rebuild)
|
||||
|
||||
|
||||
func _load_resources_from_folder(folderpath : String, sort_by : String, sort_reverse : bool):
|
||||
@ -219,6 +224,7 @@ func _update_column_sizes():
|
||||
column_headers[i].rect_min_size.x = 0
|
||||
cell.rect_min_size.x = 0
|
||||
column_headers[i].rect_size.x = 0
|
||||
get_node(path_columns).queue_sort()
|
||||
|
||||
min_width = max(column_headers[i].rect_size.x, cell.rect_size.x)
|
||||
column_headers[i].rect_min_size.x = min_width
|
||||
@ -226,7 +232,6 @@ func _update_column_sizes():
|
||||
column_headers[i].rect_size.x = min_width
|
||||
|
||||
get_node(path_columns).queue_sort()
|
||||
|
||||
|
||||
|
||||
func _update_row(row_index : int, color_rows : bool = true):
|
||||
@ -241,11 +246,11 @@ func _update_row(row_index : int, color_rows : bool = true):
|
||||
|
||||
else:
|
||||
current_node = root_node.get_child(row_index * columns.size() + i)
|
||||
current_node.hint_tooltip = columns[i] + "\nOf " + rows[row_index].resource_path.get_file()
|
||||
current_node.hint_tooltip = columns[i] + "\nOf " + rows[row_index].resource_path.get_file().get_basename()
|
||||
|
||||
column_editors[i].set_value(current_node, rows[row_index].get(columns[i]))
|
||||
if columns[i] == "resource_path":
|
||||
column_editors[i].set_value(current_node, current_node.text.get_file())
|
||||
column_editors[i].set_value(current_node, current_node.text.get_file().get_basename())
|
||||
|
||||
if color_rows and column_types[i] == TYPE_COLOR:
|
||||
next_color = rows[row_index].get(columns[i])
|
||||
@ -253,6 +258,18 @@ func _update_row(row_index : int, color_rows : bool = true):
|
||||
column_editors[i].set_color(current_node, next_color)
|
||||
|
||||
|
||||
func _apply_search_cond():
|
||||
if search_cond == null:
|
||||
_on_SearchCond_text_entered("true")
|
||||
|
||||
var table_elements = get_node(path_table_root).get_children()
|
||||
|
||||
for i in rows.size():
|
||||
var row_visible = search_cond.can_show(rows[i], i)
|
||||
for j in columns.size():
|
||||
table_elements[i * columns.size() + j].visible = row_visible
|
||||
|
||||
|
||||
func add_path_to_recent(path : String, is_loading : bool = false):
|
||||
if path in recent_paths: return
|
||||
|
||||
@ -685,15 +702,14 @@ func _on_SearchCond_text_entered(new_text : String):
|
||||
new_script.reload()
|
||||
|
||||
var new_script_instance = new_script.new()
|
||||
var table_elements = get_node(path_table_root).get_children()
|
||||
|
||||
for i in rows.size():
|
||||
var row_visible = new_script_instance.can_show(rows[i], i)
|
||||
for j in columns.size():
|
||||
table_elements[(i + 1) * columns.size() + j].visible = row_visible
|
||||
search_cond = new_script_instance
|
||||
_apply_search_cond()
|
||||
|
||||
|
||||
func _on_ProcessExpr_text_entered(new_text : String):
|
||||
if new_text == "":
|
||||
new_text = "true"
|
||||
|
||||
var new_script := GDScript.new()
|
||||
new_script.source_code = "static func get_result(value, res, row_index, cell_index):\n\treturn " + new_text
|
||||
new_script.reload()
|
||||
|
@ -607,7 +607,7 @@ margin_top = 84.0
|
||||
margin_right = 326.0
|
||||
margin_bottom = 115.0
|
||||
size_flags_horizontal = 3
|
||||
text = "Clip header text (headers less likely to break but text wont be fully visible)"
|
||||
text = "Clip header text (more compact view but header text wont be fully visible) (restart when switching)"
|
||||
autowrap = true
|
||||
|
||||
[node name="ClipHeaders" type="CheckBox" parent="Control/Settings/MarginContainer/RichTextLabel/GridContainer"]
|
||||
@ -615,6 +615,7 @@ margin_left = 330.0
|
||||
margin_top = 84.0
|
||||
margin_right = 404.0
|
||||
margin_bottom = 115.0
|
||||
pressed = true
|
||||
text = "Enable"
|
||||
|
||||
[node name="Label5" type="Label" parent="Control/Settings/MarginContainer/RichTextLabel/GridContainer"]
|
||||
@ -640,7 +641,6 @@ text = "Enable"
|
||||
[connection signal="item_selected" from="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer2/RecentPaths" to="." method="_on_RecentPaths_item_selected"]
|
||||
[connection signal="pressed" from="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer2/Info" to="Control/Info" method="popup_centered"]
|
||||
[connection signal="pressed" from="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer2/Settings" to="Control/Settings" method="popup_centered"]
|
||||
[connection signal="scroll_started" from="HeaderContentSplit/MarginContainer/FooterContentSplit/Panel/Scroll" to="." method="_on_Scroll_scroll_ended"]
|
||||
[connection signal="text_entered" from="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/Search/SearchCond" to="." method="_on_SearchCond_text_entered"]
|
||||
[connection signal="text_entered" from="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/Search/ProcessExpr" to="." method="_on_ProcessExpr_text_entered"]
|
||||
[connection signal="dir_selected" from="Control/FileDialog" to="." method="_on_FileDialog_dir_selected"]
|
||||
|
@ -5,5 +5,5 @@ description="Edit Many Resources from one Folder as a table.
|
||||
|
||||
Heavily inspired by Multi-Cursor-Editing in text editors, so after selecting multiple cells (in the same column!) using Ctrl+Click or Shift+Click, most Basic-to-Intermediate movements should be available."
|
||||
author="Don Tnowe"
|
||||
version="1.4"
|
||||
version="1.4.1"
|
||||
script="plugin.gd"
|
||||
|
@ -8,7 +8,7 @@ var hint_strings_array := []
|
||||
|
||||
# Override to define where the cell should be shown.
|
||||
func can_edit_value(value, type, property_hint) -> bool:
|
||||
return true
|
||||
return value != null
|
||||
|
||||
# Override to change how the cell is created; preload a scene or create nodes from code.
|
||||
# Caller is an instance of `editor_view.tscn`.
|
||||
|
@ -63,17 +63,17 @@ func _increment_values(by : float, property : int):
|
||||
# Hue has 360 degrees and loops
|
||||
_stored_value.h += by / 360.0
|
||||
for i in cell_values.size():
|
||||
cell_values[i].h = fposmod(cell_values[i].h + by / 180.0, 1.0)
|
||||
cell_values[i].h = fposmod(cell_values[i].h + by / 360.0, 1.0)
|
||||
|
||||
4:
|
||||
_stored_value.s += by * 0.005
|
||||
for i in cell_values.size():
|
||||
cell_values[i].s += by * 0.01
|
||||
cell_values[i].s += by * 0.005
|
||||
|
||||
5:
|
||||
_stored_value.v += by * 0.005
|
||||
for i in cell_values.size():
|
||||
cell_values[i].v += by * 0.01
|
||||
cell_values[i].v += by * 0.005
|
||||
|
||||
_set_stored_value(_stored_value)
|
||||
sheet.set_edited_cells_values(cell_values)
|
||||
@ -119,4 +119,4 @@ func update_cell_values():
|
||||
for i in values.size():
|
||||
values[i] = _stored_value
|
||||
|
||||
sheet.set_edited_cells_values(values, true)
|
||||
sheet.set_edited_cells_values(values)
|
||||
|
Loading…
Reference in New Issue
Block a user