aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--logic/menu.gd31
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)