29 lines
819 B
GDScript
29 lines
819 B
GDScript
extends MenuButton
|
|
|
|
@onready var submenu = $"Open recent"
|
|
|
|
func _ready() -> void:
|
|
var popup = self.get_popup()
|
|
popup.id_pressed.connect(_handle_popup)
|
|
popup.add_item("New")
|
|
popup.add_separator()
|
|
popup.add_item("Open")
|
|
submenu.get_parent().remove_child(submenu)
|
|
popup.add_submenu_node_item("Open recent", submenu, 3)
|
|
submenu.id_pressed.connect(_open_recent)
|
|
for file in CAD.recent_files:
|
|
var id = submenu.item_count
|
|
submenu.add_item(file.get_file().get_basename(), id)
|
|
submenu.set_item_metadata(id, file)
|
|
popup.add_separator()
|
|
popup.add_item("Save")
|
|
|
|
func _open_recent(id: int):
|
|
CAD.open_project(submenu.get_item_metadata(id))
|
|
|
|
func _handle_popup(id: int) -> void:
|
|
var bname = self.get_popup().get_item_text(id)
|
|
if $content.has_node(bname):
|
|
var node = $content.get_node(bname)
|
|
node.visible=true
|