6 if owner.get_parent() is SubViewport:
9 %TabB.text = "Unique Identifiers"
10 %TabB.icon = get_theme_icon("CryptoKey", "EditorIcons")
12 owner.get_parent().visibility_changed.connect(func(): if is_visible_in_tree(): open())
14 %RenameNotification.add_theme_color_override("font_color", get_theme_color("warning_color", "Editor"))
19 %RenameNotification.hide()
25 func fill_table() -> void:
26 var t: Tree = %IdentifierTable
27 t.set_column_expand(1, true)
29 t.set_column_title(1, "Identifier")
30 t.set_column_title(0, "Resource Path")
31 t.set_column_title_alignment(0, 0)
32 t.set_column_title_alignment(1, 0)
35 for d in [["Characters", 'dch'], ["Timelines", "dtl"]]:
36 var directory := DialogicResourceUtil.get_directory(d[1])
37 var directory_item := t.create_item()
38 directory_item.set_text(0, d[0])
39 directory_item.set_metadata(0, d[1])
41 var item: TreeItem = t.create_item(directory_item)
42 item.set_text(0, directory[key])
44 item.set_editable(1, true)
45 item.set_metadata(1, key)
46 item.add_button(1, get_theme_icon("Edit", "EditorIcons"), 0, false, "Edit")
49 func _on_identifier_table_item_edited() -> void:
50 var item: TreeItem = %IdentifierTable.get_edited()
51 var new_identifier: String = item.get_text(1)
54 if new_identifier == item.get_metadata(1):
57 if new_identifier.is_empty() or not DialogicResourceUtil.is_identifier_unused(item.get_parent().get_metadata(0), new_identifier):
58 item.set_text(1, item.get_metadata(1))
61 DialogicResourceUtil.change_unique_identifier(item.get_text(0), new_identifier)
63 match item.get_parent().get_metadata(0):
65 owner.get_parent().add_character_name_ref_change(item.get_metadata(1), new_identifier)
67 owner.get_parent().add_timeline_name_ref_change(item.get_metadata(1), new_identifier)
69 %RenameNotification.show()
70 item.set_metadata(1, new_identifier)
73 func _on_identifier_table_button_clicked(item: TreeItem, column: int, id: int, mouse_button_index: int) -> void:
75 %IdentifierTable.edit_selected(true)
78 func filter_tree(filter:String= "", item:TreeItem = null) -> bool:
80 item = %IdentifierTable.get_root()
83 for child in item.get_children():
84 if child.get_child_count() > 0:
85 child.visible = filter_tree(filter, child)
86 if child.visible: any = true
88 child.visible = filter.is_empty() or filter.to_lower() in child.get_text(0).to_lower() or filter.to_lower() in child.get_text(1).to_lower()
89 if child.visible: any = true
94 func _on_search_text_changed(new_text: String) -> void: