Skip to content

Commit

Permalink
add streamrelay to context menu
Browse files Browse the repository at this point in the history
  • Loading branch information
DYefremov committed Jul 31, 2024
1 parent 960541b commit 384da95
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 10 deletions.
42 changes: 33 additions & 9 deletions app/ui/main.glade
Original file line number Diff line number Diff line change
Expand Up @@ -1130,7 +1130,7 @@ Author: Dmitriy Yefremov
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="fav_popup_separator">
<object class="GtkSeparatorMenuItem" id="fav_popup_separator_4">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
Expand All @@ -1145,7 +1145,31 @@ Author: Dmitriy Yefremov
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="fav_popup_separator_4">
<object class="GtkSeparatorMenuItem" id="fav_popup_separator_5">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
</child>
<child>
<object class="GtkMenuItem" id="fav_use_sr_popup_item">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Use with Streamrelay</property>
<signal name="activate" handler="on_use_streamrelay" swapped="no"/>
</object>
</child>
<child>
<object class="GtkMenuItem" id="fav_remove_sr_popup_item">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Remove use with Streamrelay</property>
<signal name="activate" handler="on_remove_use_streamrelay" swapped="no"/>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="fav_popup_separator_6">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
Expand All @@ -1172,7 +1196,7 @@ Author: Dmitriy Yefremov
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="fav_popup_separator_5">
<object class="GtkSeparatorMenuItem" id="fav_popup_separator_7">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
Expand All @@ -1194,7 +1218,7 @@ Author: Dmitriy Yefremov
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="fav_popup_separator_6">
<object class="GtkSeparatorMenuItem" id="fav_popup_separator_8">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
Expand All @@ -1217,7 +1241,7 @@ Author: Dmitriy Yefremov
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="fav_popup_separator_7">
<object class="GtkSeparatorMenuItem" id="fav_popup_separator_9">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
Expand All @@ -1231,7 +1255,7 @@ Author: Dmitriy Yefremov
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="fav_popup_separator_8">
<object class="GtkSeparatorMenuItem" id="fav_popup_separator_10">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
Expand All @@ -1249,7 +1273,7 @@ Author: Dmitriy Yefremov
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="fav_popup_separator_9">
<object class="GtkSeparatorMenuItem" id="fav_popup_separator_11">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
Expand Down Expand Up @@ -1292,7 +1316,7 @@ Author: Dmitriy Yefremov
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="fav_pupup_separator_10">
<object class="GtkSeparatorMenuItem" id="fav_popup_separator_12">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
Expand All @@ -1310,7 +1334,7 @@ Author: Dmitriy Yefremov
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="fav_popup_separator_11">
<object class="GtkSeparatorMenuItem" id="fav_popup_separator_13">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
Expand Down
36 changes: 35 additions & 1 deletion app/ui/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ class Application(Gtk.Application):
"fav_insert_marker_popup_item", "fav_insert_space_popup_item", "fav_edit_sub_menu_popup_item",
"fav_edit_popup_item", "fav_picon_popup_item", "fav_copy_popup_item", "fav_add_alt_popup_item",
"fav_epg_configuration_popup_item", "fav_mark_dup_popup_item", "fav_remove_dup_popup_item",
"fav_reference_popup_item")
"fav_reference_popup_item", "fav_use_sr_popup_item", "fav_remove_sr_popup_item")

_BOUQUET_ELEMENTS = ("bouquets_new_popup_item", "bouquets_edit_popup_item", "bouquets_cut_popup_item",
"bouquets_copy_popup_item", "bouquets_paste_popup_item", "new_header_button",
Expand Down Expand Up @@ -220,6 +220,8 @@ def __init__(self, **kwargs):
"on_create_bouquet_for_current_type": self.on_create_bouquet_for_current_type,
"on_create_bouquet_for_each_type": self.on_create_bouquet_for_each_type,
"on_add_alternatives": self.on_add_alternatives,
"on_use_streamrelay": self.on_use_streamrelay,
"on_remove_use_streamrelay": self.on_remove_use_streamrelay,
"on_satellites_realize": self.on_satellites_realize,
"on_picons_realize": self.on_picons_realize,
"on_epg_realize": self.on_epg_realize,
Expand Down Expand Up @@ -4457,6 +4459,38 @@ def on_alt_selection(self, model, path, column):
if srv and srv.transponder or row[Column.ALT_TYPE] == BqServiceType.IPTV.name:
self.emit("fav-changed", srv)

# ***************** Stream relay ********************** #

def on_use_streamrelay(self, item):
gen = self.update_streamrelay_use(remove=False)
GLib.idle_add(lambda: next(gen, False), priority=GLib.PRIORITY_LOW)

def on_remove_use_streamrelay(self, item):
gen = self.update_streamrelay_use(remove=True)
GLib.idle_add(lambda: next(gen, False), priority=GLib.PRIORITY_LOW)

def update_streamrelay_use(self, remove):
model, paths = self._fav_view.get_selection().get_selected_rows()
if not paths:
return

s_types = {BqServiceType.MARKER.name, BqServiceType.SPACE.name}
for p in paths:
if model[p][Column.FAV_TYPE] in s_types:
continue
srv = self._services.get(model[p][Column.FAV_ID], None)
if not srv:
continue

if remove:
if self._stream_relay.pop(srv.fav_id, None):
model[p][Column.FAV_CODED] = srv.coded
else:
model[p][Column.FAV_CODED] = LINK_ICON
ref = f"{self.get_service_ref_data(srv)}:"
self._stream_relay[srv.fav_id] = ref
yield True

# ***************** Profile label ********************* #

@run_idle
Expand Down

0 comments on commit 384da95

Please sign in to comment.