From 22696e97f3ac9c9c5de038164f3f466dfe04e538 Mon Sep 17 00:00:00 2001 From: Relintai Date: Fri, 15 Jul 2022 11:16:30 +0200 Subject: [PATCH] Reworked LastOpenedFiles, now it uses EditorSettings. --- addons/file-editor/scripts/LastOpenedFiles.gd | 82 ++++++++++++------- 1 file changed, 52 insertions(+), 30 deletions(-) diff --git a/addons/file-editor/scripts/LastOpenedFiles.gd b/addons/file-editor/scripts/LastOpenedFiles.gd index 06f1d23..a8386fb 100644 --- a/addons/file-editor/scripts/LastOpenedFiles.gd +++ b/addons/file-editor/scripts/LastOpenedFiles.gd @@ -4,45 +4,67 @@ extends Reference var editor_plugin : EditorPlugin = null var editor_settings : EditorSettings = null -const lastopenedfile_path : String = "res://addons/file-editor/lastopenedfiles.lastcfg" - -func _ready(): - pass - func store_opened_files(filecontainer : Control): - var file = ConfigFile.new() - file.load(lastopenedfile_path) - for child in range(0,filecontainer.get_item_count()): - var filepath = filecontainer.get_item_metadata(child)[0].current_path - file.set_value("Opened",filepath.get_file(),filepath) + var arr : Array = Array() - file.save(lastopenedfile_path) + for child in range(filecontainer.get_item_count()): + var filepath : String = filecontainer.get_item_metadata(child)[0].current_path + + var a : Array = Array() + a.push_back(filepath.get_file()) + a.push_back(filepath) + + arr.push_back(a) + + editor_settings.set_project_metadata("file_editor", "files", arr) func remove_opened_file(index : int , filecontainer : Control): - var file = ConfigFile.new() - file.load(lastopenedfile_path) - var filepath = filecontainer.get_item_metadata(index)[0].current_path - file.set_value("Opened",filepath.get_file(),null) - file.save(lastopenedfile_path) + var filepath : String = filecontainer.get_item_metadata(index)[0].current_path + var f : String = filepath.get_file() + + var arr : Array = editor_settings.get_project_metadata("file_editor", "files", Array()) + + for i in range(arr.size()): + var a : Array = arr[i] + + if a[0] == f: + arr.remove(i) + break + + editor_settings.set_project_metadata("file_editor", "files", arr) + + var fonts_dict : Dictionary = editor_settings.get_project_metadata("file_editor", "file_fonts", Dictionary()) + + if fonts_dict.has(f): + fonts_dict.erase(f) + editor_settings.set_project_metadata("file_editor", "file_fonts", fonts_dict) func load_opened_files() -> Array: - var file = ConfigFile.new() - file.load(lastopenedfile_path) - var keys = [] - # Load opened files - if file.has_section("Opened"): - var openedfiles = file.get_section_keys("Opened") - for openedfile in openedfiles: - # Load each single file which was opened - # creating and returning an Array with this format [1:file name, 2:file path, 3:file font] - keys.append([openedfile, file.get_value("Opened",openedfile), file.get_value("Fonts",openedfile) if file.has_section_key("Fonts",openedfile) else "null"]) + var arr : Array = editor_settings.get_project_metadata("file_editor", "files", Array()) + var fonts_dict : Dictionary = editor_settings.get_project_metadata("file_editor", "file_fonts", Dictionary()) + var keys : Array = Array() + for i in range(arr.size()): + var a : Array = arr[i] + + # creating and returning an Array with this format [1:file name, 2:file path, 3:file font] + var k : Array + k.push_back(a[0]) + k.push_back(a[1]) + + if fonts_dict.has(a[0]): + k.push_back(fonts_dict[a[0]]) + else: + k.push_back("null") + + keys.append(k) + return keys func store_editor_fonts(file_name : String, font_path : String): - var file = ConfigFile.new() - file.load(lastopenedfile_path) - file.set_value("Fonts",file_name,font_path) - file.save(lastopenedfile_path) + var fonts_dict : Dictionary = editor_settings.get_project_metadata("file_editor", "file_fonts", Dictionary()) + fonts_dict[file_name] = font_path + editor_settings.set_project_metadata("file_editor", "file_fonts", fonts_dict) + func get_editor_font(): #var editor_plugin : EditorPlugin = EditorPlugin.new()