changes for popup menu actions

This commit is contained in:
DYefremov
2020-11-27 21:27:23 +03:00
parent 0b4313e4cf
commit fd40fd8d72
2 changed files with 29 additions and 95 deletions

View File

@@ -359,21 +359,14 @@ class Application(Gtk.Application):
iptv_handlers = ("on_iptv", "on_import_yt_list", "on_import_m3u", "on_export_to_m3u",
"on_epg_list_configuration", "on_iptv_list_configuration", "on_remove_all_unavailable")
def set_action(n, fun, enabled=True):
ac = Gio.SimpleAction.new(n, None)
ac.connect("activate", fun)
ac.set_enabled(enabled)
self.add_action(ac)
return ac
list(map(lambda x: set_action(x, self._handlers.get(x)), main_handlers))
list(map(lambda x: self.set_action(x, self._handlers.get(x)), main_handlers))
# Import
action = set_action("on_import_bouquet", self._handlers.get("on_import_bouquet"), False)
action = self.set_action("on_import_bouquet", self._handlers.get("on_import_bouquet"), False)
self._tool_elements.get("bouquet_import_popup_item").bind_property("sensitive", action, "enabled")
# IPTV
iptv_elem = self._tool_elements.get("fav_iptv_popup_item")
for h in iptv_handlers:
action = set_action(h, self._handlers.get(h), False)
action = self.set_action(h, self._handlers.get(h), False)
iptv_elem.bind_property("sensitive", action, "enabled")
# Search, Filter
search_action = Gio.SimpleAction.new_stateful("search", None, GLib.Variant.new_boolean(False))
@@ -387,17 +380,20 @@ class Application(Gtk.Application):
self._app_info_box.bind_property("visible", filter_action, "enabled", 4)
self._main_window.add_action(filter_action)
# Lock, Hide
self._app_info_box.bind_property("visible", set_action("on_hide", self.on_hide, False), "enabled", 4)
self._app_info_box.bind_property("visible", set_action("on_locked", self.on_locked, False), "enabled", 4)
self._app_info_box.bind_property("visible", self.set_action("on_hide", self.on_hide, False), "enabled", 4)
self._app_info_box.bind_property("visible", self.set_action("on_locked", self.on_locked, False), "enabled", 4)
# Open and download/upload data
set_action("open_data", lambda a, v: self.open_data())
set_action("on_download_data", self.on_download_data)
set_action("upload_all", lambda a, v: self.on_upload_data(DownloadType.ALL))
set_action("upload_bouquets", lambda a, v: self.on_upload_data(DownloadType.BOUQUETS))
set_action("on_archive_open", self.on_archive_open)
set_action("on_import_from_web", self.on_import_from_web)
self.set_action("open_data", lambda a, v: self.open_data())
self.set_action("on_download_data", self.on_download_data)
self.set_action("upload_all", lambda a, v: self.on_upload_data(DownloadType.ALL))
self.set_action("upload_bouquets", lambda a, v: self.on_upload_data(DownloadType.BOUQUETS))
self.set_action("on_archive_open", self.on_archive_open)
self.set_action("on_import_from_web", self.on_import_from_web)
# Edit
self.set_action("on_edit", self.on_edit)
# Save
self._app_info_box.bind_property("visible", self.set_action("on_data_save", self.on_data_save, False),
"enabled", 4)
# Control
remote_action = Gio.SimpleAction.new_stateful("on_remote", None, GLib.Variant.new_boolean(False))
remote_action.connect("change-state", self.on_control)
@@ -1300,7 +1296,7 @@ class Application(Gtk.Application):
self.delete_selection(self._services_view, self._fav_view)
self.on_view_focus(self._bouquets_view)
menu.popup(None, None, None, None, event.button, event.time)
menu.popup_at_pointer(None)
return True
def on_satellite_editor_show(self, action, value=None):

View File

@@ -341,33 +341,33 @@ Author: Dmitriy Yefremov
<object class="GtkMenuItem" id="fav_add_iptv_popup_item">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="action_name">app.on_iptv</property>
<property name="label" translatable="yes">Add IPTV or stream service</property>
<signal name="activate" handler="on_iptv" swapped="no"/>
</object>
</child>
<child>
<object class="GtkMenuItem" id="fav_import_yt_popup_item">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="action_name">app.on_import_yt_list</property>
<property name="label" translatable="yes">Import YouTube playlist</property>
<signal name="activate" handler="on_import_yt_list" swapped="no"/>
</object>
</child>
<child>
<object class="GtkMenuItem" id="fav_import_m3u_popup_item">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="action_name">app.on_import_m3u</property>
<property name="label" translatable="yes">Import m3u</property>
<property name="use_underline">True</property>
<signal name="activate" handler="on_import_m3u" swapped="no"/>
</object>
</child>
<child>
<object class="GtkMenuItem" id="fav_export_m3u_popup_item">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="action_name">app.on_export_to_m3u</property>
<property name="label" translatable="yes">Export to m3u</property>
<signal name="activate" handler="on_export_to_m3u" swapped="no"/>
</object>
</child>
<child>
@@ -380,8 +380,8 @@ Author: Dmitriy Yefremov
<object class="GtkMenuItem" id="fav_epg_configuration_popup_item">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="action_name">app.on_epg_list_configuration</property>
<property name="label" translatable="yes">EPG configuration</property>
<signal name="activate" handler="on_epg_list_configuration" swapped="no"/>
</object>
</child>
<child>
@@ -394,8 +394,8 @@ Author: Dmitriy Yefremov
<object class="GtkMenuItem" id="fav_iptv_list_configuration_popup_item">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="action_name">app.on_iptv_list_configuration</property>
<property name="label" translatable="yes">List configuration</property>
<signal name="activate" handler="on_iptv_list_configuration" swapped="no"/>
</object>
</child>
<child>
@@ -408,8 +408,8 @@ Author: Dmitriy Yefremov
<object class="GtkMenuItem" id="fav_remove_all_unavailable_popup_item">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="action_name">app.on_remove_all_unavailable</property>
<property name="label" translatable="yes">Remove all unavailable</property>
<signal name="activate" handler="on_remove_all_unavailable" swapped="no"/>
</object>
</child>
</object>
@@ -600,68 +600,6 @@ Author: Dmitriy Yefremov
<property name="icon_name">document-save-symbolic</property>
<property name="icon_size">1</property>
</object>
<object class="GtkPopoverMenu" id="screenshots_menu">
<property name="can_focus">False</property>
<child>
<object class="GtkBox" id="screenshots_menu_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_top">5</property>
<property name="margin_bottom">5</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
<object class="GtkModelButton" id="screenshot_button_all">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="action_name">app.on_screenshot_all</property>
<property name="text" translatable="yes">All</property>
<property name="centered">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkModelButton" id="screenshot_button_video">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="action_name">app.on_screenshot_video</property>
<property name="text" translatable="yes">Video</property>
<property name="centered">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkModelButton" id="screenshot_button_osd">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="action_name">app.on_screenshot_osd</property>
<property name="text" translatable="yes">OSD</property>
<property name="centered">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="submenu">main</property>
<property name="position">1</property>
</packing>
</child>
</object>
<object class="GtkListStore" id="services_list_store">
<columns>
<!-- column-name cas -->
@@ -937,32 +875,32 @@ Author: Dmitriy Yefremov
<object class="GtkMenuItem" id="toolbar_iptv_add_iptv_menu_item">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="action_name">app.on_iptv</property>
<property name="label" translatable="yes">Add IPTV or stream service</property>
<signal name="activate" handler="on_iptv" swapped="no"/>
</object>
</child>
<child>
<object class="GtkMenuItem" id="toolbar_iptv_import_yt_menu_item">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="action_name">app.on_import_yt_list</property>
<property name="label" translatable="yes">Import YouTube playlist</property>
<signal name="activate" handler="on_import_yt_list" swapped="no"/>
</object>
</child>
<child>
<object class="GtkMenuItem" id="toolbar_iptv_import_m3u_menu_item">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="action_name">app.on_import_m3u</property>
<property name="label" translatable="yes">Import m3u</property>
<signal name="activate" handler="on_import_m3u" swapped="no"/>
</object>
</child>
<child>
<object class="GtkMenuItem" id="toolbar_iptv_export_m3u_menu_item">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="action_name">app.on_export_to_m3u</property>
<property name="label" translatable="yes">Export to m3u</property>
<signal name="activate" handler="on_export_to_m3u" swapped="no"/>
</object>
</child>
<child>
@@ -975,8 +913,8 @@ Author: Dmitriy Yefremov
<object class="GtkMenuItem" id="toolbar_iptv_separator_epg_configuration_menu_item">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="action_name">app.on_epg_list_configuration</property>
<property name="label" translatable="yes">EPG configuration</property>
<signal name="activate" handler="on_epg_list_configuration" swapped="no"/>
</object>
</child>
<child>
@@ -989,8 +927,8 @@ Author: Dmitriy Yefremov
<object class="GtkMenuItem" id="toolbar_iptv_list_configuration_menu_item">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="action_name">app.on_iptv_list_configuration</property>
<property name="label" translatable="yes">List configuration</property>
<signal name="activate" handler="on_iptv_list_configuration" swapped="no"/>
</object>
</child>
<child>
@@ -1003,8 +941,8 @@ Author: Dmitriy Yefremov
<object class="GtkMenuItem" id="toolbar_iptv_remove_all_unavailable_menu_item">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="action_name">app.on_remove_all_unavailable</property>
<property name="label" translatable="yes">Remove all unavailable</property>
<signal name="activate" handler="on_remove_all_unavailable" swapped="no"/>
</object>
</child>
</object>