tool extends Popup signal item_double_clicked(generator) onready var tree = $Tree func init(graph_name : String, generator : MMGenGraph) -> void: tree.clear() var root : TreeItem = tree.create_item(null) root.set_text(0, graph_name) root.set_custom_color(0, Color(1, 1, 1)) root.set_metadata(0, generator) fill_item(root, generator) func fill_item(parent : TreeItem, generator : MMGenGraph) -> void: for c in generator.get_children(): if c is MMGenGraph: var item : TreeItem = tree.create_item(parent) item.set_text(0, c.get_type_name()) if c.is_editable(): item.set_custom_color(0, Color(1, 1, 1)) item.set_metadata(0, c) fill_item(item, c) func _on_Tree_item_double_clicked() -> void: emit_signal("item_double_clicked", tree.get_selected().get_metadata(0)) queue_free()