diff --git a/pbp_app_config.py b/pbp_app_config.py index 5afe3cc..adecd2e 100644 --- a/pbp_app_config.py +++ b/pbp_app_config.py @@ -86,6 +86,7 @@ class AppConfig: **/root/.gvfs /snap/* /home/*/.gvfs +/home/*/.cache/* /var/cache/pacman/pkg/* /var/cache/apt/archives/* /var/cache/yum/* diff --git a/pyimage_ui/system_backup_content_frame.py b/pyimage_ui/system_backup_content_frame.py index 28ed095..4f74c6f 100644 --- a/pyimage_ui/system_backup_content_frame.py +++ b/pyimage_ui/system_backup_content_frame.py @@ -122,9 +122,25 @@ class SystemBackupContentFrame(ttk.Frame): print(f"Restoring {backup_name}...") def _delete_selected(self): - # Placeholder for delete logic selected_item = self.content_tree.focus() if not selected_item: return - backup_name = self.content_tree.item(selected_item)["values"][0] - print(f"Deleting {backup_name}...") + + item_values = self.content_tree.item(selected_item)["values"] + folder_name = item_values[4] # Assuming folder_name is the 5th value + + # Construct the full path to the backup folder + pybackup_path = os.path.join(self.backup_path, "pybackup") + folder_to_delete = os.path.join(pybackup_path, folder_name) + + # Ask for confirmation + from shared_libs.message import MessageDialog + dialog = MessageDialog(master=self, message_type="warning", + title=Msg.STR["confirm_delete_title"], + text=Msg.STR["confirm_delete_text"].format(folder_name=folder_name), + buttons=["ok_cancel"]) + if dialog.get_result() != "ok": + return + + self.backup_manager.delete_privileged_path(folder_to_delete) + self._load_backup_content() diff --git a/pyimage_ui/user_backup_content_frame.py b/pyimage_ui/user_backup_content_frame.py index 7050a60..f62081e 100644 --- a/pyimage_ui/user_backup_content_frame.py +++ b/pyimage_ui/user_backup_content_frame.py @@ -109,9 +109,34 @@ class UserBackupContentFrame(ttk.Frame): print(f"Restoring {backup_name}...") def _delete_selected(self): - # Placeholder for delete logic selected_item = self.content_tree.focus() if not selected_item: return - backup_name = self.content_tree.item(selected_item)["values"][0] - print(f"Deleting {backup_name}...") + + item_values = self.content_tree.item(selected_item)["values"] + folder_name = item_values[3] # Assuming folder_name is the 4th value + + # Construct the full path to the backup folder + folder_to_delete = os.path.join(self.backup_path, folder_name) + info_file_to_delete = os.path.join(self.backup_path, f"{folder_name}.txt") + + # Ask for confirmation + from shared_libs.message import MessageDialog + dialog = MessageDialog(master=self, message_type="warning", + title=Msg.STR["confirm_delete_title"], + text=Msg.STR["confirm_delete_text"].format(folder_name=folder_name), + buttons=["ok_cancel"]) + if dialog.get_result() != "ok": + return + + try: + import shutil + if os.path.isdir(folder_to_delete): + shutil.rmtree(folder_to_delete) + if os.path.exists(info_file_to_delete): + os.remove(info_file_to_delete) + except Exception as e: + MessageDialog(master=self, message_type="error", + title=Msg.STR["error"], text=str(e)) + + self._load_backup_content()