mirror of
https://github.com/DYefremov/DemonEditor.git
synced 2025-12-21 07:59:40 +01:00
Added services column data function prototypes
This commit is contained in:
@@ -34,29 +34,20 @@ class Application(Gtk.Application):
|
|||||||
_TV_TYPES = ("TV", "TV (HD)", "TV (UHD)", "TV (H264)")
|
_TV_TYPES = ("TV", "TV (HD)", "TV (UHD)", "TV (H264)")
|
||||||
|
|
||||||
_SERVICE_LIST_NAME = "services_list_store"
|
_SERVICE_LIST_NAME = "services_list_store"
|
||||||
|
|
||||||
_FAV_LIST_NAME = "fav_list_store"
|
_FAV_LIST_NAME = "fav_list_store"
|
||||||
|
|
||||||
_BOUQUETS_LIST_NAME = "bouquets_tree_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",)
|
_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_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_insert_marker_popup_item", "fav_edit_sub_menu_popup_item", "fav_edit_popup_item",
|
||||||
"fav_picon_popup_item", "fav_copy_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_ENIGMA_ELEMENTS = ("fav_insert_marker_popup_item",)
|
||||||
|
|
||||||
_FAV_IPTV_ELEMENTS = ("fav_iptv_popup_item",)
|
_FAV_IPTV_ELEMENTS = ("fav_iptv_popup_item",)
|
||||||
|
|
||||||
_LOCK_HIDE_ELEMENTS = ("locked_tool_button", "hide_tool_button")
|
_LOCK_HIDE_ELEMENTS = ("locked_tool_button", "hide_tool_button")
|
||||||
|
|
||||||
_DYNAMIC_ELEMENTS = ("services_popup_menu", "new_tool_button", "edit_tool_button", "locked_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",
|
"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",
|
"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",
|
"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")
|
"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):
|
def __init__(self, **kwargs):
|
||||||
super().__init__(**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)!!!
|
# 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._services_view.connect("key-press-event", self.force_ctrl)
|
||||||
self._fav_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
|
# Clipboard
|
||||||
self._clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
|
self._clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
|
||||||
# Wait dialog
|
# Wait dialog
|
||||||
@@ -242,6 +242,7 @@ class Application(Gtk.Application):
|
|||||||
|
|
||||||
def do_startup(self):
|
def do_startup(self):
|
||||||
Gtk.Application.do_startup(self)
|
Gtk.Application.do_startup(self)
|
||||||
|
self.init_service_renders()
|
||||||
self.init_http_api()
|
self.init_http_api()
|
||||||
|
|
||||||
def do_activate(self):
|
def do_activate(self):
|
||||||
@@ -281,6 +282,29 @@ class Application(Gtk.Application):
|
|||||||
""" Function for force ctrl press event for view """
|
""" Function for force ctrl press event for view """
|
||||||
event.state |= Gdk.ModifierType.CONTROL_MASK
|
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
|
@run_idle
|
||||||
def on_close_app(self, *args):
|
def on_close_app(self, *args):
|
||||||
self.quit()
|
self.quit()
|
||||||
@@ -992,6 +1016,7 @@ class Application(Gtk.Application):
|
|||||||
self.update_services_counts()
|
self.update_services_counts()
|
||||||
|
|
||||||
self.update_profile_label()
|
self.update_profile_label()
|
||||||
|
self.init_service_renders()
|
||||||
self.init_http_api()
|
self.init_http_api()
|
||||||
|
|
||||||
def on_tree_view_key_press(self, view, event):
|
def on_tree_view_key_press(self, view, event):
|
||||||
|
|||||||
Reference in New Issue
Block a user