From 0b7a85424ab94c0f5501a7154f59a07ac28d1faf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A9sir=C3=A9=20Werner=20Menrath?= Date: Wed, 30 Jul 2025 01:55:45 +0200 Subject: [PATCH] commit 26 --- .../custom_file_dialog.cpython-312.pyc | Bin 56063 -> 53406 bytes custom_file_dialog.py | 73 +++++++----------- mainwindow.py | 2 +- 3 files changed, 27 insertions(+), 48 deletions(-) diff --git a/__pycache__/custom_file_dialog.cpython-312.pyc b/__pycache__/custom_file_dialog.cpython-312.pyc index 6c7ce20b839056a20f16855cab314ed5cf89a870..bbec16df7c1533d7f73d8fbb8c55a23d1e9da4e5 100644 GIT binary patch delta 6588 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 a=EF~8+)-&}!}g0Ows&p+N}{$}ll&j+nXKdh delta 8136 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', lambda e: sidebar_canvas.configure(scrollregion = sidebar_canvas.bbox("all"))) - - # Create a frame inside the canvas to hold all sidebar content - self.sidebar_inner_frame = ttk.Frame(sidebar_canvas, style="Sidebar.TFrame") - sidebar_canvas.create_window((0, 0), window=self.sidebar_inner_frame, anchor="nw") - - # Bind mouse wheel to the inner frame - def _on_sidebar_mouse_wheel(event): - sidebar_canvas.yview_scroll(-1*(event.delta//120), "units") - self.sidebar_inner_frame.bind("", _on_sidebar_mouse_wheel) - self.sidebar_inner_frame.bind("", lambda e: _on_sidebar_mouse_wheel(e)) # For Linux - self.sidebar_inner_frame.bind("", lambda e: _on_sidebar_mouse_wheel(e)) # For Linux - # Propagate mouse wheel events from children to the inner frame - for child in self.sidebar_inner_frame.winfo_children(): - child.bind("", _on_sidebar_mouse_wheel) - child.bind("", lambda e: _on_sidebar_mouse_wheel(e)) - child.bind("", lambda e: _on_sidebar_mouse_wheel(e)) + sidebar_frame.grid_rowconfigure(2, weight=1) # Only the devices frame row expands sidebar_buttons_frame = ttk.Frame( - self.sidebar_inner_frame, style="Sidebar.TFrame", padding=(0, 15, 0, 0)) - sidebar_buttons_frame.pack(fill="x", expand=False) + sidebar_frame, style="Sidebar.TFrame", padding=(0, 15, 0, 0)) + sidebar_buttons_frame.grid( + row=0, column=0, sticky="nsew") sidebar_buttons_config = [ {'name': 'Computer', 'icon': self.icons['computer_small'], 'path': '/'}, @@ -362,14 +334,13 @@ class CustomFileDialog(tk.Toplevel): compound="left", command=lambda p=config['path']: self.navigate_to(p), style="Dark.TButton.Borderless") btn.pack(fill="x", pady=1) - ttk.Separator(self.sidebar_inner_frame, orient='horizontal').pack( - fill='x', pady=10, padx=20) + ttk.Separator(sidebar_frame, orient='horizontal').grid( + row=1, column=0, sticky='ew', pady=10, padx=20) # Mounted devices mounted_devices_frame = ttk.Frame( - self.sidebar_inner_frame, style="Sidebar.TFrame") - mounted_devices_frame.pack(fill="x", expand=False, padx=10) - + sidebar_frame, style="Sidebar.TFrame") + mounted_devices_frame.grid(row=2, column=0, sticky="nsew", padx=10) ttk.Label(mounted_devices_frame, text="Geräte:", background=self.sidebar_color, foreground=self.color_foreground).pack(fill="x", padx=10, pady=(5, 0)) @@ -379,12 +350,11 @@ class CustomFileDialog(tk.Toplevel): compound="left", command=lambda p=mount_point: self.navigate_to(p), style="Dark.TButton.Borderless") btn.pack(fill="x", pady=1) - # New separator before storage_frame - ttk.Separator(self.sidebar_inner_frame, orient='horizontal').pack( - fill='x', pady=10, padx=20) + ttk.Separator(sidebar_frame, orient='horizontal').grid( + row=3, column=0, sticky='ew', pady=10, padx=20) - storage_frame = ttk.Frame(self.sidebar_inner_frame, style="Sidebar.TFrame") - storage_frame.pack(fill="x", expand=False, padx=10) + storage_frame = ttk.Frame(sidebar_frame, style="Sidebar.TFrame") + storage_frame.grid(row=4, column=0, sticky="ew", padx=10) self.storage_label = ttk.Label( storage_frame, text="Freier Speicher:", background=self.freespace_background) self.storage_label.pack(fill="x", padx=10) @@ -446,7 +416,16 @@ class CustomFileDialog(tk.Toplevel): self.resize_job = self.after(200, self.populate_files) self.last_width = new_width + def _unbind_mouse_wheel_events(self): + # Unbind all mouse wheel events from the root window + self.unbind_all("") + self.unbind_all("") + self.unbind_all("") + def populate_files(self): + # Unbind previous global mouse wheel events + self._unbind_mouse_wheel_events() + for widget in self.file_list_frame.winfo_children(): widget.destroy() self.path_entry.delete(0, tk.END) @@ -489,12 +468,12 @@ class CustomFileDialog(tk.Toplevel): scrollregion=canvas.bbox("all"))) def _on_mouse_wheel(event): - delta = -1*(event.delta//120) # Normalize delta for cross-platform consistency + delta = -1 if event.num == 4 else 1 canvas.yview_scroll(delta, "units") - container_frame.bind("", _on_mouse_wheel) - container_frame.bind("", lambda e: _on_mouse_wheel(e)) # For Linux - container_frame.bind("", lambda e: _on_mouse_wheel(e)) # For Linux + canvas.bind_all("", _on_mouse_wheel) + canvas.bind_all("", _on_mouse_wheel) + canvas.bind_all("", _on_mouse_wheel) items, error, warning = self._get_sorted_items() if warning: diff --git a/mainwindow.py b/mainwindow.py index 1bd756d..0610908 100644 --- a/mainwindow.py +++ b/mainwindow.py @@ -58,7 +58,7 @@ if __name__ == "__main__": style = ttk.Style(root) root.tk.call('source', f"{theme_path}/water.tcl") try: - root.tk.call('set_theme', 'dark') + root.tk.call('set_theme', 'light') except tk.TclError: pass root.mainloop()