From ee462b24f73625f7ba375e3b563e8024540b5cb1 Mon Sep 17 00:00:00 2001 From: DYefremov Date: Tue, 8 Sep 2020 12:21:10 +0300 Subject: [PATCH] renaming bouquet fix [losing custom names](#33) --- app/ui/main_app_window.py | 11 ++++++++--- app/ui/main_helper.py | 3 ++- app/ui/service_details_dialog.py | 30 +++++++++++++++++------------- 3 files changed, 27 insertions(+), 17 deletions(-) diff --git a/app/ui/main_app_window.py b/app/ui/main_app_window.py index cf32d849..f7beea78 100644 --- a/app/ui/main_app_window.py +++ b/app/ui/main_app_window.py @@ -2556,7 +2556,7 @@ class Application(Gtk.Application): dialog.show() def on_bouquets_edit(self, view): - """ Rename bouquets """ + """ Renaming bouquets. """ if not self._bq_selected: self.show_error_dialog("This item is not allowed to edit!") return @@ -2576,10 +2576,15 @@ class Application(Gtk.Application): return model.set_value(itr, 0, response) - self._bouquets[bq] = self._bouquets.pop("{}:{}".format(bq_name, bq_type)) + old_bq_name = "{}:{}".format(bq_name, bq_type) + self._bouquets[bq] = self._bouquets.pop(old_bq_name) self._current_bq_name = response self._bq_name_label.set_text(self._current_bq_name) - self._bq_selected = "{}:{}".format(response, bq_type) + self._bq_selected = bq + # services with extra names for the bouquet + ext_bq = self._extra_bouquets.get(old_bq_name, None) + if ext_bq: + self._extra_bouquets[bq] = ext_bq def on_rename(self, view): name, model = get_model_data(view) diff --git a/app/ui/main_helper.py b/app/ui/main_helper.py index 25a299d1..e3c31c9a 100644 --- a/app/ui/main_helper.py +++ b/app/ui/main_helper.py @@ -161,7 +161,8 @@ def rename(view, parent_window, target, fav_view=None, service_view=None, servic return srv_name = response - model.set_value(itr, Column.FAV_SERVICE, response) + if not model.get_value(itr, Column.FAV_BACKGROUND): + model.set_value(itr, Column.FAV_SERVICE, response) if service_view is not None: for row in get_base_model(service_view.get_model()): diff --git a/app/ui/service_details_dialog.py b/app/ui/service_details_dialog.py index 59ebaedb..76c92e6d 100644 --- a/app/ui/service_details_dialog.py +++ b/app/ui/service_details_dialog.py @@ -1,15 +1,16 @@ -import re import os +import re from app.commons import run_idle from app.eparser import Service -from app.eparser.ecommons import MODULATION, Inversion, ROLL_OFF, Pilot, Flag, Pids, POLARIZATION, \ - get_key_by_value, get_value_by_name, FEC_DEFAULT, PLS_MODE, SERVICE_TYPE, T_MODULATION, C_MODULATION, TrType, \ - SystemCable, T_SYSTEM, BANDWIDTH, TRANSMISSION_MODE, GUARD_INTERVAL, HIERARCHY, T_FEC +from app.eparser.ecommons import (MODULATION, Inversion, ROLL_OFF, Pilot, Flag, Pids, POLARIZATION, get_key_by_value, + get_value_by_name, FEC_DEFAULT, PLS_MODE, SERVICE_TYPE, T_MODULATION, C_MODULATION, + TrType, SystemCable, T_SYSTEM, BANDWIDTH, TRANSMISSION_MODE, GUARD_INTERVAL, T_FEC, + HIERARCHY) from app.settings import SettingsType -from .uicommons import Gtk, Gdk, UI_RESOURCES_PATH, HIDE_ICON, TEXT_DOMAIN, CODED_ICON, Column, IS_GNOME_SESSION from .dialogs import show_dialog, DialogType, Action, get_dialogs_string from .main_helper import get_base_model +from .uicommons import Gtk, Gdk, UI_RESOURCES_PATH, HIDE_ICON, TEXT_DOMAIN, CODED_ICON, Column, IS_GNOME_SESSION _UI_PATH = UI_RESOURCES_PATH + "service_details_dialog.glade" @@ -438,14 +439,17 @@ class ServiceDetailsDialog: def update_fav_view(self, old_service, new_service): model = self._fav_view.get_model() for row in filter(lambda r: old_service.fav_id == r[7], model): - model.set(row.iter, {1: new_service.coded, - 2: new_service.service, - 3: new_service.locked, - 4: new_service.hide, - 5: new_service.service_type, - 6: new_service.pos, - 7: new_service.fav_id, - 8: new_service.picon}) + itr = row.iter + if not model.get_value(itr, Column.FAV_BACKGROUND): + model.set_value(itr, Column.FAV_SERVICE, new_service.service) + + model.set(itr, {Column.FAV_CODED: new_service.coded, + Column.FAV_LOCKED: new_service.locked, + Column.FAV_HIDE: new_service.hide, + Column.FAV_TYPE: new_service.service_type, + Column.FAV_POS: new_service.pos, + Column.FAV_ID: new_service.fav_id, + Column.FAV_PICON: new_service.picon}) def update_picon_name(self, old_name, new_name): if not os.path.isdir(self._picons_dir_path):