commit 51

This commit is contained in:
2025-08-03 23:20:50 +02:00
parent 0d7ab8d73d
commit 6f8b0b290c
3 changed files with 33 additions and 37 deletions

View File

@@ -383,10 +383,12 @@ class WidgetManager:
action_buttons_sticky = "w" if button_box_pos == 'left' else "e"
action_buttons_frame = ttk.Frame(bottom_controls_frame, style="AccentBottom.TFrame")
action_buttons_frame.grid(row=0, column=action_buttons_col, sticky=action_buttons_sticky, pady=(5, 10))
action_buttons_frame.grid(row=0, column=action_buttons_col, rowspan=2, sticky="nsew", pady=(5, 10))
self.status_bar = ttk.Label(bottom_controls_frame, text="", anchor="w", style="AccentBottom.TLabel")
self.status_bar.grid(row=0, column=1, sticky="ew", padx=10)
status_bar_col = 1 if button_box_pos == 'left' else 1
status_bar_sticky = "w" if button_box_pos == 'left' else "e"
self.status_bar.grid(row=0, column=status_bar_col, sticky=status_bar_sticky, padx=10)
self.settings_button = ttk.Button(bottom_controls_frame, image=self.dialog.icon_manager.get_icon(
'settings-2_small'), command=self.dialog.open_settings_dialog, style="Bottom.TButton.Borderless.Round")
@@ -394,47 +396,41 @@ class WidgetManager:
Tooltip(self.settings_button, "Einstellungen")
if self.dialog.dialog_mode == "save":
# Create a container for the top row (entry and save button)
top_row = ttk.Frame(action_buttons_frame, style="AccentBottom.TFrame")
top_row.pack(fill="x", expand=True)
self.filename_entry = ttk.Entry(action_buttons_frame)
save_button = ttk.Button(action_buttons_frame, text="Speichern", command=self.dialog.on_save)
cancel_button = ttk.Button(action_buttons_frame, text="Abbrechen", command=self.dialog.on_cancel)
self.filter_combobox = ttk.Combobox(action_buttons_frame, values=[ft[0] for ft in self.dialog.filetypes], state="readonly")
self.filename_entry = ttk.Entry(top_row)
self.filename_entry.pack(side="left", fill="x", expand=True, padx=(10, 5))
# Limit max width of the entry field
self.filename_entry.bind("<Configure>", lambda e: e.widget.config(width=min(80, int(e.width/8))))
if button_box_pos == 'left':
action_buttons_frame.grid_columnconfigure(0, weight=1)
self.filename_entry.grid(row=0, column=0, sticky="ew", padx=(10,5))
save_button.grid(row=0, column=1, sticky="e", padx=(0,10))
cancel_button.grid(row=1, column=0, sticky="w", padx=(10,5), pady=(5,0))
self.filter_combobox.grid(row=1, column=1, sticky="w", padx=(0,10), pady=(5,0))
else: # right
action_buttons_frame.grid_columnconfigure(1, weight=1)
save_button.grid(row=0, column=0, sticky="w", padx=(10,5))
self.filename_entry.grid(row=0, column=1, sticky="ew", padx=(0,10))
self.filter_combobox.grid(row=1, column=0, sticky="e", padx=(10,5), pady=(5,0))
cancel_button.grid(row=1, column=1, sticky="e", padx=(0,10), pady=(5,0))
save_button = ttk.Button(top_row, text="Speichern", command=self.dialog.on_save)
save_button.pack(side="left", padx=(0, 10))
# Create a container for the bottom row (cancel button and combobox)
bottom_row = ttk.Frame(action_buttons_frame, style="AccentBottom.TFrame")
bottom_row.pack(fill="x", expand=True, pady=(5,0))
cancel_button = ttk.Button(bottom_row, text="Abbrechen", command=self.dialog.on_cancel)
cancel_button.pack(side="left", padx=(10, 5))
self.filter_combobox = ttk.Combobox(bottom_row, values=[
ft[0] for ft in self.dialog.filetypes], state="readonly")
self.filter_combobox.pack(side="left", padx=(0, 10))
self.filter_combobox.bind("<<ComboboxSelected>>", self.dialog.on_filter_change)
self.filter_combobox.set(self.dialog.filetypes[0][0])
else: # Open mode
top_row = ttk.Frame(action_buttons_frame, style="AccentBottom.TFrame")
top_row.pack(fill="x", expand=True)
else: # Open mode
open_button = ttk.Button(action_buttons_frame, text="Öffnen", command=self.dialog.on_open)
cancel_button = ttk.Button(action_buttons_frame, text="Abbrechen", command=self.dialog.on_cancel)
self.filter_combobox = ttk.Combobox(action_buttons_frame, values=[ft[0] for ft in self.dialog.filetypes], state="readonly")
open_button = ttk.Button(top_row, text="Öffnen", command=self.dialog.on_open)
open_button.pack(side="left", padx=(10, 5))
if button_box_pos == 'left':
open_button.grid(row=0, column=0, sticky="w", padx=(10,5))
cancel_button.grid(row=1, column=0, sticky="w", padx=(10,5), pady=(5,0))
self.filter_combobox.grid(row=1, column=1, sticky="w", padx=(0,10), pady=(5,0))
else: # right
open_button.grid(row=0, column=1, sticky="e", padx=(10,5))
cancel_button.grid(row=1, column=1, sticky="e", padx=(0,10), pady=(5,0))
self.filter_combobox.grid(row=1, column=0, sticky="e", padx=(10,5), pady=(5,0))
bottom_row = ttk.Frame(action_buttons_frame, style="AccentBottom.TFrame")
bottom_row.pack(fill="x", expand=True, pady=(5,0))
cancel_button = ttk.Button(bottom_row, text="Abbrechen", command=self.dialog.on_cancel)
cancel_button.pack(side="left", padx=(10, 5))
self.filter_combobox = ttk.Combobox(bottom_row, values=[
ft[0] for ft in self.dialog.filetypes], state="readonly")
self.filter_combobox.pack(side="left", padx=(0, 10))
self.filter_combobox.bind("<<ComboboxSelected>>", self.dialog.on_filter_change)
self.filter_combobox.set(self.dialog.filetypes[0][0])

View File

@@ -33,7 +33,7 @@ class GlotzMol(tk.Tk):
dialog = CustomFileDialog(self,
initial_dir=os.path.expanduser("~"),
filetypes=[("All Files", "*.*")
], dialog_mode="save")
])
# This is the crucial part: wait for the dialog to be closed
self.wait_window(dialog)