From 3fc5a3fd68fce77ad6943898c51c98422d0bc3e6 Mon Sep 17 00:00:00 2001 From: DYefremov Date: Tue, 11 Dec 2018 14:10:44 +0300 Subject: [PATCH 1/3] Added services column data function prototypes --- app/ui/main_app_window.py | 51 +++++++++++++++++++++++++++++---------- 1 file changed, 38 insertions(+), 13 deletions(-) diff --git a/app/ui/main_app_window.py b/app/ui/main_app_window.py index b11c186a..0f3dc2ee 100644 --- a/app/ui/main_app_window.py +++ b/app/ui/main_app_window.py @@ -34,29 +34,20 @@ class Application(Gtk.Application): _TV_TYPES = ("TV", "TV (HD)", "TV (UHD)", "TV (H264)") _SERVICE_LIST_NAME = "services_list_store" - _FAV_LIST_NAME = "fav_list_store" - _BOUQUETS_LIST_NAME = "bouquets_tree_store" - # dynamically active elements depending on the selected view + # Dynamically active elements depending on the selected view _SERVICE_ELEMENTS = ("services_popup_menu",) - - _BOUQUET_ELEMENTS = ("edit_tool_button", "new_tool_button", "bouquets_new_popup_item", "bouquets_edit_popup_item", - "bouquets_cut_popup_item", "bouquets_copy_popup_item", "bouquets_paste_popup_item") - - _COMMONS_ELEMENTS = ("edit_tool_button", "bouquets_remove_popup_item", "fav_remove_popup_item") - _FAV_ELEMENTS = ("fav_cut_popup_item", "fav_paste_popup_item", "fav_locate_popup_item", "fav_iptv_popup_item", "fav_insert_marker_popup_item", "fav_edit_sub_menu_popup_item", "fav_edit_popup_item", "fav_picon_popup_item", "fav_copy_popup_item") - + _BOUQUET_ELEMENTS = ("edit_tool_button", "new_tool_button", "bouquets_new_popup_item", "bouquets_edit_popup_item", + "bouquets_cut_popup_item", "bouquets_copy_popup_item", "bouquets_paste_popup_item") + _COMMONS_ELEMENTS = ("edit_tool_button", "bouquets_remove_popup_item", "fav_remove_popup_item") _FAV_ENIGMA_ELEMENTS = ("fav_insert_marker_popup_item",) - _FAV_IPTV_ELEMENTS = ("fav_iptv_popup_item",) - _LOCK_HIDE_ELEMENTS = ("locked_tool_button", "hide_tool_button") - _DYNAMIC_ELEMENTS = ("services_popup_menu", "new_tool_button", "edit_tool_button", "locked_tool_button", "fav_cut_popup_item", "fav_paste_popup_item", "bouquets_new_popup_item", "hide_tool_button", "bouquets_remove_popup_item", "fav_remove_popup_item", "bouquets_edit_popup_item", @@ -64,6 +55,10 @@ class Application(Gtk.Application): "fav_locate_popup_item", "fav_picon_popup_item", "fav_iptv_popup_item", "fav_copy_popup_item", "bouquets_cut_popup_item", "bouquets_copy_popup_item", "bouquets_paste_popup_item") + # Colors + _NEW_COLOR = "#ff5733" # Color for new services in the main list + _EXTRA_COLOR = "#33a8ff" # Color for services with a extra name for the bouquet + def __init__(self, **kwargs): super().__init__(**kwargs) @@ -220,6 +215,11 @@ class Application(Gtk.Application): # Force ctrl press event for view. Multiple selections in lists only with Space key(as in file managers)!!! self._services_view.connect("key-press-event", self.force_ctrl) self._fav_view.connect("key-press-event", self.force_ctrl) + # Renders + self._service_render = builder.get_object("service_cellrenderertext") + self._fav_service_render = builder.get_object("fav_service_cellrenderertext") + self._service_column = builder.get_object("service_column") + self._fav_service_column = builder.get_object("fav_service_column") # Clipboard self._clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD) # Wait dialog @@ -242,6 +242,7 @@ class Application(Gtk.Application): def do_startup(self): Gtk.Application.do_startup(self) + self.init_service_renders() self.init_http_api() def do_activate(self): @@ -281,6 +282,29 @@ class Application(Gtk.Application): """ Function for force ctrl press event for view """ event.state |= Gdk.ModifierType.CONTROL_MASK + def init_service_renders(self): + profile = Profile(self._profile) + func = self.service_data_function if profile is Profile.ENIGMA_2 else None + fav_func = self.fav_service_data_function if profile is Profile.ENIGMA_2 else None + self._service_column.set_cell_data_func(self._service_render, func, None) + self._fav_service_column.set_cell_data_func(self._fav_service_render, fav_func, None) + + def service_data_function(self, column, render: Gtk.CellRendererText, model, itr, data): + """ Data function for the service column of main list """ + render.set_property("foreground-set", None) + cas_flags = model.get_value(itr, 0) + if cas_flags: + f_flags = list(filter(lambda x: x.startswith("f:"), cas_flags.split(","))) + if f_flags and Flag.is_new(int(f_flags[0][2:])): + render.set_property("foreground", self._NEW_COLOR) + + def fav_service_data_function(self, column, render, model, itr, data): + """ Data function for the service column of FAV list """ + fav_id = model.get_value(itr, 7) + bq = self._extra_bouquets.get(self.get_selected_bouquet(), None) + has_id = bq.get(fav_id, None) if bq else bq + render.set_property("foreground", self._EXTRA_COLOR) if has_id else render.set_property("foreground-set", None) + @run_idle def on_close_app(self, *args): self.quit() @@ -992,6 +1016,7 @@ class Application(Gtk.Application): self.update_services_counts() self.update_profile_label() + self.init_service_renders() self.init_http_api() def on_tree_view_key_press(self, view, event): From 919e1c66ba76a72da97da2408539b163ecc2816b Mon Sep 17 00:00:00 2001 From: DYefremov Date: Tue, 11 Dec 2018 15:25:47 +0300 Subject: [PATCH 2/3] Added spanish translation --- app/ui/lang/es/LC_MESSAGES/demon-editor.mo | Bin 0 -> 11074 bytes app/ui/lang/nl/LC_MESSAGES/demon-editor.mo | Bin 10917 -> 10913 bytes .../locale/es/LC_MESSAGES/demon-editor.mo | Bin 0 -> 11074 bytes .../locale/nl/LC_MESSAGES/demon-editor.mo | Bin 10917 -> 10913 bytes po/es/demon-editor.po | 571 ++++++++++++++++++ po/nl/demon-editor.mo | Bin 10917 -> 0 bytes po/nl/demon-editor.po | 19 +- po/ru/demon-editor.mo | Bin 13537 -> 0 bytes 8 files changed, 580 insertions(+), 10 deletions(-) create mode 100644 app/ui/lang/es/LC_MESSAGES/demon-editor.mo create mode 100644 deb/usr/share/locale/es/LC_MESSAGES/demon-editor.mo create mode 100644 po/es/demon-editor.po delete mode 100644 po/nl/demon-editor.mo delete mode 100644 po/ru/demon-editor.mo diff --git a/app/ui/lang/es/LC_MESSAGES/demon-editor.mo b/app/ui/lang/es/LC_MESSAGES/demon-editor.mo new file mode 100644 index 0000000000000000000000000000000000000000..60d6303a9c45519ab2ca10c6510e34314746d6da GIT binary patch literal 11074 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 DJhDJg literal 0 HcmV?d00001 diff --git a/app/ui/lang/nl/LC_MESSAGES/demon-editor.mo b/app/ui/lang/nl/LC_MESSAGES/demon-editor.mo index a9079f3b4dee521b59d0edf4ec7b7f2418528223..042e3f5d70d4f48803a4ecc6cb95a88221f2ca09 100644 GIT binary patch delta 1407 zcmXZbO-R&17{~G1+*MaIT`TR)b=B3(KrPS|tV0w?uVR_mL9=#USH+c86rxxJqtb%P z4jCSd3Zck^J$R4~Qg*0LSrPU%jRVihLgUW~^Y)Vz9JgH2e0J(!OVkq~AMHUGQY zM9eB0zZlSl3E8m^X_lF&1l^c{+b|8QQ3*ESY7AluohoU*s||)h|OA{c7BVCs6bIPzjtz%^yJ}a32*gicXwHJI-4D=eU;s z>j({H`UzF)Z@3ZvVmYqQ;TLOArE5cqWiDFdQMSQHif$lGY`n5>G`{YAdSrJ24q+Q59)K z1#ZDo;+u9Fx|30C!l#&tUM~+0t55;kQ41refCE;42(|H5)MLDfs@NUWRXj$W_!-)9 z4h!%tI*D(VXsD#le6#!*3(-S=2kMTGqwcB&72qtYA{S7lzlM6G6UZ|%GpGZ6KqdYg zRf!a$YF;ktdl{w?-yEc&4I5DA9a^k(1UkTk8IW&pGR%<1yunDWz-2%Q1jAJ zC(pwKEJY7iU_3TpME^!7X=p(gs$~7>!9mpb2dG4*Q5(KO2QDCYXckeG$|#KKMXlS8 z3Ah`zejjRnGg5SOy^#8I-DZjb`3^aZSwdB$V2fS|i%^ei(()y$LLX6A^8;1tq@vhs zccUs%iAr=AI&lwbpF`-uwj$Eg21C(H$!+P*W}l}kcskVCJ^UxD)fR~Q+_kopWB%|d ze>hNbxYr-ky$qkzpuxs4!ht!>lwtNU%YLBw>do zvo1@AtSCy{sIV712w?<0W_1WEs34>l>r@A$zCZQ>^)oZi%>4iJpYd|jm8P+?o?wPC z=4*~Ii|{YTVN$L!X_$^0w=f>ppuVre1l)j0xCK4ffST8gOK>07U=RB6CKAHDM9u%1 zYl0?~#%~6+p(ii;Arn~r#>Lo;U&mbz%5Gs+2sKjnz3Ep+S zzt0OsGy2ScHi)sJ0n<@|3Y~rxs#5j168E6y_n{Ivg_=KtO5i#w;5a7Y1iEp`=}+TQ z`m;eA%5)A@>Ums&3s{X=`Nk~A22|-fkYbquXM7Zu&=cgxyyK55_0Q>h3yjI8UxP8Y z3l*msl~AyiMg@&_)SZkthOvkGex&+lxRm;H-R1!U@&j@h6T2!}kup?;s!)&Xj-!pL&^Oe-(H~T)Q_G^S zy#Q5-ji^L7VI^+Cx)tj4 Y^@M)-!k(SlyeBeJ>~_ZmIs)b9KVST-asU7T diff --git a/deb/usr/share/locale/es/LC_MESSAGES/demon-editor.mo b/deb/usr/share/locale/es/LC_MESSAGES/demon-editor.mo new file mode 100644 index 0000000000000000000000000000000000000000..60d6303a9c45519ab2ca10c6510e34314746d6da GIT binary patch literal 11074 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 DJhDJg literal 0 HcmV?d00001 diff --git a/deb/usr/share/locale/nl/LC_MESSAGES/demon-editor.mo b/deb/usr/share/locale/nl/LC_MESSAGES/demon-editor.mo index a9079f3b4dee521b59d0edf4ec7b7f2418528223..042e3f5d70d4f48803a4ecc6cb95a88221f2ca09 100644 GIT binary patch delta 1407 zcmXZbO-R&17{~G1+*MaIT`TR)b=B3(KrPS|tV0w?uVR_mL9=#USH+c86rxxJqtb%P z4jCSd3Zck^J$R4~Qg*0LSrPU%jRVihLgUW~^Y)Vz9JgH2e0J(!OVkq~AMHUGQY zM9eB0zZlSl3E8m^X_lF&1l^c{+b|8QQ3*ESY7AluohoU*s||)h|OA{c7BVCs6bIPzjtz%^yJ}a32*gicXwHJI-4D=eU;s z>j({H`UzF)Z@3ZvVmYqQ;TLOArE5cqWiDFdQMSQHif$lGY`n5>G`{YAdSrJ24q+Q59)K z1#ZDo;+u9Fx|30C!l#&tUM~+0t55;kQ41refCE;42(|H5)MLDfs@NUWRXj$W_!-)9 z4h!%tI*D(VXsD#le6#!*3(-S=2kMTGqwcB&72qtYA{S7lzlM6G6UZ|%GpGZ6KqdYg zRf!a$YF;ktdl{w?-yEc&4I5DA9a^k(1UkTk8IW&pGR%<1yunDWz-2%Q1jAJ zC(pwKEJY7iU_3TpME^!7X=p(gs$~7>!9mpb2dG4*Q5(KO2QDCYXckeG$|#KKMXlS8 z3Ah`zejjRnGg5SOy^#8I-DZjb`3^aZSwdB$V2fS|i%^ei(()y$LLX6A^8;1tq@vhs zccUs%iAr=AI&lwbpF`-uwj$Eg21C(H$!+P*W}l}kcskVCJ^UxD)fR~Q+_kopWB%|d ze>hNbxYr-ky$qkzpuxs4!ht!>lwtNU%YLBw>do zvo1@AtSCy{sIV712w?<0W_1WEs34>l>r@A$zCZQ>^)oZi%>4iJpYd|jm8P+?o?wPC z=4*~Ii|{YTVN$L!X_$^0w=f>ppuVre1l)j0xCK4ffST8gOK>07U=RB6CKAHDM9u%1 zYl0?~#%~6+p(ii;Arn~r#>Lo;U&mbz%5Gs+2sKjnz3Ep+S zzt0OsGy2ScHi)sJ0n<@|3Y~rxs#5j168E6y_n{Ivg_=KtO5i#w;5a7Y1iEp`=}+TQ z`m;eA%5)A@>Ums&3s{X=`Nk~A22|-fkYbquXM7Zu&=cgxyyK55_0Q>h3yjI8UxP8Y z3l*msl~AyiMg@&_)SZkthOvkGex&+lxRm;H-R1!U@&j@h6T2!}kup?;s!)&Xj-!pL&^Oe-(H~T)Q_G^S zy#Q5-ji^L7VI^+Cx)tj4 Y^@M)-!k(SlyeBeJ>~_ZmIs)b9KVST-asU7T diff --git a/po/es/demon-editor.po b/po/es/demon-editor.po new file mode 100644 index 00000000..95e191ef --- /dev/null +++ b/po/es/demon-editor.po @@ -0,0 +1,571 @@ +# Copyright (C) 2018 Frank Neirynck +# This file is distributed under the MIT license. +# +#Frank Neirynck , 2018. +# +msgid "" +msgstr "" +"Last-Translator: Frank Neirynck\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "translator-credits" +msgstr "Frank Neirynck " + +# Main +msgid "Service" +msgstr "Servicio" + +msgid "Package" +msgstr "Paquete" + +msgid "Type" +msgstr "Tipo" + +msgid "Picon" +msgstr "Picon" + +msgid "Freq" +msgstr "Frec." + +msgid "Rate" +msgstr "Rate" + +msgid "Pol" +msgstr "Pol." + +msgid "System" +msgstr "Sistema" + +msgid "Pos" +msgstr "Pos." + +msgid "Num" +msgstr "Núm" + +msgid "Current IP:" +msgstr "IP actual:" + +msgid "Assign" +msgstr "Assignar" + +msgid "Bouquet details" +msgstr "Detailes Ramo" + +msgid "Bouquets" +msgstr "Ramos" + +msgid "Copy" +msgstr "Copiar" + +msgid "Copy reference" +msgstr "Copia de Referencia" + +msgid "Download" +msgstr "Descargar" + +msgid "Edit" +msgstr "Editar" + +msgid "Edit " +msgstr "Editar " + +msgid "Edit mаrker text" +msgstr "Editar testo del mаrcador" + +msgid "FTP-transfer" +msgstr "Transferencia-FTP" + +msgid "Global search" +msgstr "Búsqueda Global" + +msgid "Hide" +msgstr "Esconder" + +msgid "Hide/Skip On/Off Ctrl + H" +msgstr "Esconder/Saltar Encender/Apagar Ctrl + H" + +msgid "Add IPTV or stream service" +msgstr "Añadir servicio IPTV" + +msgid "Import m3u" +msgstr "Importar m3u" + +msgid "Import m3u file" +msgstr "Importar fichero m3u" + +msgid "List configuration" +msgstr "Lista configuración" + +msgid "Rename for this bouquet" +msgstr "Renombrar para este ramo" + +msgid "Set default name" +msgstr "Establecer nombre predeterminado" + +msgid "Insert marker" +msgstr "Inserter marcador" + +msgid "Locate in services" +msgstr "Buscar en servicios" + +msgid "Locked" +msgstr "Cerrado" + +msgid "Move" +msgstr "Mover" + +msgid "New" +msgstr "Nuevo" + +msgid "New bouquet" +msgstr "Ramo nuevo" + +msgid "Create bouquet" +msgstr "Crear ramo" + +msgid "For current satellite" +msgstr "Para el Satélite actual" + +msgid "For current package" +msgstr "Para el paquete actual" + +msgid "For current type" +msgstr "Para el tipo actual" + +msgid "For each satellite" +msgstr "Para cada Satélite" + +msgid "For each package" +msgstr "Para cada paquete" + +msgid "For each type" +msgstr "Para cada tipo" + +msgid "Open" +msgstr "Abrir" + +msgid "Parent lock On/Off Ctrl + L" +msgstr "Bloqueo parentesco Encender/Apagar Ctrl + L" + +msgid "Picons" +msgstr "Picons" + +msgid "Picons downloader" +msgstr "Picons descargar" + +msgid "Satellites downloader" +msgstr "Satélites descargar" + +msgid "Remove" +msgstr "Remover" + +msgid "Remove all unavailable" +msgstr "Remover toto lo indisponible" + +msgid "Satellites editor" +msgstr "Editor Satélites" + +msgid "Save" +msgstr "Guardar" + +msgid "Search" +msgstr "Buscar" + +msgid "Services" +msgstr "Servicios" + +msgid "Services filter" +msgstr "Filtro servicios" + +msgid "Settings" +msgstr "Configuraciones" + +msgid "Up" +msgstr "Arriba" + +msgid "Down" +msgstr "Abajo" + +msgid "Active profile:" +msgstr "Perfil activo:" + +msgid "All" +msgstr "Todo" + +msgid "Are you sure?" +msgstr "Estás seguro?" + +msgid "Current data path:" +msgstr "Ruta de datos actual:" + +msgid "Data:" +msgstr "Datos:" + +msgid "Enigma2 channel and satellites list editor for GNU/Linux" +msgstr "Editor de Canales y Satélites Enigma2 para GNU/Linux" + +msgid "Host:" +msgstr "Anfitrión:" + +msgid "Loading data..." +msgstr "Cargar datos..." + +msgid "Receive" +msgstr "Recibir" + +msgid "Receive files from receiver" +msgstr "Recibir ficheros de su receptor" + +msgid "Receiver IP:" +msgstr "Receptor IP:" + +msgid "Remove unused bouquets" +msgstr "Remover ramos sin usar" + +msgid "Reset profile" +msgstr "Restablecer perfil" + +msgid "Satellites" +msgstr "Satélites" + +msgid "Satellites.xml file:" +msgstr "Fichero Satellites.xml:" + +msgid "Selected" +msgstr "Seleccionado" + +msgid "Send" +msgstr "Enviar" + +msgid "Send files to receiver" +msgstr "Enviar ficheros al receptor" + +msgid "Services and Bouquets files:" +msgstr "Ficheros de Servicios y ramos:" + +msgid "User bouquet files:" +msgstr "Importar ficheros de ramos:" + +msgid "Extra:" +msgstr "Extra:" + +# Filter bar +msgid "Only free" +msgstr "Solamente gratis" + +msgid "All positions" +msgstr "Todas las posiciones" + +msgid "All types" +msgstr "Todas los tipos" + +# Streams player +msgid "Play" +msgstr "Play" + +msgid "Stop playback" +msgstr "Detener la reproducción" + +msgid "Previous stream in the list" +msgstr "Secuencia anterior en la lista" + +msgid "Next stream in the list" +msgstr "Secuencia siguiente en la lista" + +msgid "Toggle in fullscreen" +msgstr "Cambiar a pantalla completa" + +msgid "Close" +msgstr "Cerrar" + +# Picons dialog +msgid "Load providers" +msgstr "Cargar Proveedores" + +msgid "Providers" +msgstr "Proveedores" + +msgid "Receive picons" +msgstr "Recibir picons" + +msgid "Picons name format:" +msgstr "Picons formato nombres:" + +msgid "Resize:" +msgstr "Redimensionar:" + +msgid "Current picons path:" +msgstr "Ruta acual Picons:" + +msgid "Receiver picons path:" +msgstr "Ruta picons receptor:" + +msgid "Picons download tool" +msgstr "Picons herramiento de descarga" + +msgid "Transfer to receiver" +msgstr "Transferir al receptor" + +msgid "Downloader" +msgstr "Descargador" + +msgid "Converter" +msgstr "Convertidor" + +msgid "Convert" +msgstr "Convertir" + +msgid "Path to save:" +msgstr "Ruto para guardar:" + +msgid "Path to Enigma2 picons:" +msgstr "Ruta a picons Enigma2:" + +msgid "Specify the correct position value for the provider!" +msgstr "Especifique la posición correcta para el proveedor!" + +msgid "Converter between name formats" +msgstr "Conversor entre formatos de nombre" + +msgid "Receive picons for providers" +msgstr "Recibir picons para proovedor" + +msgid "Load satellite providers." +msgstr "Cargar proovedores Satélite." + +msgid "To automatically set the identifiers for picons,\nfirst load the required services list into the main application window." +msgstr "Para configurar automáticamente los identificadores para picons, \nprimero cargue la lista de servicios requeridos en la ventana principal." + +# Satellites editor +msgid "Satellites edit tool" +msgstr "Edito de Satélites" + +msgid "Add" +msgstr "Añadir" + +msgid "Satellite" +msgstr "Satélite" + +msgid "Transponder" +msgstr "Transpondedor" + +msgid "Satellite properties:" +msgstr "Propiedades del Satélite:" + +msgid "Transponder properties:" +msgstr "Propiedades del Transpondedor:" + +msgid "Name" +msgstr "Nombre" + +msgid "Position" +msgstr "Posición" + +# Satellites update dialog +msgid "Satellites update" +msgstr "Actualisar Satélite" + +msgid "Remove selection" +msgstr "Remover selección" + +# Service details dialog +msgid "Service data:" +msgstr "Datos servicio:" + +msgid "Transponder data:" +msgstr "Datos Transpondedor:" + +msgid "Service data" +msgstr "Datos servicio" + +msgid "Transponder details" +msgstr "Detailes Transpondedor" + +msgid "Changes will be applied to all services of this transponder!\nContinue?" +msgstr "Los cambios se aplicarán a todos los servicios de este transpondedor!\nContinuar?" + +msgid "Reference" +msgstr "Referencia" + +msgid "Namespace" +msgstr "Namespace" + +msgid "Flags:" +msgstr "Flags:" + +msgid "Delays (ms):" +msgstr "Retraso (mc)" + +msgid "Bitstream" +msgstr "Secuencia de Bits" + +msgid "Description" +msgstr "Descripción" + +msgid "Source:" +msgstr "Fuente:" + +msgid "Cancel" +msgstr "Annular" + +msgid "Update" +msgstr "Actualisar" + +msgid "Filter" +msgstr "Filtrar" + +msgid "Find" +msgstr "Buscar" + +# IPTV dialog +msgid "Stream data" +msgstr "Datos de la Secuencia" + +# IPTV list configuration dialog +msgid "Starting values" +msgstr "Volores iniciales" + +msgid "Reset to default" +msgstr "Restablecer a predeterminado" + +msgid "IPTV streams list configuration" +msgstr "Configurar lista de Secuencias IPTV" + +#Settings dialog +msgid "Preferences" +msgstr "Preferencias" + +msgid "Profile:" +msgstr "Perfil:" + +msgid "Timeout between commands in seconds" +msgstr "Tiempo de espera entre comandos en segundos" + +msgid "Timeout:" +msgstr "Time-out:" + +msgid "Login:" +msgstr "Usuario:" + +msgid "Options" +msgstr "Opciones" + +msgid "Password:" +msgstr "Contraseña:" + +msgid "Picons:" +msgstr "Picons:" + +msgid "Port:" +msgstr "Puerta:" + +msgid "Data path:" +msgstr "Ruta de datos:" + +msgid "Picons path:" +msgstr "Ruda de Picons:" + +msgid "Network settings:" +msgstr "Configuración de red:" + +msgid "STB file paths:" +msgstr "Ruta de ficherors STB:" + +msgid "Local file paths:" +msgstr "Ruta de ficheros local:" + +# Dialogs messages +msgid "Error. No bouquet is selected!" +msgstr "Error. Ningún ramo está seleccionado!" + +msgid "This item is not allowed to be removed!" +msgstr "Este artículo no puede ser eliminado!" + +msgid "This item is not allowed to edit!" +msgstr "Este artículo no puede ser editado!" + +msgid "Not allowed in this context!" +msgstr "No permitido en este contexto!" + +msgid "Please, download files from receiver or setup your path for read data!" +msgstr "Por favor, descargue archivos desde el receptor o configure su ruta para leer los datos!" + +msgid "Reading data error!" +msgstr "Error de lectura de datos!" + +msgid "No m3u file is selected!" +msgstr "Ningún archivo m3u ha sido seleccionado!" + +msgid "Not implemented yet!" +msgstr "Aun no implementado!" + +msgid "The text of marker is empty, please try again!" +msgstr "El texto del marcador está vacío, inténtalo de nuevo!" + +msgid "Please, select only one item!" +msgstr "Por favor, seleccione solo un elemento!" + +msgid "No png file is selected!" +msgstr "Ningún fichero png seleccionado!" + +msgid "No reference is present!" +msgstr "Ninguna referencia presente!" + +msgid "No selected item!" +msgstr "Ningún elemento seleccionado!" + +msgid "The task is already running!" +msgstr "La tarea ya se está ejecutando!" + +msgid "Done!" +msgstr "Hecho!" + +msgid "Please, wait..." +msgstr "Por favor, espere..." + +msgid "Resizing..." +msgstr "Redimensionamiento..." + +msgid "Select paths!" +msgstr "Seleccione rutas!" + +msgid "No satellite is selected!" +msgstr "Ningún Satélite seleccionado!" + +msgid "Please, select only one satellite!" +msgstr "Seleccione solo un Satélite!" + +msgid "Please check your parameters and try again." +msgstr "Por favor revise sus parámetros y vuelva a intentar!" + +msgid "No satellites.xml file is selected!" +msgstr "Ningún satellites.xml seleccionado!" + +msgid "Error. Verify the data!" +msgstr "Error. Revise sus datos!" + +msgid "Operation not allowed in this context!" +msgstr "Operación no permitida en este contexto!" + +msgid "No VLC is found. Check that it is installed!" +msgstr "VLC no encontrado. Verifica si está instalado!" + +# Search unavailable streams dialog +msgid "Please wait, streams testing in progress..." +msgstr "Por favor espera una prueba de las secuencias..." + +msgid "Found" +msgstr "Encontrado" + +msgid "unavailable streams." +msgstr "Secuencias no presentes" + +msgid "No changes required!" +msgstr "ningún cambio requerido!" + +msgid "This list does not contains IPTV streams!" +msgstr "La lista no contiene secuencias IPTV!" + diff --git a/po/nl/demon-editor.mo b/po/nl/demon-editor.mo deleted file mode 100644 index a9079f3b4dee521b59d0edf4ec7b7f2418528223..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10917 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 diff --git a/po/nl/demon-editor.po b/po/nl/demon-editor.po index 66d937e0..a22dd345 100644 --- a/po/nl/demon-editor.po +++ b/po/nl/demon-editor.po @@ -73,7 +73,7 @@ msgid "Edit " msgstr "Wijzig " msgid "Edit mаrker text" -msgstr "Wijzil mаrker tekst" +msgstr "Wijzig mаrker tekst" msgid "FTP-transfer" msgstr "FTP-overdracht" @@ -85,7 +85,7 @@ msgid "Hide" msgstr "Verberg" msgid "Hide/Skip On/Off Ctrl + H" -msgstr "verberg/Overalaan Aan/Uit Ctrl + H" +msgstr "Verberg/Overslaan Aan/Uit Ctrl + H" msgid "Add IPTV or stream service" msgstr "Voeg IPTV of stream dienst toe" @@ -100,7 +100,7 @@ msgid "List configuration" msgstr "Lijst configuratie" msgid "Rename for this bouquet" -msgstr "Hernoem dit boeket" +msgstr "Hernoem voor dit boeket" msgid "Set default name" msgstr "Stel standaard naam in" @@ -154,10 +154,10 @@ msgid "Picons" msgstr "Picons" msgid "Picons downloader" -msgstr "Загрузчик пиконов" +msgstr "Picons downloader" msgid "Satellites downloader" -msgstr "Picons downloader" +msgstr "Satellieten downloader" msgid "Remove" msgstr "Verwijder" @@ -286,7 +286,7 @@ msgid "Load providers" msgstr "Laad leveranciers" msgid "Providers" -msgstr "leveranciers" +msgstr "Leveranciers" msgid "Receive picons" msgstr "Ontvang picons" @@ -298,10 +298,10 @@ msgid "Resize:" msgstr "Verklein/vergroot:" msgid "Current picons path:" -msgstr "Huidig picon pad:" +msgstr "Huidig pad picons:" msgid "Receiver picons path:" -msgstr "Ontvanger picon pad:" +msgstr "Ontvanger picons pad:" msgid "Picons download tool" msgstr "Picons download gereedschap" @@ -561,11 +561,10 @@ msgid "Found" msgstr "Gevonden" msgid "unavailable streams." -msgstr "Steams niet aanwegig." +msgstr "Steams niet aanwezig." msgid "No changes required!" msgstr "Geen wijzigingen vereist!" msgid "This list does not contains IPTV streams!" msgstr "Deze lijst bevat geen IPTV streams!" - diff --git a/po/ru/demon-editor.mo b/po/ru/demon-editor.mo deleted file mode 100644 index c9d979204f122c47b4c439162b039a9a4a312d60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13537 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 MiY9Xd^Rzzq|49Klvj6}9 From dbab0247785142dcca6acc4e1931a0941418ca68 Mon Sep 17 00:00:00 2001 From: DYefremov Date: Tue, 11 Dec 2018 19:09:55 +0300 Subject: [PATCH 3/3] bouquet selection refactoring --- app/ui/main_app_window.py | 95 ++++++++++++++++----------------------- 1 file changed, 39 insertions(+), 56 deletions(-) diff --git a/app/ui/main_app_window.py b/app/ui/main_app_window.py index 0f3dc2ee..d7691393 100644 --- a/app/ui/main_app_window.py +++ b/app/ui/main_app_window.py @@ -155,6 +155,7 @@ class Application(Gtk.Application): self._picons = {} self._blacklist = set() self._current_bq_name = None + self._bq_selected = "" # Current selected bouquet # Current satellite positions in the services list self._sat_positions = [] # Player @@ -301,7 +302,7 @@ class Application(Gtk.Application): def fav_service_data_function(self, column, render, model, itr, data): """ Data function for the service column of FAV list """ fav_id = model.get_value(itr, 7) - bq = self._extra_bouquets.get(self.get_selected_bouquet(), None) + bq = self._extra_bouquets.get(self._bq_selected, None) has_id = bq.get(fav_id, None) if bq else bq render.set_property("foreground", self._EXTRA_COLOR) if has_id else render.set_property("foreground-set", None) @@ -451,9 +452,8 @@ class Application(Gtk.Application): def remove_favs(self, itrs, model): """ Deleting bouquet services """ - bq_selected = self.get_selected_bouquet() - if bq_selected: - fav_bouquet = self._bouquets.get(bq_selected, None) + if self._bq_selected: + fav_bouquet = self._bouquets.get(self._bq_selected, None) if fav_bouquet: for itr in itrs: del fav_bouquet[int(model.get_path(itr)[0])] @@ -584,9 +584,8 @@ class Application(Gtk.Application): def update_bouquet_list(self): """ Update bouquet after move items """ - bq_selected = self.get_selected_bouquet() - if bq_selected: - fav_bouquet = self._bouquets[bq_selected] + if self._bq_selected: + fav_bouquet = self._bouquets[self._bq_selected] fav_bouquet.clear() for row in self._fav_model: fav_bouquet.append(row[7]) @@ -926,6 +925,12 @@ class Application(Gtk.Application): self._bq_name_label.set_text(self._current_bq_name if self._current_bq_name else "") self._fav_model.clear() + if self._current_bq_name: + ch_row = model[model.get_iter(path)][:] + self._bq_selected = "{}:{}".format(ch_row[0], ch_row[3]) + else: + self._bq_selected = "" + if self._bouquets_view.row_expanded(path): self._bouquets_view.collapse_row(path) else: @@ -959,30 +964,15 @@ class Application(Gtk.Application): def check_bouquet_selection(self): """ checks and returns bouquet if selected """ - bq_selected = self.get_selected_bouquet() - - if not bq_selected: + if not self._bq_selected: show_dialog(DialogType.ERROR, self._main_window, "Error. No bouquet is selected!") return - if Profile(self._profile) is Profile.NEUTRINO_MP and bq_selected.endswith(BqType.WEBTV.value): + if Profile(self._profile) is Profile.NEUTRINO_MP and self._bq_selected.endswith(BqType.WEBTV.value): show_dialog(DialogType.ERROR, self._main_window, "Operation not allowed in this context!") return - return bq_selected - - def get_selected_bouquet(self): - """ returns 'name:type' of last selected bouquet or False """ - if self._current_bq_name is None: - return False - - for row in self._bouquets_model: - chs_rows = row.iterchildren() - for ch_row in chs_rows: - name = ch_row[0] - if name == self._current_bq_name: - return "{}:{}".format(name, ch_row[3]) - return False + return self._bq_selected @run_idle def update_bouquets_type(self): @@ -1117,21 +1107,19 @@ class Application(Gtk.Application): self._tool_elements[elem].set_sensitive(not_empty) else: is_service = model_name == self._SERVICE_LIST_NAME - bq_selected = False if model_name == self._FAV_LIST_NAME: - bq_selected = self.get_selected_bouquet() - if profile is Profile.NEUTRINO_MP and bq_selected: - name, bq_type = bq_selected.split(":") - bq_selected = BqType(bq_type) is BqType.WEBTV + if profile is Profile.NEUTRINO_MP and self._bq_selected: + name, bq_type = self._bq_selected.split(":") + self._bq_selected = BqType(bq_type) is BqType.WEBTV for elem in self._FAV_ELEMENTS: if elem in ("paste_tool_button", "fav_paste_popup_item"): self._tool_elements[elem].set_sensitive(not is_service and self._rows_buffer) elif elem in self._FAV_ENIGMA_ELEMENTS: if profile is Profile.ENIGMA_2: - self._tool_elements[elem].set_sensitive(bq_selected and not is_service) + self._tool_elements[elem].set_sensitive(self._bq_selected and not is_service) elif elem in self._FAV_IPTV_ELEMENTS: - self._tool_elements[elem].set_sensitive(bq_selected and not is_service) + self._tool_elements[elem].set_sensitive(self._bq_selected and not is_service) else: self._tool_elements[elem].set_sensitive(not_empty and not is_service) for elem in self._SERVICE_ELEMENTS: @@ -1152,10 +1140,10 @@ class Application(Gtk.Application): def set_service_flags(self, flag): profile = Profile(self._profile) - bq_selected = self.get_selected_bouquet() + if profile is Profile.ENIGMA_2: set_flags(flag, self._services_view, self._fav_view, self._services, self._blacklist) - elif profile is Profile.NEUTRINO_MP and bq_selected: + elif profile is Profile.NEUTRINO_MP and self._bq_selected: model, paths = self._bouquets_view.get_selection().get_selected_rows() itr = model.get_iter(paths[0]) value = model.get_value(itr, 1 if flag is Flag.LOCK else 2) @@ -1195,7 +1183,7 @@ class Application(Gtk.Application): def on_insert_marker(self, view): """ Inserts marker into bouquet services list. """ - insert_marker(view, self._bouquets, self.get_selected_bouquet(), self._services, self._main_window) + insert_marker(view, self._bouquets, self._bq_selected, self._services, self._main_window) self.update_fav_num_column(self._fav_model) def on_fav_press(self, menu, event): @@ -1211,7 +1199,7 @@ class Application(Gtk.Application): response = IptvDialog(self._main_window, self._fav_view, self._services, - self._bouquets.get(self.get_selected_bouquet(), None), + self._bouquets.get(self._bq_selected, None), Profile(self._profile), Action.ADD).show() if response != Gtk.ResponseType.CANCEL: @@ -1229,11 +1217,10 @@ class Application(Gtk.Application): show_dialog(DialogType.ERROR, self._main_window, "This list does not contains IPTV streams!") return - bq_selected = self.get_selected_bouquet() - if not bq_selected: + if not self._bq_selected: return - bouquet = self._bouquets.get(bq_selected, []) + bouquet = self._bouquets.get(self._bq_selected, []) IptvListConfigurationDialog(self._main_window, self._services, iptv_rows, bouquet, profile).show() @run_idle @@ -1243,14 +1230,13 @@ class Application(Gtk.Application): show_dialog(DialogType.ERROR, self._main_window, "This list does not contains IPTV streams!") return - bq_selected = self.get_selected_bouquet() - if not bq_selected: + if not self._bq_selected: return if show_dialog(DialogType.QUESTION, self._main_window) == Gtk.ResponseType.CANCEL: return - fav_bqt = self._bouquets.get(bq_selected, None) + fav_bqt = self._bouquets.get(self._bq_selected, None) prf = Profile(self._profile) response = SearchUnavailableDialog(self._main_window, self._fav_model, fav_bqt, iptv_rows, prf).show() if response: @@ -1267,14 +1253,14 @@ class Application(Gtk.Application): return channels = parse_m3u(response, Profile(self._profile)) - bq_selected = self.get_selected_bouquet() - if channels and bq_selected: - bq_services = self._bouquets.get(bq_selected) + + if channels and self._bq_selected: + bq_services = self._bouquets.get(self._bq_selected) self._fav_model.clear() for ch in channels: self._services[ch.fav_id] = ch bq_services.append(ch.fav_id) - next(self.update_bouquet_services(self._fav_model, None, bq_selected), False) + next(self.update_bouquet_services(self._fav_model, None, self._bq_selected), False) # ***************** Player *********************# @@ -1578,7 +1564,7 @@ class Application(Gtk.Application): return IptvDialog(self._main_window, self._fav_view, self._services, - self._bouquets.get(self.get_selected_bouquet(), None), + self._bouquets.get(self._bq_selected, None), Profile(self._profile), Action.EDIT).show() self.on_locate_in_services(view) @@ -1603,8 +1589,7 @@ class Application(Gtk.Application): def on_bouquets_edit(self, view): """ Rename bouquets """ - bq_selected = self.get_selected_bouquet() - if not bq_selected: + if not self._bq_selected: show_dialog(DialogType.ERROR, self._main_window, "This item is not allowed to edit!") return @@ -1648,18 +1633,17 @@ class Application(Gtk.Application): return srv = self._services.get(fav_id, None) - selected_bq = self.get_selected_bouquet() - ex_bq = self._extra_bouquets.get(selected_bq, None) + ex_bq = self._extra_bouquets.get(self._bq_selected, None) if srv.service == response and ex_bq: ex_bq.pop(fav_id, None) if not ex_bq: - self._extra_bouquets.pop(selected_bq, None) + self._extra_bouquets.pop(self._bq_selected, None) else: if ex_bq: ex_bq[fav_id] = response else: - self._extra_bouquets[selected_bq] = {fav_id: response} + self._extra_bouquets[self._bq_selected] = {fav_id: response} model.set_value(model.get_iter(paths), 2, response) @@ -1671,8 +1655,7 @@ class Application(Gtk.Application): model, paths = selection fav_id = model[paths][7] srv = self._services.get(fav_id, None) - selected_bq = self.get_selected_bouquet() - ex_bq = self._extra_bouquets.get(selected_bq, None) + ex_bq = self._extra_bouquets.get(self._bq_selected, None) if not ex_bq: show_dialog(DialogType.ERROR, self._main_window, "No changes required!") @@ -1682,7 +1665,7 @@ class Application(Gtk.Application): show_dialog(DialogType.ERROR, self._main_window, "No changes required!") return if not ex_bq: - self._extra_bouquets.pop(selected_bq, None) + self._extra_bouquets.pop(self._bq_selected, None) model.set_value(model.get_iter(paths), 2, srv.service)