From d124c245332188b983e79c04a3e647f12378e51b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A9sir=C3=A9=20Werner=20Menrath?= Date: Sun, 10 Aug 2025 12:25:10 +0200 Subject: [PATCH] fix fstrings and syntax error --- __pycache__/animated_icon.cpython-312.pyc | Bin 31543 -> 50223 bytes __pycache__/cfd_app_config.cpython-312.pyc | Bin 12957 -> 20858 bytes .../cfd_file_operations.cpython-312.pyc | Bin 21785 -> 22795 bytes .../cfd_navigation_manager.cpython-312.pyc | Bin 9482 -> 9792 bytes .../cfd_search_manager.cpython-312.pyc | Bin 23143 -> 23933 bytes .../cfd_settings_dialog.cpython-312.pyc | Bin 13162 -> 13357 bytes __pycache__/cfd_ui_setup.cpython-312.pyc | Bin 39099 -> 39882 bytes __pycache__/cfd_view_manager.cpython-312.pyc | Bin 41734 -> 43322 bytes .../custom_file_dialog.cpython-312.pyc | Bin 30704 -> 35563 bytes custom_file_dialog.py | 175 ++---------------- mainwindow.py | 2 +- 11 files changed, 17 insertions(+), 160 deletions(-) diff --git a/__pycache__/animated_icon.cpython-312.pyc b/__pycache__/animated_icon.cpython-312.pyc index b13cb7f147e70f244b0a40e338229a1c9283d115..c7f4c19a86e3c46254792063d956c960110d01d3 100644 GIT binary patch delta 8532 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 delta 2384 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 delta 3088 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 DF&@8Z diff --git a/__pycache__/cfd_search_manager.cpython-312.pyc b/__pycache__/cfd_search_manager.cpython-312.pyc index 4a7e001d705af7b56b1c77a1a5cd16e1bf9ffa96..ac66a51736f4ca78c8b79c4591290160ef2ec3f3 100644 GIT binary patch delta 3565 zcmaJ^YitzP6`s2@v!3-nyxO`lAAgHdqNU(ULZbQpr+Kn}j6AX-#v5AJ&$|unRD)bc7^=sP2#%dbmj~2OdUKsa%=r*m!F(HUDI(qX$#wkpbDy- z$WPkCc1~Lpj-)f}b^UMp~!1NvygN1BAc}g*?RMW?3irux8uxsQO#KR6* zh66rWNX8CuLddy<>}*~iv9T}m{LZpR6un9_sb=lUo5YtTwv=cpm2gcq z?pPDRMbjk+k0=7eaA!u+N7$^Vj721ev_DE4+1HNWf}t7b^Oj9ZVam9&xh)fmj%r(a zf-cJAF-@br#}L*aG$5=+Scy=>e&`ADqcEhAxT-zsnZ4s_CR^FRJ+FeNmkTb4WGU+{ z3OvrOSEK$i1io%`VTi+;PMeUo1;KQIlntR4p_E-J+GREO^~c4fRxdJxY-w>7>B_bi z`v^ZC+70a3{D%OfAfN>i{^!)}Xvvv;hw45_P6|U7)jsLSx~qR@A)f4w6EtCg$&*AW1|A?tBHp&8a>G^1-YDAPRPF4|2z2}8oXU! z5)E6(uh`2CVwwnHO;l0Y@ey8%@S_!cwA2`>< z;(o7kZHa_fS&EzuWq|MdS``>RsCWWr&DJ&me&jDkY-~kSAD7trOQesh3J{wm#GUKc zg5ZYJjacs9S0vu3YYpu4h&S!>KEH6&BLnMZk%+XvwItji#xMaE9_%YT%SV;$vl}+% zxzt*{cR_ey4{LQ576sMNkaW_+lfQ1#@tpHVo&(=QNm>1bbD?=a!})H_RiNp5pt*X& z^h}!clRbaD)V#*x0tGyb-VgZOM8> ziw}?JK@sxH*tWX#SzwP_mNgp65Ok_kG^rT`@|gx$Rcm46Yalh`BXLz9G4e7xRP@*g z#gvKH!_LuHfZ}QLxe8P}y~NbkOARfkBx)&@4gm$80?3f#$>=bAO^2h2F)hREy7@I^ z*KR*0R^S}^4#0gk(^l8sgybLs20)(&fP~efI{%mq2iBKlRF7oh z;~ECb39~*fsxPd!eNElBmE?6`52_OO8~Q%N2ME(_x_t@xkiFMlR#X6t3?@ln{^1qr ze*4qpZgy|SRf{!%8teitzLyX7O`NiNI?(0uTJ#?tRtGOob z@%3HLkV012bB4Er@q*3U$83w%PV`gXTr{_&@5V*+@be?Y)CX~=DO8!)8(@sw(a zkb1!avuv$GX+ET)78#C)j*96#uN^KU;pi=JAh}EjcOQR(4^}O9STzasrT7mVuS6eH#mU zt1Z{7-Mwq&>uU%g{e%%)Y4+!R|04DP#KAuc`Z_zm_mGu$|4q!_UtYpjjH}_-qlZ1G zyMF^|W|RFZpT?dOR2F4(6IwHK5ve~T+(vj20D2}`Gt=T>{_;IVUl}U^-#OSWCJ$^P zRjhU3#cJ+FG84j%26&I7a2*%ubMOxL!CM2Xj~Ai{uf66q=)XvnBZLsvBk;(ANC~Li zg%q9%#R~xa2LfE|g(-pZ=FfYq6S)X{C$0lADcqEvoRjk8io0G>?k4AsUbg&NIsTe5 zTho#gkTcUa$H%+*4!Qc=z{UO3BU2-@E7s=(c%NA_heNL1DR+=_^QVRM<>hk%j(00< z@}@_$;2pJKxLfRzL+3g#?wKB#8kk+aE+@eI3@Cbz%c0!z9}s!<<)?B2j&DE^IL>W@ zE+n^-T$kvT2g$|E^u*Kzq#4jN(m(lVE*BRW^wB{WXeYvH1Z-GFo_;W%f;)=2wYXb` zRX;WwPYs(p4kyQE_LUsR!eTgLLuzC!9?8JZ9UYCt(y5{NuzAPHM~OGa zf5k+wIlvVGf5%XM$b8@7r_`dexUXzZrq!{8wuP2}0RDswo@-7dgxnHrx7g!h*NQtr g=&!=6+d}Y;Q1=(nb6aZu%DP`7gXBwr4}7uz2Q1h|TmS$7 delta 2977 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 delta 1148 zcma)4PizcP7=PdV+nH^5TUuJ%t!<0c(2BMWNGoV?Xe`nqhFGI-wq2c_skei=*h(ry zB+|T42@*~s;$kClad6d>V@K-Gu}(sWICNS!DDoq)dLggu9sZ@2}vo=iV=WUj=PrD9_^V5kfu$<2%c0r2I zC8&l4tey8a4MP`y)YO+McPLrk3ruOD97CT8QS>se2tn7a%?@LcU#Yy=z2Znw zm<159v(j&13L%CG9Nmv8GN<%^QwAip_lu>}sSV#ZRH+AmA$z&hjE9k6EawFdV<#{u z^VXjF&G@;>e~oFv3S+jH%iDoNGr3{kE8i!K795Xu2h1*vvJrl%r>Pf@eoQLdlfwR~ z_lkdb&UJRM+rmYqh5Z6P%K-3})X$TK_oVL)>6<6*{9VuXIvmtJZ7X>Z*(J%Z00jO5 DOZxaO diff --git a/__pycache__/cfd_ui_setup.cpython-312.pyc b/__pycache__/cfd_ui_setup.cpython-312.pyc index 31a38bc054866055a97374f9280d8c7521b106ad..8cca3578ae9ee645fbf2f2574ead0891d01ccec3 100644 GIT binary patch delta 5682 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 delta 5597 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 AwEzGB diff --git a/__pycache__/custom_file_dialog.cpython-312.pyc b/__pycache__/custom_file_dialog.cpython-312.pyc index 4efc26f9662f891dc24ee18785b9912ea04c7760..01f610a0c4117abac9414215f3fa25f11e4afa55 100644 GIT binary patch delta 11436 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 JIn1+}{u5e#VbcHr delta 6524 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 KzvZZ`j{JYukgW3n diff --git a/custom_file_dialog.py b/custom_file_dialog.py index 20cb95b..c49305e 100644 --- a/custom_file_dialog.py +++ b/custom_file_dialog.py @@ -96,7 +96,7 @@ class CustomFileDialog(tk.Toplevel): self.view_manager._update_view_mode_buttons() - def initial_load() -> None: + def initial_load() -> None: """Performs the initial loading and UI setup.""" self.update_idletasks() self.last_width = self.widget_manager.file_list_frame.winfo_width() @@ -113,7 +113,7 @@ class CustomFileDialog(tk.Toplevel): if self.dialog_mode == "save": self.bind("", self.file_op_manager.delete_selected_item) - def load_settings(self) -> None: + def load_settings(self) -> None: """Loads settings from the configuration file.""" self.settings = CfdConfigManager.load() size_preset = self.settings.get("window_size_preset", "1050x850") @@ -134,7 +134,7 @@ class CustomFileDialog(tk.Toplevel): w, h = map(int, preset.split('x')) return max(650, w - 400), max(450, h - 400) - def reload_config_and_rebuild_ui(self) -> None: + def reload_config_and_rebuild_ui(self) -> None: """Reloads the configuration and rebuilds the entire UI.""" self.load_settings() @@ -169,11 +169,11 @@ class CustomFileDialog(tk.Toplevel): else: self.navigation_manager.navigate_to(self.current_dir) - def open_settings_dialog(self) -> None: + def open_settings_dialog(self) -> None: """Opens the settings dialog.""" SettingsDialog(self, dialog_mode=self.dialog_mode) - def update_animation_settings(self) -> None: + def update_animation_settings(self) -> None: """Updates the search animation icon based on current settings.""" use_pillow = self.settings.get('use_pillow_animation', False) anim_type = self.settings.get('animation_type', 'double') @@ -244,7 +244,7 @@ class CustomFileDialog(tk.Toplevel): if self.resize_job: self.after_cancel(self.resize_job) - def repopulate_icons() -> None: + def repopulate_icons() -> None: """Repopulates the file list icons.""" self.update_idletasks() self.view_manager.populate_files() @@ -377,7 +377,7 @@ class CustomFileDialog(tk.Toplevel): total, used, free = shutil.disk_usage(self.current_dir) free_str = self._format_size(free) self.widget_manager.storage_label.config( - text=f"{LocaleStrings.CFD["free_space"]}: {free_str}") + text=f"{LocaleStrings.CFD['free_space']}: {free_str}") self.widget_manager.storage_bar['value'] = (used / total) * 100 status_text = "" @@ -386,19 +386,19 @@ class CustomFileDialog(tk.Toplevel): content_count = self.view_manager._get_folder_content_count( selected_path) if content_count is not None: - status_text = f"'{os.path.basename(selected_path)}' ({content_count} {LocaleStrings.CFD["entries"]})" + status_text = f"'{os.path.basename(selected_path)}' ({content_count} {LocaleStrings.CFD['entries']})" else: status_text = f"'{os.path.basename(selected_path)}'" else: size = os.path.getsize(selected_path) size_str = self._format_size(size) - status_text = f"'{os.path.basename(selected_path)}' {LocaleStrings.VIEW["size"]}: {size_str}" + status_text = f"'{os.path.basename(selected_path)}' {LocaleStrings.VIEW['size']}: {size_str}" self.widget_manager.search_status_label.config(text=status_text) except FileNotFoundError: self.widget_manager.search_status_label.config( text=LocaleStrings.CFD["directory_not_found"]) self.widget_manager.storage_label.config( - text=f"{LocaleStrings.CFD["free_space"]}: {LocaleStrings.CFD["unknown"]}") + text=f"{LocaleStrings.CFD['free_space']}: {LocaleStrings.CFD['unknown']}") self.widget_manager.storage_bar['value'] = 0 def on_open(self) -> None: @@ -520,9 +520,9 @@ class CustomFileDialog(tk.Toplevel): break for block_device in data.get('blockdevices', []): - if block_device.get('mountpoint') and - block_device.get('type') not in ['loop', 'rom'] and - block_device.get('mountpoint') != '/': + if (block_device.get('mountpoint') and + block_device.get('type') not in ['loop', 'rom'] and + block_device.get('mountpoint') != '/'): if block_device.get('name').startswith(root_disk_name) and not block_device.get('rm', False): pass @@ -537,9 +537,9 @@ class CustomFileDialog(tk.Toplevel): if 'children' in block_device: for child_device in block_device['children']: - if child_device.get('mountpoint') and - child_device.get('type') not in ['loop', 'rom'] and - child_device.get('mountpoint') != '/': + if (child_device.get('mountpoint') and + child_device.get('type') not in ['loop', 'rom'] and + child_device.get('mountpoint') != '/'): if block_device.get('name') == root_disk_name and not child_device.get('rm', False): pass @@ -586,146 +586,3 @@ class CustomFileDialog(tk.Toplevel): """ if hasattr(self, 'tooltip_window') and self.tooltip_window.winfo_exists(): self.tooltip_window.destroy() -"'{os.path.basename(selected_path)}' ({content_count} {LocaleStrings.CFD["entries"]})" - else: - status_text = f"'{os.path.basename(selected_path)}'" - else: - size = os.path.getsize(selected_path) - size_str = self._format_size(size) - status_text = f"'{os.path.basename(selected_path)}' {LocaleStrings.VIEW["size"]}: {size_str}" - self.widget_manager.search_status_label.config(text=status_text) - except FileNotFoundError: - self.widget_manager.search_status_label.config( - text=LocaleStrings.CFD["directory_not_found"]) - self.widget_manager.storage_label.config( - text=f"{LocaleStrings.CFD["free_space"]}: {LocaleStrings.CFD["unknown"]}") - self.widget_manager.storage_bar['value'] = 0 - - def on_open(self): - if self.selected_file and os.path.isfile(self.selected_file): - self.destroy() - - def on_save(self): - file_name = self.widget_manager.filename_entry.get() - if file_name: - self.selected_file = os.path.join(self.current_dir, file_name) - self.destroy() - - def on_cancel(self): - self.selected_file = None - self.destroy() - - def get_selected_file(self): - return self.selected_file - - def update_action_buttons_state(self): - is_writable = os.access(self.current_dir, os.W_OK) - state = tk.NORMAL if is_writable and self.dialog_mode != "open" else tk.DISABLED - self.widget_manager.new_folder_button.config(state=state) - self.widget_manager.new_file_button.config(state=state) - - def _matches_filetype(self, filename): - if self.current_filter_pattern == "*.*": - return True - - patterns = self.current_filter_pattern.lower().split() - fn_lower = filename.lower() - - for p in patterns: - if p.startswith('*.'): - if fn_lower.endswith(p[1:]): - return True - elif p.startswith('.'): - if fn_lower.endswith(p): - return True - else: - if fn_lower == p: - return True - return False - - def _format_size(self, size_bytes): - if size_bytes is None: - return "" - if size_bytes < 1024: - return f"{size_bytes} B" - if size_bytes < 1024**2: - return f"{size_bytes/1024:.1f} KB" - if size_bytes < 1024**3: - return f"{size_bytes/1024**2:.1f} MB" - return f"{size_bytes/1024**3:.1f} GB" - - def shorten_text(self, text, max_len): - return text if len(text) <= max_len else text[:max_len-3] + "..." - - def _get_mounted_devices(self): - devices = [] - root_disk_name = None - try: - result = subprocess.run(['lsblk', '-J', '-o', 'NAME,MOUNTPOINT,FSTYPE,SIZE,RO,RM,TYPE,LABEL,PKNAME'], - capture_output=True, text=True, check=True) - data = json.loads(result.stdout) - - for block_device in data.get('blockdevices', []): - if 'children' in block_device: - for child_device in block_device['children']: - if child_device.get('mountpoint') == '/': - root_disk_name = block_device.get('name') - break - if root_disk_name: - break - - for block_device in data.get('blockdevices', []): - if block_device.get('mountpoint') and \ - block_device.get('type') not in ['loop', 'rom'] and \ - block_device.get('mountpoint') != '/': - - if block_device.get('name').startswith(root_disk_name) and not block_device.get('rm', False): - pass - else: - name = block_device.get('name') - mountpoint = block_device.get('mountpoint') - label = block_device.get('label') - removable = block_device.get('rm', False) - - display_name = label if label else name - devices.append((display_name, mountpoint, removable)) - - if 'children' in block_device: - for child_device in block_device['children']: - if child_device.get('mountpoint') and \ - child_device.get('type') not in ['loop', 'rom'] and \ - child_device.get('mountpoint') != '/': - - if block_device.get('name') == root_disk_name and not child_device.get('rm', False): - pass - else: - name = child_device.get('name') - mountpoint = child_device.get('mountpoint') - label = child_device.get('label') - removable = child_device.get('rm', False) - - display_name = label if label else name - devices.append( - (display_name, mountpoint, removable)) - - except Exception as e: - print(f"Error getting mounted devices: {e}") - return devices - - def _show_tooltip(self, event): - if hasattr(self, 'tooltip_window') and self.tooltip_window.winfo_exists(): - return - - tooltip_text = LocaleStrings.UI["start_search"] if not self.widget_manager.search_animation.running else LocaleStrings.UI["cancel_search"] - - x = self.widget_manager.search_animation.winfo_rootx() + 25 - y = self.widget_manager.search_animation.winfo_rooty() + 25 - self.tooltip_window = tk.Toplevel(self) - self.tooltip_window.wm_overrideredirect(True) - self.tooltip_window.wm_geometry(f"+{x}+{y}") - label = tk.Label(self.tooltip_window, text=tooltip_text, relief="solid", borderwidth=1) - label.pack() - - def _hide_tooltip(self, event): - if hasattr(self, 'tooltip_window') and self.tooltip_window.winfo_exists(): - self.tooltip_window.destroy() \ No newline at end of file diff --git a/mainwindow.py b/mainwindow.py index e764fb1..54b0a35 100755 --- a/mainwindow.py +++ b/mainwindow.py @@ -34,7 +34,7 @@ class GlotzMol(tk.Tk): initial_dir=os.path.expanduser("~"), filetypes=[("All Files", "*.*"), ("Wireguard config Files", "*.conf") - ], dialog_mode="save") + ]) # This is the crucial part: wait for the dialog to be closed self.wait_window(dialog)