multi line toggle active

This commit is contained in:
2025-04-18 12:27:08 +02:00
parent 62e8bb728b
commit 7cf3f6cc1f

View File

@@ -9,6 +9,8 @@ from tkinter import messagebox
from tkinter import ttk from tkinter import ttk
import json import json
from PyInstaller.utils.hooks import collect_data_files
class SettingsWindow(tk.Toplevel): class SettingsWindow(tk.Toplevel):
def __init__(self, root: tk.Tk): def __init__(self, root: tk.Tk):
@@ -195,7 +197,8 @@ class Application:
edit_strasse.grid(row=1, column=3) edit_strasse.grid(row=1, column=3)
edit_plz_ort = tk.Entry(edit_frame, textvariable=self.plz_ort) edit_plz_ort = tk.Entry(edit_frame, textvariable=self.plz_ort)
edit_plz_ort.grid(row=1, column=4) 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 = tk.Frame(self.root, bg="teal")
data_frame.pack(side=tk.TOP, fill=tk.BOTH, expand=True) data_frame.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
@@ -270,6 +273,36 @@ class Application:
self.clear_entry_fields() self.clear_entry_fields()
self._save_json_file() 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): def clear_entry_fields(self):
entry_var_list = [self.aktiv, self.firma, self.name, self.strasse, self.plz_ort] entry_var_list = [self.aktiv, self.firma, self.name, self.strasse, self.plz_ort]
for entry in entry_var_list: for entry in entry_var_list:
@@ -308,22 +341,6 @@ class Application:
for i in range(len(values)): for i in range(len(values)):
entry_var_list[i].set(values[i]) 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): def _load_json_file(self):
try: try:
with open(self.json_file, "r", encoding="utf-8") as f: with open(self.json_file, "r", encoding="utf-8") as f: