diff --git a/app/ui/main_app_window.py b/app/ui/main_app_window.py index 897860c5..44aa9014 100644 --- a/app/ui/main_app_window.py +++ b/app/ui/main_app_window.py @@ -2,6 +2,8 @@ import os from contextlib import suppress from functools import lru_cache +import shutil + from app.commons import run_idle, log from app.eparser import get_blacklist, write_blacklist, parse_m3u from app.eparser import get_services, get_bouquets, write_bouquets, write_services, Bouquets, Bouquet, Service @@ -554,9 +556,11 @@ class MainAppWindow: return path = self.__options.get(self.__profile).get("data_dir_path") - # deleting files in data dir(skipping dirs) :) - list(map(os.unlink, (os.path.join(path, f) for f in filter( - lambda f: f != "satellites.xml" and os.path.isfile(os.path.join(path, f)), os.listdir(path))))) + backup_path = path + "backup/" + os.makedirs(os.path.dirname(backup_path), exist_ok=True) + # backup files in data dir(skipping dirs and satellites.xml) + for file in filter(lambda f: f != "satellites.xml" and os.path.isfile(os.path.join(path, f)), os.listdir(path)): + shutil.move(os.path.join(path, file), backup_path + file) bouquets = [] services_model = self.__services_view.get_model() diff --git a/app/ui/main_helper.py b/app/ui/main_helper.py index e3e2df02..88b8f4ba 100644 --- a/app/ui/main_helper.py +++ b/app/ui/main_helper.py @@ -3,6 +3,7 @@ from enum import Enum import os +import shutil from gi.repository import GdkPixbuf from app.eparser import Service @@ -304,8 +305,6 @@ def assign_picon(view, transient, options): show_dialog(DialogType.ERROR, transient, text="No png file is selected!") return - print(response) - def remove_picon(target, srv_view, fav_view, picons, options): view = srv_view if target is ViewTarget.SERVICES else fav_view @@ -315,6 +314,7 @@ def remove_picon(target, srv_view, fav_view, picons, options): fav_ids = [] picon_ids = [] picon_pos = 8 # picon position is equal for services and fav + for path in paths: itr = model.get_iter(path) model.set_value(itr, picon_pos, None) @@ -333,8 +333,15 @@ def remove_picon(target, srv_view, fav_view, picons, options): fav_view.get_model().foreach(remove) if target is ViewTarget.SERVICES else get_base_model( srv_view.get_model()).foreach(remove) + pions_path = options.get("picons_dir_path") + backup_path = options.get("data_dir_path") + "backup/picons/" + os.makedirs(os.path.dirname(backup_path), exist_ok=True) + for p_id in picon_ids: picons[p_id] = None + src = pions_path + p_id + if os.path.isfile(src): + shutil.move(src, backup_path + p_id) def copy_picon_reference(target, view, services, clipboard, transient): diff --git a/app/ui/main_window.glade b/app/ui/main_window.glade index 86d1047d..d23b1b2c 100644 --- a/app/ui/main_window.glade +++ b/app/ui/main_window.glade @@ -1199,9 +1199,11 @@ + 200 True False True + Not implemented yet! edit-find-symbolic False False