From 164b71a0c3078650a7824cbec960711c50bdbad3 Mon Sep 17 00:00:00 2001 From: mrkubax10 Date: Sat, 2 Mar 2024 22:35:58 +0100 Subject: [PATCH] Implement project saving --- main.py | 21 ++++++++++++++++++++- project.py | 12 ++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/main.py b/main.py index 4085f66..8d08f0c 100644 --- a/main.py +++ b/main.py @@ -46,7 +46,26 @@ def menu_file_open_project_click(): def menu_file_save_project_click(): - pass + global project + + path=None + if project.loaded: + path=project.path + else: + # show file save dialog + path=filedialog.asksaveasfilename( + title="Save font project", + filetypes=[("Font project (json)", "*.fontproj")], + defaultextension=".fontproj" + ) + if path=="": + return + + try: + project.save(path) + except IOError as e: + tkinter.messagebox.showerror("Saving project",f"Failed to save project '{path}': {e}") + def menu_file_save_project_as_click(): pass diff --git a/project.py b/project.py index 5288604..e7cdfa9 100644 --- a/project.py +++ b/project.py @@ -25,5 +25,17 @@ class Project: self.loaded=True + def save(self,path): + # save project data to file + with open(path, "w") as f: + json.dump({ + "char_width": self.char_res[0], + "char_height": self.char_res[1], + "chars": self.chars + }, f, indent=4) + self.path=path + self.loaded=True + + def does_char_exist(self,c): return chr(c) in self.chars