boronotes/main.gd

66 lines
1.6 KiB
GDScript

class_name Main
extends Control
var notes: Array[Note] = []
var previous_notes: Array[Note] = []
var current_note: Note
@onready var back_button: Button = %BackButton
@onready var page_title: Label = %PageTitle
@onready var notes_container: VBoxContainer = %NotesContainer
const NOTE_ITEM = preload("res://components/note_item/note_item.tscn")
func display_note() -> void:
back_button.disabled = previous_notes.size() == 0
page_title.text = current_note.title if current_note else "Главная"
for child in notes_container.get_children():
notes_container.remove_child(child)
var display_notes = notes.filter(func (note): return note.parent_id == (current_note.id if current_note else ""))
for note in display_notes:
var note_item = NOTE_ITEM.instantiate()
note_item.note = note
notes_container.add_child(note_item)
note_item.pressed.connect(_on_note_item_pressed)
func _ready():
var note_1 = Note.new("Тест 1")
var note_2 = Note.new("Тест 2")
var note_3 = Note.new("Тест 3")
var note_1_1 = Note.new("Тест 1 1", note_1.id)
var note_1_2 = Note.new("Тест 1 2", note_1.id)
var note_1_2_1 = Note.new("Тест 1 2 1", note_1_2.id)
var note_2_1 = Note.new("Тест 2 1", note_2.id)
notes = [
note_1,
note_2,
note_3,
note_1_1,
note_1_2,
note_1_2_1,
note_2_1,
]
display_note()
func _on_back_button_pressed():
current_note = previous_notes.pop_back()
display_note()
func _on_note_item_pressed(note: Note) -> void:
previous_notes.append(current_note)
current_note = note
display_note()
func _on_save_manager_load_notes(loaded_notes):
notes = loaded_notes