From 12090f79309d3283a3f9213e83242b9ed98b983a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lera=20Elvo=C3=A9?= Date: Sat, 25 Jun 2022 20:29:18 +0300 Subject: [PATCH] improve file reading in ServerUI, remove dirty flag from FileDef --- ServerUI.gd | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/ServerUI.gd b/ServerUI.gd index 6d9a10a..dedd3bf 100644 --- a/ServerUI.gd +++ b/ServerUI.gd @@ -75,6 +75,7 @@ func set_server_dir(dir: String) -> void: if !directory.current_is_dir() && (file_name.get_extension() in ACCEPTED_FILE_FORMATS): var fd = FileDef(file_name, false) working_files.append(fd) + fd.content = _get_file_content(file_name) var in_filestxt := _is_file_in_filestxt(file_name) fd.include_in_filestxt = in_filestxt @@ -82,7 +83,6 @@ func set_server_dir(dir: String) -> void: var file_metadata := _get_file_metadata(file_name) fd.title = file_metadata["title"] fd.date = file_metadata["date"] - fd.content = file_metadata["content"] idx += 1 @@ -120,12 +120,6 @@ func _on_FileTree_item_selected() -> void: current_tree_selection = item current_file = item.get_metadata(0)["file_def"] as FileDef - if !current_file.dirty: - var file_metadata := _get_file_metadata(current_file.file_path) - current_file.title = file_metadata["title"] - current_file.date = file_metadata["date"] - current_file.content = file_metadata["content"] - document_input_textedit.text = current_file.content document_date_lineedit.text = current_file.date document_title_lineedit.text = current_file.title @@ -227,12 +221,20 @@ func _get_file_metadata(path: String) -> Dictionary: res["title"] = def[2] if def.size() > 2 else "" break - if f.open(server_dir.plus_file(path), File.READ) == OK: - res["content"] = f.get_as_text() + res["content"] = _get_file_content(path) return res +func _get_file_content(path: String) -> String: + var content: String = "" + var f := File.new() + if f.open(server_dir.plus_file(path), File.READ) == OK: + content = f.get_as_text() + + return content + + func _on_FileTreeContextMenu_id_pressed(id: int) -> void: var idx = current_tree_selection.get_metadata(0)["id"] as int var fd = working_files[idx] as FileDef @@ -250,20 +252,17 @@ func _on_FileTreeContextMenu_id_pressed(id: int) -> void: func _on_DocTitleLineEdit_text_changed(new_text: String) -> void: if current_file: current_file.title = new_text - current_file.dirty = true func _on_DocDateLineEdit_text_changed(new_text: String) -> void: if current_file: current_file.date = new_text - current_file.dirty = true func _on_DocInputTextEdit_text_changed() -> void: if current_file: var new_text: String = document_input_textedit.text current_file.content = new_text - current_file.dirty = true if !current_file.timer: var t := Timer.new() @@ -305,7 +304,6 @@ class FileDef: var include_in_filestxt: bool = true var title: String # optional var date: String # optional, YYYY-MM-DD - var dirty: bool = false var content: String