diff options
| author | dam <dam@gudinoff> | 2022-04-16 23:42:21 +0000 |
|---|---|---|
| committer | dam <dam@gudinoff> | 2022-04-16 23:42:21 +0000 |
| commit | be7097c8fab45457c703a28aae44509e21e1cf2a (patch) | |
| tree | d0545941d03707c8b185ae8105b91174d68a682e | |
| parent | 7348ca93ccc1f4a55438d59430f7f870c08b56d6 (diff) | |
| download | surgery-log-be7097c8fab45457c703a28aae44509e21e1cf2a.tar.zst surgery-log-be7097c8fab45457c703a28aae44509e21e1cf2a.zip | |
Allow user to export error log to file.
| -rw-r--r-- | logic/menu.gd | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/logic/menu.gd b/logic/menu.gd index caa39d1..42b88d5 100644 --- a/logic/menu.gd +++ b/logic/menu.gd @@ -1,5 +1,6 @@ extends MenuButton +const LOGS_FILE_PATH: String = "user://logs/godot.log" const menu_items: Array = [ { label = "Import Option Sets", action = "import_option_sets_action" }, { label = "Export Option Sets", action = "export_option_sets_action" }, @@ -7,6 +8,7 @@ const menu_items: Array = [ { label = "Import Database", action = "import_database_action" }, { label = "Export Database", action = "export_database_action" }, { label = "Clear Database", action = "clear_database_action" }, + { label = "Export Log", action = "export_log_action" }, { label = "About", action = "about_action" }, ] const license_font_b612: String = "res://licenses/font_b612.txt" @@ -114,6 +116,35 @@ func clear_database(): database.save_database() +func export_log_action(): + file_picker.mode = FileDialog.MODE_SAVE_FILE + file_picker.current_dir = OS.get_system_dir(OS.SYSTEM_DIR_DOWNLOADS) + file_picker.filters = ["*.log"] + file_picker.current_file = "" + file_picker.connect("file_selected", self, "export_log") + file_picker.show_modal(true) + file_picker.invalidate() + + +func export_log(file_path: String): + var error : int + var file := File.new() + + error = file.open(LOGS_FILE_PATH, File.READ) + if error != OK: + printerr("Failed to open log file '%s' (error %d)." % [LOGS_FILE_PATH, error]) + return + var file_content = file.get_as_text() + file.close() + + error = file.open(file_path, File.WRITE) + if error != OK: + printerr("Failed to open file '%s' to write log (error %d)." % [file_path, error]) + return + file.store_string(file_content) + file.close() + + func about_action(): dialog.setup("Surgery Log\nversion %s" % ProjectSettings.get_setting("global/version"), "", "") popup.open_popup("About", dialog) |
