Skeleton of the bouquets auto-generation feature

This commit is contained in:
DYefremov
2018-04-02 23:55:41 +03:00
parent 0b0d3ded8c
commit dc76a7801e
4 changed files with 357 additions and 227 deletions

View File

@@ -9,7 +9,7 @@
<property name="icon_name">system-help</property> <property name="icon_name">system-help</property>
<property name="type_hint">normal</property> <property name="type_hint">normal</property>
<property name="program_name">DemonEditor</property> <property name="program_name">DemonEditor</property>
<property name="version">0.3.0 Pre-alpha</property> <property name="version">0.3.1 Pre-alpha</property>
<property name="copyright">2018 Dmitriy Yefremov <property name="copyright">2018 Dmitriy Yefremov
dmitry.v.yefremov@gmail.com dmitry.v.yefremov@gmail.com
</property> </property>
@@ -22,12 +22,12 @@ dmitry.v.yefremov@gmail.com
<property name="wrap_license">True</property> <property name="wrap_license">True</property>
<property name="license_type">mit-x11</property> <property name="license_type">mit-x11</property>
<child internal-child="vbox"> <child internal-child="vbox">
<object class="GtkBox" id="aboutdialog-vbox3"> <object class="GtkBox" id="aboutdialog_vbox">
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="spacing">2</property> <property name="spacing">2</property>
<child internal-child="action_area"> <child internal-child="action_area">
<object class="GtkButtonBox" id="aboutdialog-action_area3"> <object class="GtkButtonBox" id="aboutdialog_action_area">
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="layout_style">end</property> <property name="layout_style">end</property>
</object> </object>

View File

@@ -7,7 +7,7 @@ import shutil
from app.commons import run_idle, log from app.commons import run_idle, log
from app.eparser import get_blacklist, write_blacklist, parse_m3u from app.eparser import get_blacklist, write_blacklist, parse_m3u
from app.eparser import get_services, get_bouquets, write_bouquets, write_services, Bouquets, Bouquet, Service from app.eparser import get_services, get_bouquets, write_bouquets, write_services, Bouquets, Bouquet, Service
from app.eparser.ecommons import CAS, Flag from app.eparser.ecommons import CAS, Flag, BouquetService
from app.eparser.enigma.bouquets import BqServiceType from app.eparser.enigma.bouquets import BqServiceType
from app.eparser.neutrino.bouquets import BqType from app.eparser.neutrino.bouquets import BqType
from app.properties import get_config, write_config, Profile from app.properties import get_config, write_config, Profile
@@ -18,7 +18,7 @@ from .dialogs import show_dialog, DialogType, get_chooser_dialog, WaitDialog, ge
from .download_dialog import show_download_dialog from .download_dialog import show_download_dialog
from .main_helper import edit_marker, insert_marker, move_items, rename, ViewTarget, set_flags, locate_in_services, \ from .main_helper import edit_marker, insert_marker, move_items, rename, ViewTarget, set_flags, locate_in_services, \
scroll_to, get_base_model, update_picons, copy_picon_reference, assign_picon, remove_picon, \ scroll_to, get_base_model, update_picons, copy_picon_reference, assign_picon, remove_picon, \
is_only_one_item_selected is_only_one_item_selected, get_bouquets_names
from .picons_dialog import PiconsDialog from .picons_dialog import PiconsDialog
from .satellites_dialog import show_satellites_dialog from .satellites_dialog import show_satellites_dialog
from .settings_dialog import show_settings_dialog from .settings_dialog import show_settings_dialog
@@ -36,7 +36,8 @@ class MainAppWindow:
# dynamically active elements depending on the selected view # dynamically active elements depending on the selected view
_SERVICE_ELEMENTS = ("copy_tool_button", "to_fav_tool_button", "copy_menu_item", "services_to_fav_move_popup_item", _SERVICE_ELEMENTS = ("copy_tool_button", "to_fav_tool_button", "copy_menu_item", "services_to_fav_move_popup_item",
"services_edit_popup_item", "services_copy_popup_item", "services_picon_popup_item") "services_edit_popup_item", "services_copy_popup_item", "services_picon_popup_item",
"services_create_bouquet_popup_item")
_BOUQUET_ELEMENTS = ("edit_tool_button", "new_tool_button", _BOUQUET_ELEMENTS = ("edit_tool_button", "new_tool_button",
"bouquets_new_popup_item", "bouquets_edit_popup_item") "bouquets_new_popup_item", "bouquets_edit_popup_item")
@@ -55,7 +56,7 @@ class MainAppWindow:
_LOCK_HIDE_ELEMENTS = ("locked_tool_button", "hide_tool_button") _LOCK_HIDE_ELEMENTS = ("locked_tool_button", "hide_tool_button")
__DYNAMIC_ELEMENTS = ("up_tool_button", "down_tool_button", "cut_tool_button", "copy_tool_button", __DYNAMIC_ELEMENTS = ("up_tool_button", "down_tool_button", "cut_tool_button", "services_create_bouquet_popup_item",
"paste_tool_button", "to_fav_tool_button", "new_tool_button", "remove_tool_button", "paste_tool_button", "to_fav_tool_button", "new_tool_button", "remove_tool_button",
"cut_menu_item", "copy_menu_item", "paste_menu_item", "delete_menu_item", "edit_tool_button", "cut_menu_item", "copy_menu_item", "paste_menu_item", "delete_menu_item", "edit_tool_button",
"services_to_fav_move_popup_item", "services_edit_popup_item", "locked_tool_button", "services_to_fav_move_popup_item", "services_edit_popup_item", "locked_tool_button",
@@ -65,7 +66,7 @@ class MainAppWindow:
"import_m3u_tool_button", "fav_import_m3u_popup_item", "fav_insert_marker_popup_item", "import_m3u_tool_button", "fav_import_m3u_popup_item", "fav_insert_marker_popup_item",
"fav_edit_marker_popup_item", "fav_edit_popup_item", "fav_locate_popup_item", "fav_edit_marker_popup_item", "fav_edit_popup_item", "fav_locate_popup_item",
"services_copy_popup_item", "services_picon_popup_item", "fav_picon_popup_item", "services_copy_popup_item", "services_picon_popup_item", "fav_picon_popup_item",
"services_add_new_popup_item", "fav_add_iptv_popup_item") "services_add_new_popup_item", "fav_add_iptv_popup_item", "copy_tool_button")
def __init__(self): def __init__(self):
handlers = {"on_close_main_window": self.on_quit, handlers = {"on_close_main_window": self.on_quit,
@@ -87,8 +88,6 @@ class MainAppWindow:
"on_paste": self.on_paste, "on_paste": self.on_paste,
"on_edit": self.on_rename, "on_edit": self.on_rename,
"on_delete": self.on_delete, "on_delete": self.on_delete,
"on_new_bouquet": self.on_new_bouquet,
"on_bouquets_edit": self.on_bouquets_edit,
"on_tool_edit": self.on_tool_edit, "on_tool_edit": self.on_tool_edit,
"on_to_fav_move": self.on_to_fav_move, "on_to_fav_move": self.on_to_fav_move,
"on_services_tree_view_drag_data_get": self.on_services_tree_view_drag_data_get, "on_services_tree_view_drag_data_get": self.on_services_tree_view_drag_data_get,
@@ -116,7 +115,13 @@ class MainAppWindow:
"on_search": self.on_search, "on_search": self.on_search,
"on_service_edit": self.on_service_edit, "on_service_edit": self.on_service_edit,
"on_services_add_new": self.on_services_add_new, "on_services_add_new": self.on_services_add_new,
"on_iptv": self.on_iptv} "on_iptv": self.on_iptv,
"on_new_bouquet": self.on_new_bouquet,
"on_bouquets_edit": self.on_bouquets_edit,
"on_create_bouquet_for_current_satellite": self.on_create_bouquet_for_current_satellite,
"on_create_bouquet_for_each_satellite": self.on_create_bouquet_for_each_satellite,
"on_create_bouquet_for_current_package": self.on_create_bouquet_for_current_package,
"on_create_bouquet_for_each_package": self.on_create_bouquet_for_each_package}
self.__options = get_config() self.__options = get_config()
self.__profile = self.__options.get("profile") self.__profile = self.__options.get("profile")
@@ -543,21 +548,24 @@ class MainAppWindow:
def append_bouquets(self, data_path): def append_bouquets(self, data_path):
for bouquet in get_bouquets(data_path, Profile(self.__profile)): for bouquet in get_bouquets(data_path, Profile(self.__profile)):
parent = self.__bouquets_model.append(None, [bouquet.name, None, None, bouquet.type]) parent = self.__bouquets_model.append(None, [bouquet.name, None, None, bouquet.type])
for bt in bouquet.bouquets: for bq in bouquet.bouquets:
name, bt_type, locked, hidden = bt.name, bt.type, bt.locked, bt.hidden self.append_bouquet(bq, parent)
self.__bouquets_model.append(parent, [name, locked, hidden, bt_type])
services = [] def append_bouquet(self, bq, parent):
agr = [None] * 9 name, bt_type, locked, hidden = bq.name, bq.type, bq.locked, bq.hidden
for srv in bt.services: self.__bouquets_model.append(parent, [name, locked, hidden, bt_type])
fav_id = srv.data services = []
# IPTV and MARKER services agr = [None] * 9
s_type = srv.type for srv in bq.services:
if s_type is BqServiceType.MARKER or s_type is BqServiceType.IPTV: fav_id = srv.data
icon = IPTV_ICON if s_type is BqServiceType.IPTV else None # IPTV and MARKER services
srv = Service(*agr[0:2], icon, srv.name, *agr[0:3], s_type.name, *agr, srv.num, fav_id, None) s_type = srv.type
self.__services[fav_id] = srv if s_type is BqServiceType.MARKER or s_type is BqServiceType.IPTV:
services.append(fav_id) icon = IPTV_ICON if s_type is BqServiceType.IPTV else None
self.__bouquets["{}:{}".format(name, bt_type)] = services srv = Service(*agr[0:2], icon, srv.name, *agr[0:3], s_type.name, *agr, srv.num, fav_id, None)
self.__services[fav_id] = srv
services.append(fav_id)
self.__bouquets["{}:{}".format(name, bt_type)] = services
def append_services(self, data_path): def append_services(self, data_path):
try: try:
@@ -991,6 +999,28 @@ class MainAppWindow:
def get_target_view(self, view): def get_target_view(self, view):
return ViewTarget.SERVICES if Gtk.Buildable.get_name(view) == "services_tree_view" else ViewTarget.FAV return ViewTarget.SERVICES if Gtk.Buildable.get_name(view) == "services_tree_view" else ViewTarget.FAV
def on_create_bouquet_for_current_satellite(self, item):
model, paths = self.__services_view.get_selection().get_selected_rows()
if is_only_one_item_selected(paths, self.__main_window):
name = model[paths][16]
bouquets_names = get_bouquets_names(self.__bouquets_model)
if name not in bouquets_names:
services = [BouquetService(None, BqServiceType.DEFAULT, row[18], 0)
for row in self.__services_model if row[16] == name]
bq = Bouquet(name=name, type="tv", services=services, locked=None, hidden=None)
self.append_bouquet(bq, self.__bouquets_model.get_iter(0))
self.__bouquets_view.expand_row(Gtk.TreePath(0), 0)
def on_create_bouquet_for_each_satellite(self, item):
pass
def on_create_bouquet_for_current_package(self, item):
pass
def on_create_bouquet_for_each_package(self, item):
pass
def start_app(): def start_app():
MainAppWindow() MainAppWindow()

View File

@@ -429,5 +429,18 @@ def get_base_model(model):
return model return model
def get_bouquets_names(model):
""" Returns all current bouquets names """
bouquets_names = []
for row in model:
itr = row.iter
if model.iter_has_child(itr):
num_of_children = model.iter_n_children(itr)
for num in range(num_of_children):
child_itr = model.iter_nth_child(itr, num)
bouquets_names.append(model[child_itr][0])
return bouquets_names
if __name__ == "__main__": if __name__ == "__main__":
pass pass

View File

@@ -53,6 +53,41 @@
<signal name="row-deleted" handler="on_model_changed" swapped="no"/> <signal name="row-deleted" handler="on_model_changed" swapped="no"/>
<signal name="row-inserted" handler="on_model_changed" swapped="no"/> <signal name="row-inserted" handler="on_model_changed" swapped="no"/>
</object> </object>
<object class="GtkImage" id="clear_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-clear</property>
</object>
<object class="GtkImage" id="clearimage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-clear</property>
</object>
<object class="GtkImage" id="copy_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-copy</property>
</object>
<object class="GtkImage" id="copy_image_2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-copy</property>
</object>
<object class="GtkImage" id="downloads_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">emblem-downloads</property>
</object>
<object class="GtkImage" id="edit_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-edit</property>
</object>
<object class="GtkImage" id="edit_select_all_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">edit-select-all</property>
</object>
<object class="GtkListStore" id="fav_list_store"> <object class="GtkListStore" id="fav_list_store">
<columns> <columns>
<!-- column-name num --> <!-- column-name num -->
@@ -77,70 +112,266 @@
<signal name="row-deleted" handler="on_model_changed" swapped="no"/> <signal name="row-deleted" handler="on_model_changed" swapped="no"/>
<signal name="row-inserted" handler="on_model_changed" swapped="no"/> <signal name="row-inserted" handler="on_model_changed" swapped="no"/>
</object> </object>
<object class="GtkImage" id="find_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-find</property>
</object>
<object class="GtkImage" id="image1"> <object class="GtkImage" id="image1">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="icon_name">emblem-downloads</property> <property name="stock">gtk-save</property>
</object>
<object class="GtkImage" id="image10">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-copy</property>
</object>
<object class="GtkImage" id="image11">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">insert-link</property>
</object>
<object class="GtkImage" id="image12">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-clear</property>
</object>
<object class="GtkImage" id="image13">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">insert-image</property>
</object>
<object class="GtkImage" id="image14">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">insert-link</property>
</object>
<object class="GtkImage" id="image15">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-clear</property>
</object>
<object class="GtkImage" id="image16">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-copy</property>
</object>
<object class="GtkImage" id="image17">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">network-transmit-receive</property>
</object> </object>
<object class="GtkImage" id="image4"> <object class="GtkImage" id="image4">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="icon_name">edit-select-all</property> <property name="stock">gtk-select-all</property>
</object> </object>
<object class="GtkImage" id="image5"> <object class="GtkImage" id="image5">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="icon_name">insert-text</property> <property name="stock">gtk-new</property>
</object> </object>
<object class="GtkImage" id="image6"> <object class="GtkImage" id="image6">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="stock">gtk-edit</property> <property name="stock">gtk-save</property>
</object> </object>
<object class="GtkImage" id="image7"> <object class="GtkImage" id="image7">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="stock">gtk-find</property> <property name="stock">gtk-select-all</property>
</object>
<object class="GtkImage" id="insert_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">insert-image</property>
</object>
<object class="GtkImage" id="insert_image_2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">insert-image</property>
</object>
<object class="GtkImage" id="insert_image_3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">insert-image</property>
</object>
<object class="GtkImage" id="insert_link_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">insert-link</property>
</object>
<object class="GtkMenu" id="services_popup_menu">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkImageMenuItem" id="services_to_fav_move_popup_item">
<property name="label">gtk-go-forward</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_to_fav_move" object="services_tree_view" swapped="no"/>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="services_separatormenuitem">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="services_create_bouquet_popup_item">
<property name="label">Create bouquet</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="image">image5</property>
<property name="use_stock">False</property>
<child type="submenu">
<object class="GtkMenu" id="services_bouquet_popup_menu">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkImageMenuItem" id="services_create_bouquet_for_current_sat_popup_item">
<property name="label" translatable="yes">For current satellite</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="image">image1</property>
<property name="use_stock">False</property>
<signal name="activate" handler="on_create_bouquet_for_current_satellite" swapped="no"/>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="services_create_bouquet_for_each_sat_popup_item">
<property name="label" translatable="yes">For each satellite</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="image">image4</property>
<property name="use_stock">False</property>
<signal name="activate" handler="on_create_bouquet_for_each_satellite" swapped="no"/>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="services_bouquet_separator">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="services_create_bouquet_for_current_package_popup_item">
<property name="label" translatable="yes">For current package</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="image">image6</property>
<property name="use_stock">False</property>
<signal name="activate" handler="on_create_bouquet_for_current_package" swapped="no"/>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="services_create_bouquet_for_each_package_popup_item">
<property name="label" translatable="yes">For each package</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="image">image7</property>
<property name="use_stock">False</property>
<signal name="activate" handler="on_create_bouquet_for_each_package" swapped="no"/>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="services_separatormenuitem_2">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="services_copy_popup_item">
<property name="label">gtk-copy</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_copy" object="services_tree_view" swapped="no"/>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="services_edit_popup_item">
<property name="label">gtk-edit</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="resize_mode">immediate</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_service_edit" object="services_tree_view" swapped="no"/>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="services_add_new_popup_item">
<property name="label">gtk-new</property>
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_services_add_new" swapped="no"/>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="services_separatormenuitem_3">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="services_picon_popup_item">
<property name="label" translatable="yes">Picon</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="image">insert_image_2</property>
<property name="use_stock">False</property>
<child type="submenu">
<object class="GtkMenu" id="services_picon_popoup_menu">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkImageMenuItem" id="services_assign_picon_popup_item">
<property name="label" translatable="yes">Assign</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="image">insert_link_image</property>
<property name="use_stock">False</property>
<signal name="activate" handler="on_assign_picon" object="services_tree_view" swapped="no"/>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="services_remove_picon_popup_item">
<property name="label" translatable="yes">Remove</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="image">clear_image</property>
<property name="use_stock">False</property>
<signal name="activate" handler="on_remove_picon" object="services_tree_view" swapped="no"/>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="services_separatormenuitem_4">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="services_reference_picon_popup_item">
<property name="label" translatable="yes">Copy reference</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="image">copy_image</property>
<property name="use_stock">False</property>
<signal name="activate" handler="on_reference_picon" object="services_tree_view" swapped="no"/>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="services_separatormenuitem_5">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="services_remove_popup_item">
<property name="label">gtk-remove</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_delete" swapped="no"/>
</object>
</child>
</object>
<object class="GtkImage" id="insert_link_image_2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">insert-link</property>
</object>
<object class="GtkImage" id="insert_text_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">insert-text</property>
</object>
<object class="GtkImage" id="network_transmit_receive_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">network-transmit-receive</property>
</object> </object>
<object class="GtkMenu" id="fav_popup_menu"> <object class="GtkMenu" id="fav_popup_menu">
<property name="visible">True</property> <property name="visible">True</property>
@@ -190,7 +421,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property> <property name="sensitive">False</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="image">image7</property> <property name="image">find_image</property>
<property name="use_stock">False</property> <property name="use_stock">False</property>
<signal name="activate" handler="on_locate_in_services" object="fav_tree_view" swapped="no"/> <signal name="activate" handler="on_locate_in_services" object="fav_tree_view" swapped="no"/>
</object> </object>
@@ -208,7 +439,7 @@
<property name="sensitive">False</property> <property name="sensitive">False</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="image">image5</property> <property name="image">insert_text_image</property>
<property name="use_stock">False</property> <property name="use_stock">False</property>
<signal name="activate" handler="on_insert_marker" object="fav_tree_view" swapped="no"/> <signal name="activate" handler="on_insert_marker" object="fav_tree_view" swapped="no"/>
</object> </object>
@@ -220,7 +451,7 @@
<property name="sensitive">False</property> <property name="sensitive">False</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="image">image6</property> <property name="image">edit_image</property>
<property name="use_stock">False</property> <property name="use_stock">False</property>
<signal name="activate" handler="on_edit_marker" object="fav_tree_view" swapped="no"/> <signal name="activate" handler="on_edit_marker" object="fav_tree_view" swapped="no"/>
</object> </object>
@@ -238,7 +469,7 @@
<property name="sensitive">False</property> <property name="sensitive">False</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="image">image1</property> <property name="image">downloads_image</property>
<property name="use_stock">False</property> <property name="use_stock">False</property>
<signal name="activate" handler="on_import_m3u" swapped="no"/> <signal name="activate" handler="on_import_m3u" swapped="no"/>
</object> </object>
@@ -249,7 +480,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property> <property name="sensitive">False</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="image">image17</property> <property name="image">network_transmit_receive_image</property>
<property name="use_stock">False</property> <property name="use_stock">False</property>
<signal name="activate" handler="on_iptv" swapped="no"/> <signal name="activate" handler="on_iptv" swapped="no"/>
</object> </object>
@@ -266,7 +497,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property> <property name="sensitive">False</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="image">image13</property> <property name="image">insert_image</property>
<property name="use_stock">False</property> <property name="use_stock">False</property>
<child type="submenu"> <child type="submenu">
<object class="GtkMenu" id="fav_picon_popoup_menu"> <object class="GtkMenu" id="fav_picon_popoup_menu">
@@ -277,7 +508,7 @@
<property name="label" translatable="yes">Assign</property> <property name="label" translatable="yes">Assign</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="image">image14</property> <property name="image">insert_link_image_2</property>
<property name="use_stock">False</property> <property name="use_stock">False</property>
<signal name="activate" handler="on_assign_picon" object="fav_tree_view" swapped="no"/> <signal name="activate" handler="on_assign_picon" object="fav_tree_view" swapped="no"/>
</object> </object>
@@ -287,7 +518,7 @@
<property name="label" translatable="yes">Remove</property> <property name="label" translatable="yes">Remove</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="image">image15</property> <property name="image">clearimage</property>
<property name="use_stock">False</property> <property name="use_stock">False</property>
<signal name="activate" handler="on_remove_picon" object="fav_tree_view" swapped="no"/> <signal name="activate" handler="on_remove_picon" object="fav_tree_view" swapped="no"/>
</object> </object>
@@ -303,7 +534,7 @@
<property name="label" translatable="yes">Copy reference</property> <property name="label" translatable="yes">Copy reference</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="image">image16</property> <property name="image">copy_image_2</property>
<property name="use_stock">False</property> <property name="use_stock">False</property>
<signal name="activate" handler="on_reference_picon" object="fav_tree_view" swapped="no"/> <signal name="activate" handler="on_reference_picon" object="fav_tree_view" swapped="no"/>
</object> </object>
@@ -330,150 +561,6 @@
</object> </object>
</child> </child>
</object> </object>
<object class="GtkImage" id="image8">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">insert-image</property>
</object>
<object class="GtkImage" id="image9">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">insert-image</property>
</object>
<object class="GtkMenu" id="services_popup_menu">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkImageMenuItem" id="services_to_fav_move_popup_item">
<property name="label">gtk-go-forward</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_to_fav_move" object="services_tree_view" swapped="no"/>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="separatormenuitem4">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="services_copy_popup_item">
<property name="label">gtk-copy</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_copy" object="services_tree_view" swapped="no"/>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="separatormenuitem7">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="services_edit_popup_item">
<property name="label">gtk-edit</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="resize_mode">immediate</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_service_edit" object="services_tree_view" swapped="no"/>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="services_add_new_popup_item">
<property name="label">gtk-new</property>
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_services_add_new" swapped="no"/>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="separatormenuitem2">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="services_picon_popup_item">
<property name="label" translatable="yes">Picon</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="image">image9</property>
<property name="use_stock">False</property>
<child type="submenu">
<object class="GtkMenu" id="services_picon_popoup_menu">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkImageMenuItem" id="services_assign_picon_popup_item">
<property name="label" translatable="yes">Assign</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="image">image11</property>
<property name="use_stock">False</property>
<signal name="activate" handler="on_assign_picon" object="services_tree_view" swapped="no"/>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="services_remove_picon_popup_item">
<property name="label" translatable="yes">Remove</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="image">image12</property>
<property name="use_stock">False</property>
<signal name="activate" handler="on_remove_picon" object="services_tree_view" swapped="no"/>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="separatormenuitem6">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="services_reference_picon_popup_item">
<property name="label" translatable="yes">Copy reference</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="image">image10</property>
<property name="use_stock">False</property>
<signal name="activate" handler="on_reference_picon" object="services_tree_view" swapped="no"/>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkSeparatorMenuItem" id="separatormenuitem5">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="services_remove_popup_item">
<property name="label">gtk-remove</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_delete" swapped="no"/>
</object>
</child>
</object>
<object class="GtkImage" id="send_recive_image"> <object class="GtkImage" id="send_recive_image">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
@@ -671,7 +758,7 @@
<property name="label" translatable="yes">Satellites editor</property> <property name="label" translatable="yes">Satellites editor</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="image">image4</property> <property name="image">edit_select_all_image</property>
<property name="use_stock">False</property> <property name="use_stock">False</property>
<signal name="activate" handler="on_satellite_editor_show" swapped="no"/> <signal name="activate" handler="on_satellite_editor_show" swapped="no"/>
</object> </object>
@@ -682,7 +769,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="image">image8</property> <property name="image">insert_image_3</property>
<property name="use_stock">False</property> <property name="use_stock">False</property>
<signal name="activate" handler="on_picons_loader_show" swapped="no"/> <signal name="activate" handler="on_picons_loader_show" swapped="no"/>
</object> </object>
@@ -2349,7 +2436,7 @@
<object class="GtkLabel" id="ver_label"> <object class="GtkLabel" id="ver_label">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="label">Ver. 0.3.0 Pre-alpha</property> <property name="label">Ver. 0.3.1 Pre-alpha</property>
<property name="xalign">0.94999998807907104</property> <property name="xalign">0.94999998807907104</property>
</object> </object>
<packing> <packing>