diff --git a/src/brovski-adress-etiketten-verwaltung.py b/src/brovski-adress-etiketten-verwaltung.py index 86a1c8c..89badd0 100644 --- a/src/brovski-adress-etiketten-verwaltung.py +++ b/src/brovski-adress-etiketten-verwaltung.py @@ -18,15 +18,32 @@ def show_error(message_title: str, message: str, parent: tk.Tk | tk.Toplevel): ) -class SettingsWindow(tk.Toplevel): +class Window(tk.Toplevel): def __init__(self, root: tk.Tk): super().__init__(root) self.root = root self.protocol("WM_DELETE_WINDOW", self.close_window) + + def close_window(self): + self.destroy_window() + + def destroy_window(self): + self.root.update() + self.destroy() + + +class InsertRecord(Window): + def __init__(self, root: tk.Tk): + super().__init__(root) + self.title("Adresse einfügen") + tk.Button(self, text="Abbrechen", command=self.close_window).pack() + + +class SettingsWindow(Window): + def __init__(self, root: tk.Tk): + super().__init__(root) self.geometry(f"500x330+{self.root.winfo_x() + 20}+{self.root.winfo_y() + 20}") - self.config = Config() - self.json_file = tk.StringVar() self.csv_file = tk.StringVar() @@ -94,14 +111,6 @@ class SettingsWindow(tk.Toplevel): def cancel(self): self.close_window() - def close_window(self): - self.destroy_window() - - def destroy_window(self): - self.root.update() - self.root.deiconify() - self.destroy() - class Config: parser: ConfigParser @@ -260,12 +269,11 @@ class Application: self.root.destroy() def show_settings(self): - settings = SettingsWindow(self.root) - settings.wm_transient(self.root) - settings.grab_set() + settings = self.open_window(SettingsWindow) settings.wait_window() def insert_record(self): + self.open_window(InsertRecord) if self.current_record is not None: self.clear_entry_fields() children = self.table.get_children() @@ -431,6 +439,11 @@ class Application: for item in self.table.get_children(): self.table.delete(item) + def open_window(self, child: type[Window]) -> Window: + window = child(self.root) + window.wm_transient(self.root) + window.grab_set() + return window if __name__ == '__main__': Application()