From 7cf3f6cc1ff81cafcba84525881a0199da60e607 Mon Sep 17 00:00:00 2001 From: sroth Date: Fri, 18 Apr 2025 12:27:08 +0200 Subject: [PATCH] multi line toggle active --- src/brovski-adress-etiketten-verwaltung.py | 51 ++++++++++++++-------- 1 file changed, 34 insertions(+), 17 deletions(-) diff --git a/src/brovski-adress-etiketten-verwaltung.py b/src/brovski-adress-etiketten-verwaltung.py index c056f39..c67f411 100644 --- a/src/brovski-adress-etiketten-verwaltung.py +++ b/src/brovski-adress-etiketten-verwaltung.py @@ -9,6 +9,8 @@ from tkinter import messagebox from tkinter import ttk import json +from PyInstaller.utils.hooks import collect_data_files + class SettingsWindow(tk.Toplevel): def __init__(self, root: tk.Tk): @@ -195,7 +197,8 @@ class Application: edit_strasse.grid(row=1, column=3) edit_plz_ort = tk.Entry(edit_frame, textvariable=self.plz_ort) edit_plz_ort.grid(row=1, column=4) - tk.Button(edit_frame, text="Update", command=self.update_record).grid(row=1, column=5) + tk.Button(edit_frame, text="Update", command=self.update_record, width=button_width).grid(row=1, column=5) + tk.Button(edit_frame, text="Toggle Aktiv", command=self.toggle_active, width=button_width).grid(row=1, column=6) data_frame = tk.Frame(self.root, bg="teal") data_frame.pack(side=tk.TOP, fill=tk.BOTH, expand=True) @@ -270,6 +273,36 @@ class Application: self.clear_entry_fields() self._save_json_file() + def update_record(self): + if self.current_record is None: + return + values = { + 0: self.aktiv.get(), + 1: self.firma.get(), + 2: self.name.get(), + 3: self.strasse.get(), + 4: self.plz_ort.get(), + } + for key, value in values.items(): + self.table.set(self.current_record, key, value) + + self.clear_entry_fields() + self._save_json_file() + + def toggle_active(self): + items = self.table.selection() + if len(items) == 0: + return + + for id in items: + values = self.table.item(id, "values") + active = values[0] + new_active = "x" if active == "" else "" + self.table.set(id, "0", new_active) + + self.clear_entry_fields() + self._save_json_file() + def clear_entry_fields(self): entry_var_list = [self.aktiv, self.firma, self.name, self.strasse, self.plz_ort] for entry in entry_var_list: @@ -308,22 +341,6 @@ class Application: for i in range(len(values)): entry_var_list[i].set(values[i]) - def update_record(self): - if self.current_record is None: - return - values = { - 0: self.aktiv.get(), - 1: self.firma.get(), - 2: self.name.get(), - 3: self.strasse.get(), - 4: self.plz_ort.get(), - } - for key, value in values.items(): - self.table.set(self.current_record, key, value) - - self.clear_entry_fields() - self._save_json_file() - def _load_json_file(self): try: with open(self.json_file, "r", encoding="utf-8") as f: