mirror of
https://github.com/DYefremov/DemonEditor.git
synced 2026-05-13 00:47:07 +02:00
removed preview mode elements for IPTV
This commit is contained in:
@@ -13,8 +13,7 @@ Clipboard is **"rubber"**. There is an accumulation before the insertion!
|
||||
* **Ctrl + S, T** in Satellites edit tool for create satellite or transponder.
|
||||
* **Ctrl + L** - parental lock.
|
||||
* **Ctrl + H** - hide/skip.
|
||||
* **P** - enable/disable preview mode for IPTV in the bouquet list.
|
||||
* **Enter** - start play IPTV or other stream in the bouquet list.
|
||||
* **Ctrl + P** - start play IPTV or other stream in the bouquet list.
|
||||
* **Space** - select/deselect.
|
||||
* **Left/Right** - remove selection.
|
||||
* **Ctrl + Up, Down, PageUp, PageDown, Home, End** - move selected items in the list.
|
||||
@@ -22,7 +21,7 @@ Clipboard is **"rubber"**. There is an accumulation before the insertion!
|
||||
* Multiple selections in lists only with Space key (as in file managers).
|
||||
* Ability to import IPTV into bouquet (Neutrino WEBTV) from m3u files.
|
||||
* Ability to download picons and update satellites (transponders) from web.
|
||||
* Preview (playing) IPTV or other streams directly from the bouquet list(should be installed VLC).
|
||||
* Preview (playing) IPTV or other streams directly from the bouquet list(should be installed VLC).
|
||||
### Minimum requirements:
|
||||
Python >= 3.5.2 and GTK+ 3 with PyGObject bindings.
|
||||
#### Note.
|
||||
|
||||
Binary file not shown.
@@ -111,11 +111,8 @@ class MainAppWindow:
|
||||
"on_service_edit": self.on_service_edit,
|
||||
"on_services_add_new": self.on_services_add_new,
|
||||
"on_iptv": self.on_iptv,
|
||||
"on_play_stream": self.on_play_stream,
|
||||
"on_remove_all_unavailable": self.on_remove_all_unavailable,
|
||||
"on_fav_iptv_mode": self.on_fav_iptv_mode,
|
||||
"on_drawing_area_realize": self.on_drawing_area_realize,
|
||||
"on_player_press": self.on_player_press,
|
||||
"on_main_window_state": self.on_main_window_state,
|
||||
"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,
|
||||
@@ -158,13 +155,13 @@ class MainAppWindow:
|
||||
self._services_model = builder.get_object("services_list_store")
|
||||
self._bouquets_model = builder.get_object("bouquets_tree_store")
|
||||
self._status_bar = builder.get_object("status_bar")
|
||||
self._player_frame = builder.get_object("player_frame")
|
||||
self._player_drawing_area = builder.get_object("player_drawing_area")
|
||||
# enabling events for the drawing area
|
||||
self._player_drawing_area.set_events(Gdk.ModifierType.BUTTON1_MASK)
|
||||
self._drawing_area_xid = None
|
||||
# self._player_frame = builder.get_object("player_frame")
|
||||
# self._player_drawing_area = builder.get_object("player_drawing_area")
|
||||
# # enabling events for the drawing area
|
||||
# self._player_drawing_area.set_events(Gdk.ModifierType.BUTTON1_MASK)
|
||||
# self._drawing_area_xid = None
|
||||
self._main_window_box = builder.get_object("main_window_box")
|
||||
self._fav_iptv_mode_popup_item = builder.get_object("fav_iptv_mode_popup_item")
|
||||
# self._fav_iptv_mode_popup_item = builder.get_object("fav_iptv_mode_popup_item")
|
||||
self._profile_label = builder.get_object("profile_label")
|
||||
self._bq_name_label = builder.get_object("bq_name_label")
|
||||
self._ip_label = builder.get_object("ip_label")
|
||||
@@ -804,13 +801,8 @@ class MainAppWindow:
|
||||
self.on_service_edit(view)
|
||||
elif key == Gdk.KEY_Left or key == Gdk.KEY_Right:
|
||||
view.do_unselect_all(view)
|
||||
elif (key == Gdk.KEY_P or key == Gdk.KEY_p) and model_name == self._FAV_LIST_NAME:
|
||||
self._iptv_preview_mode = not self._iptv_preview_mode
|
||||
self._fav_iptv_mode_popup_item.set_active(self._iptv_preview_mode)
|
||||
self.on_fav_iptv_mode(self._fav_iptv_mode_popup_item)
|
||||
elif (key == Gdk.KEY_Return or key == Gdk.KEY_KP_Enter) and model_name == self._FAV_LIST_NAME:
|
||||
if self._iptv_preview_mode:
|
||||
self.test_iptv()
|
||||
elif ctrl and model_name == self._FAV_LIST_NAME and key in (Gdk.KEY_P, Gdk.KEY_p):
|
||||
self.on_play_stream()
|
||||
|
||||
def on_download(self, item):
|
||||
show_download_dialog(transient=self._main_window,
|
||||
@@ -952,18 +944,12 @@ class MainAppWindow:
|
||||
def on_edit_marker(self, view):
|
||||
edit_marker(view, self._bouquets, self.get_selected_bouquet(), self._services, self._main_window)
|
||||
|
||||
def on_fav_iptv_mode(self, item):
|
||||
self._iptv_preview_mode = item.get_active()
|
||||
self._player_frame.set_visible(self._iptv_preview_mode)
|
||||
if not self._iptv_preview_mode:
|
||||
self.on_player_stop(None)
|
||||
|
||||
def on_fav_press(self, menu, event):
|
||||
self.on_view_popup_menu(menu, event)
|
||||
if self._iptv_preview_mode and event.get_event_type() == Gdk.EventType.DOUBLE_BUTTON_PRESS:
|
||||
self.test_iptv()
|
||||
if event.get_event_type() == Gdk.EventType.DOUBLE_BUTTON_PRESS:
|
||||
self.on_play_stream()
|
||||
|
||||
def test_iptv(self):
|
||||
def on_play_stream(self, item=None):
|
||||
path, column = self._fav_view.get_cursor()
|
||||
if path:
|
||||
row = self._fav_model[path][:]
|
||||
@@ -979,8 +965,6 @@ class MainAppWindow:
|
||||
self._player = Player.get_vlc_instance().media_player_new()
|
||||
except (NameError, AttributeError):
|
||||
show_dialog(DialogType.ERROR, self._main_window, "No VLC is found. Check that it is installed!")
|
||||
else:
|
||||
self._player.set_xwindow(self._drawing_area_xid)
|
||||
|
||||
if self._player:
|
||||
self._player.set_mrl(url)
|
||||
@@ -1021,24 +1005,6 @@ class MainAppWindow:
|
||||
if self._player:
|
||||
self._player.stop() if self._player.is_playing() else self._player.play()
|
||||
|
||||
def on_main_window_state(self, window, event):
|
||||
if event.new_window_state & Gdk.WindowState.FULLSCREEN:
|
||||
if self._main_window_box in window:
|
||||
window.remove(self._main_window_box)
|
||||
self._player_drawing_area.reparent(window)
|
||||
if self._player:
|
||||
self._player.set_xwindow(self._player_drawing_area.get_window().get_xid())
|
||||
else:
|
||||
if self._player_drawing_area in window:
|
||||
window.remove(self._player_drawing_area)
|
||||
window.add(self._main_window_box)
|
||||
self._player_frame.add(self._player_drawing_area)
|
||||
if self._player:
|
||||
self._player.set_xwindow(self._player_drawing_area.get_window().get_xid())
|
||||
|
||||
def on_drawing_area_realize(self, widget):
|
||||
self._drawing_area_xid = widget.get_window().get_xid()
|
||||
|
||||
def on_locate_in_services(self, view):
|
||||
locate_in_services(view, self._services_view, self._main_window)
|
||||
|
||||
|
||||
@@ -370,11 +370,13 @@ Author: Dmitriy Yefremov
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<child>
|
||||
<object class="GtkCheckMenuItem" id="fav_iptv_mode_popup_item">
|
||||
<object class="GtkImageMenuItem" id="fav_play_stream_popup_item">
|
||||
<property name="label">gtk-media-play</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Preview mode</property>
|
||||
<signal name="toggled" handler="on_fav_iptv_mode" swapped="no"/>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="use_stock">True</property>
|
||||
<signal name="activate" handler="on_play_stream" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
@@ -662,7 +664,6 @@ Author: Dmitriy Yefremov
|
||||
<property name="startup_id">DemonEditor</property>
|
||||
<signal name="check-resize" handler="on_resize" swapped="no"/>
|
||||
<signal name="delete-event" handler="on_close_app" swapped="no"/>
|
||||
<signal name="window-state-event" handler="on_main_window_state" swapped="no"/>
|
||||
<child type="titlebar">
|
||||
<object class="GtkHeaderBar" id="header_bar">
|
||||
<property name="visible">True</property>
|
||||
@@ -1694,159 +1695,124 @@ Author: Dmitriy Yefremov
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkPaned" id="fav_paned">
|
||||
<object class="GtkScrolledWindow" id="fav_scrolled_window">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="wide_handle">True</property>
|
||||
<property name="margin_bottom">2</property>
|
||||
<property name="shadow_type">in</property>
|
||||
<child>
|
||||
<object class="GtkFrame" id="player_frame">
|
||||
<property name="height_request">30</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label_xalign">0</property>
|
||||
<property name="shadow_type">none</property>
|
||||
<child>
|
||||
<object class="GtkDrawingArea" id="player_drawing_area">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<signal name="button-press-event" handler="on_player_press" swapped="no"/>
|
||||
<signal name="realize" handler="on_drawing_area_realize" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
<child type="label_item">
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="resize">True</property>
|
||||
<property name="shrink">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow" id="fav_scrolled_window">
|
||||
<object class="GtkTreeView" id="fav_tree_view">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="margin_bottom">2</property>
|
||||
<property name="shadow_type">in</property>
|
||||
<property name="model">fav_list_store</property>
|
||||
<property name="search_column">2</property>
|
||||
<property name="rubber_banding">True</property>
|
||||
<property name="enable_grid_lines">both</property>
|
||||
<property name="activate_on_single_click">True</property>
|
||||
<signal name="button-press-event" handler="on_fav_press" object="fav_popup_menu" swapped="no"/>
|
||||
<signal name="drag-data-get" handler="on_fav_tree_view_drag_data_get" swapped="no"/>
|
||||
<signal name="drag-data-received" handler="on_fav_tree_view_drag_data_received" swapped="no"/>
|
||||
<signal name="focus-in-event" handler="on_view_focus" swapped="no"/>
|
||||
<signal name="key-release-event" handler="on_tree_view_key_release" swapped="no"/>
|
||||
<signal name="row-activated" handler="on_fav_selection" object="fav_list_store" swapped="no"/>
|
||||
<child internal-child="selection">
|
||||
<object class="GtkTreeSelection" id="fav_selection">
|
||||
<property name="mode">multiple</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeView" id="fav_tree_view">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="model">fav_list_store</property>
|
||||
<property name="search_column">2</property>
|
||||
<property name="rubber_banding">True</property>
|
||||
<property name="enable_grid_lines">both</property>
|
||||
<property name="activate_on_single_click">True</property>
|
||||
<signal name="button-press-event" handler="on_fav_press" object="fav_popup_menu" swapped="no"/>
|
||||
<signal name="drag-data-get" handler="on_fav_tree_view_drag_data_get" swapped="no"/>
|
||||
<signal name="drag-data-received" handler="on_fav_tree_view_drag_data_received" swapped="no"/>
|
||||
<signal name="focus-in-event" handler="on_view_focus" swapped="no"/>
|
||||
<signal name="key-release-event" handler="on_tree_view_key_release" swapped="no"/>
|
||||
<signal name="row-activated" handler="on_fav_selection" object="fav_list_store" swapped="no"/>
|
||||
<child internal-child="selection">
|
||||
<object class="GtkTreeSelection" id="fav_selection">
|
||||
<property name="mode">multiple</property>
|
||||
<object class="GtkTreeViewColumn" id="num_column">
|
||||
<property name="title" translatable="yes">Num</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="num_cellrenderertext">
|
||||
<property name="xalign">0.20000000298023224</property>
|
||||
</object>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="fav_service_column">
|
||||
<property name="resizable">True</property>
|
||||
<property name="spacing">2</property>
|
||||
<property name="sizing">autosize</property>
|
||||
<property name="title" translatable="yes">Service</property>
|
||||
<property name="expand">True</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererPixbuf" id="fav_picon_cellrendererpixbuf"/>
|
||||
<attributes>
|
||||
<attribute name="pixbuf">8</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="num_column">
|
||||
<property name="title" translatable="yes">Num</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="num_cellrenderertext">
|
||||
<property name="xalign">0.20000000298023224</property>
|
||||
</object>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
<object class="GtkCellRendererPixbuf" id="fav_coded_cellrendererpixbuf"/>
|
||||
<attributes>
|
||||
<attribute name="pixbuf">1</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="fav_service_column">
|
||||
<property name="resizable">True</property>
|
||||
<property name="spacing">2</property>
|
||||
<property name="sizing">autosize</property>
|
||||
<property name="title" translatable="yes">Service</property>
|
||||
<property name="expand">True</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererPixbuf" id="fav_picon_cellrendererpixbuf"/>
|
||||
<attributes>
|
||||
<attribute name="pixbuf">8</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCellRendererPixbuf" id="fav_coded_cellrendererpixbuf"/>
|
||||
<attributes>
|
||||
<attribute name="pixbuf">1</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="fav_service_cellrenderertext"/>
|
||||
<attributes>
|
||||
<attribute name="text">2</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCellRendererPixbuf" id="fav_locked_cellrendererpixbuf"/>
|
||||
<attributes>
|
||||
<attribute name="pixbuf">3</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCellRendererPixbuf" id="fav_hide_cellrendererpixbuf"/>
|
||||
<attributes>
|
||||
<attribute name="pixbuf">4</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
<object class="GtkCellRendererText" id="fav_service_cellrenderertext"/>
|
||||
<attributes>
|
||||
<attribute name="text">2</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="fav_type_column">
|
||||
<property name="title" translatable="yes">Type</property>
|
||||
<property name="expand">True</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="type_cellrenderertext">
|
||||
<property name="xalign">0.50999999046325684</property>
|
||||
</object>
|
||||
<attributes>
|
||||
<attribute name="text">5</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
<object class="GtkCellRendererPixbuf" id="fav_locked_cellrendererpixbuf"/>
|
||||
<attributes>
|
||||
<attribute name="pixbuf">3</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="fav_pos_column">
|
||||
<property name="title" translatable="yes">Pos</property>
|
||||
<property name="expand">True</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="pos_cellrenderertext">
|
||||
<property name="xalign">0.50999999046325684</property>
|
||||
</object>
|
||||
<attributes>
|
||||
<attribute name="text">6</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
<object class="GtkCellRendererPixbuf" id="fav_hide_cellrendererpixbuf"/>
|
||||
<attributes>
|
||||
<attribute name="pixbuf">4</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="fav_type_column">
|
||||
<property name="title" translatable="yes">Type</property>
|
||||
<property name="expand">True</property>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="fav_id_column">
|
||||
<property name="visible">False</property>
|
||||
<property name="title">fav_id</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="fav_id_cellrenderertext4"/>
|
||||
<attributes>
|
||||
<attribute name="text">7</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
<object class="GtkCellRendererText" id="type_cellrenderertext">
|
||||
<property name="xalign">0.50999999046325684</property>
|
||||
</object>
|
||||
<attributes>
|
||||
<attribute name="text">5</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="fav_pos_column">
|
||||
<property name="title" translatable="yes">Pos</property>
|
||||
<property name="expand">True</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="pos_cellrenderertext">
|
||||
<property name="xalign">0.50999999046325684</property>
|
||||
</object>
|
||||
<attributes>
|
||||
<attribute name="text">6</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="fav_id_column">
|
||||
<property name="visible">False</property>
|
||||
<property name="title">fav_id</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="fav_id_cellrenderertext4"/>
|
||||
<attributes>
|
||||
<attribute name="text">7</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="resize">True</property>
|
||||
<property name="shrink">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -88,9 +88,6 @@ msgstr "Скрыть/Пропустить Вкл/Выкл Ctrl + H"
|
||||
msgid "Add IPTV or stream service"
|
||||
msgstr "Добавить IPTV или поток"
|
||||
|
||||
msgid "Preview mode"
|
||||
msgstr "Режим предпросмотра"
|
||||
|
||||
msgid "Import m3u"
|
||||
msgstr "Импортировать m3u"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user