From d34128b701e1ec51d6910751bdbc7165ee892e94 Mon Sep 17 00:00:00 2001 From: DYefremov Date: Fri, 19 Jan 2024 18:00:41 +0300 Subject: [PATCH] add short service info to picon explorer --- app/ui/picons.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/app/ui/picons.py b/app/ui/picons.py index e1b21081..74a2f462 100644 --- a/app/ui/picons.py +++ b/app/ui/picons.py @@ -30,6 +30,7 @@ import os import re import shutil from enum import Enum +from html import escape from pathlib import Path from urllib.parse import urlparse, unquote @@ -193,6 +194,8 @@ class PiconManager(Gtk.Box): column.set_cell_data_func(builder.get_object("picons_dest_renderer"), self.picon_data_func) column = builder.get_object("src_picon_column") column.set_cell_data_func(builder.get_object("picons_src_renderer"), self.picon_data_func) + column = builder.get_object("dest_title_column") + column.set_cell_data_func(builder.get_object("title_dest_renderer"), self.title_data_func) # Settings self._settings = settings self._s_type = settings.setting_type @@ -297,6 +300,17 @@ class PiconManager(Gtk.Box): def picon_data_func(self, column, renderer, model, itr, data): renderer.set_property("pixbuf", get_pixbuf_at_scale(model.get_value(itr, 2), 72, 48, True)) + def title_data_func(self, column, renderer, model, itr, data): + srv = self._services.get(model[itr][1], None) + if srv: + renderer.set_property("markup", self.get_picon_info_markup(srv)) + + def get_picon_info_markup(self, srv): + ext_info = "" if srv.service_type == "IPTV" else f" {srv.pos} {srv.freq}" + return (f'{escape(srv.picon_id)}\n\n' + f'{translate("Service")}: {escape(srv.service)}\n' + f'{srv.service_type}{ext_info}') + def update_picons_from_file(self, view, uri): """ Adds picons in the view on dragging from file system. """ path = Path(urlparse(unquote(uri)).path.strip()) @@ -1025,12 +1039,7 @@ class PiconManager(Gtk.Box): show_dialog(dialog_type, self._app_window, message) def get_picons_format(self): - picon_format = SettingsType.ENIGMA_2 - - if self._neutrino_mp_radio_button.get_active(): - picon_format = SettingsType.NEUTRINO_MP - - return picon_format + return SettingsType.NEUTRINO_MP if self._neutrino_mp_radio_button.get_active() else SettingsType.ENIGMA_2 if __name__ == "__main__":