mirror of
https://github.com/DYefremov/DemonEditor.git
synced 2025-12-22 00:19:40 +01:00
iptv preview mode skeleton
This commit is contained in:
63
app/tools/media.py
Normal file
63
app/tools/media.py
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
from app.commons import run_idle
|
||||||
|
from app.tools import vlc
|
||||||
|
from app.ui.uicommons import Gtk
|
||||||
|
|
||||||
|
MRL = "url"
|
||||||
|
|
||||||
|
|
||||||
|
class Player:
|
||||||
|
_VLC_INSTANCE = None
|
||||||
|
|
||||||
|
def __init__(self, url):
|
||||||
|
handlers = {"on_play": self.on_play,
|
||||||
|
"on_stop": self.on_stop,
|
||||||
|
"on_drawing_area_realize": self.on_drawing_area_realize,
|
||||||
|
"on_close_window": self.on_close_window}
|
||||||
|
|
||||||
|
builder = Gtk.Builder()
|
||||||
|
builder.add_objects_from_file("player.glade", ("player_main_window",))
|
||||||
|
builder.connect_signals(handlers)
|
||||||
|
self._main_window = builder.get_object("player_main_window")
|
||||||
|
self._player = Player.get_vlc_instance().media_player_new()
|
||||||
|
self._is_played = False
|
||||||
|
self._url = url
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_vlc_instance():
|
||||||
|
if Player._VLC_INSTANCE:
|
||||||
|
return Player._VLC_INSTANCE
|
||||||
|
_VLC_INSTANCE = vlc.Instance("--no-xlib")
|
||||||
|
return _VLC_INSTANCE
|
||||||
|
|
||||||
|
def on_play(self, item):
|
||||||
|
if not self._is_played:
|
||||||
|
self._player.play()
|
||||||
|
self._is_played = True
|
||||||
|
|
||||||
|
def on_stop(self, item):
|
||||||
|
if self._is_played:
|
||||||
|
self._player.stop()
|
||||||
|
self._is_played = False
|
||||||
|
|
||||||
|
def on_drawing_area_realize(self, widget):
|
||||||
|
win_id = widget.get_window().get_xid()
|
||||||
|
if self._player:
|
||||||
|
self._is_played = True
|
||||||
|
self._player.set_xwindow(win_id)
|
||||||
|
self._player.set_mrl(self._url)
|
||||||
|
self._player.play()
|
||||||
|
|
||||||
|
@run_idle
|
||||||
|
def on_close_window(self, *args):
|
||||||
|
if self._player:
|
||||||
|
self.on_stop(None)
|
||||||
|
self._player.release()
|
||||||
|
Gtk.main_quit()
|
||||||
|
|
||||||
|
def show(self):
|
||||||
|
self._main_window.show()
|
||||||
|
Gtk.main()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
Player(MRL).show()
|
||||||
112
app/tools/player.glade
Normal file
112
app/tools/player.glade
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- Generated with glade 3.18.3 -->
|
||||||
|
<interface>
|
||||||
|
<requires lib="gtk+" version="3.12"/>
|
||||||
|
<object class="GtkApplicationWindow" id="player_main_window">
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="title" translatable="yes">Player</property>
|
||||||
|
<property name="icon_name">vlc</property>
|
||||||
|
<signal name="delete-event" handler="on_close_window" swapped="no"/>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox" id="main_box">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkDrawingArea" id="drawing_area">
|
||||||
|
<property name="width_request">320</property>
|
||||||
|
<property name="height_request">240</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<signal name="realize" handler="on_drawing_area_realize" swapped="no"/>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">True</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="padding">2</property>
|
||||||
|
<property name="position">2</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkSeparator" id="separator1">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="padding">2</property>
|
||||||
|
<property name="position">3</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButtonBox" id="buttonbox">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="margin_left">3</property>
|
||||||
|
<property name="margin_right">5</property>
|
||||||
|
<property name="spacing">2</property>
|
||||||
|
<property name="homogeneous">True</property>
|
||||||
|
<property name="layout_style">start</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="play_button">
|
||||||
|
<property name="label">gtk-media-play</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">True</property>
|
||||||
|
<property name="use_stock">True</property>
|
||||||
|
<property name="always_show_image">True</property>
|
||||||
|
<signal name="clicked" handler="on_play" swapped="no"/>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">True</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="position">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="stop_button">
|
||||||
|
<property name="label">gtk-media-stop</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">True</property>
|
||||||
|
<property name="use_stock">True</property>
|
||||||
|
<property name="always_show_image">True</property>
|
||||||
|
<signal name="clicked" handler="on_stop" swapped="no"/>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">True</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="position">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="close_button">
|
||||||
|
<property name="label">gtk-close</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">True</property>
|
||||||
|
<property name="use_stock">True</property>
|
||||||
|
<property name="always_show_image">True</property>
|
||||||
|
<signal name="clicked" handler="on_close_window" swapped="no"/>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">True</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="pack_type">end</property>
|
||||||
|
<property name="position">2</property>
|
||||||
|
<property name="secondary">True</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="padding">5</property>
|
||||||
|
<property name="position">4</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</interface>
|
||||||
8749
app/tools/vlc.py
Normal file
8749
app/tools/vlc.py
Normal file
File diff suppressed because it is too large
Load Diff
@@ -50,7 +50,7 @@ class MainAppWindow:
|
|||||||
"fav_import_m3u_popup_item", "fav_insert_marker_popup_item", "fav_edit_popup_item",
|
"fav_import_m3u_popup_item", "fav_insert_marker_popup_item", "fav_edit_popup_item",
|
||||||
"fav_locate_popup_item", "fav_picon_popup_item", "fav_add_iptv_popup_item")
|
"fav_locate_popup_item", "fav_picon_popup_item", "fav_add_iptv_popup_item")
|
||||||
|
|
||||||
_FAV_ENIGMA_ELEMENTS = ("fav_insert_marker_popup_item", "fav_edit_marker_popup_item")
|
_FAV_ENIGMA_ELEMENTS = ("fav_insert_marker_popup_item",)
|
||||||
|
|
||||||
_FAV_M3U_ELEMENTS = ("import_m3u_tool_button", "fav_import_m3u_popup_item", "fav_add_iptv_popup_item")
|
_FAV_M3U_ELEMENTS = ("import_m3u_tool_button", "fav_import_m3u_popup_item", "fav_add_iptv_popup_item")
|
||||||
|
|
||||||
@@ -64,9 +64,9 @@ class MainAppWindow:
|
|||||||
"bouquets_new_popup_item", "bouquets_edit_popup_item", "services_remove_popup_item",
|
"bouquets_new_popup_item", "bouquets_edit_popup_item", "services_remove_popup_item",
|
||||||
"bouquets_remove_popup_item", "fav_remove_popup_item", "hide_tool_button",
|
"bouquets_remove_popup_item", "fav_remove_popup_item", "hide_tool_button",
|
||||||
"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_popup_item", "fav_locate_popup_item", "services_copy_popup_item",
|
||||||
"services_copy_popup_item", "services_picon_popup_item", "fav_picon_popup_item",
|
"services_picon_popup_item", "fav_picon_popup_item", "services_add_new_popup_item",
|
||||||
"services_add_new_popup_item", "fav_add_iptv_popup_item", "copy_tool_button")
|
"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,
|
||||||
@@ -101,7 +101,7 @@ class MainAppWindow:
|
|||||||
"on_import_m3u": self.on_import_m3u,
|
"on_import_m3u": self.on_import_m3u,
|
||||||
"on_insert_marker": self.on_insert_marker,
|
"on_insert_marker": self.on_insert_marker,
|
||||||
"on_edit_marker": self.on_edit_marker,
|
"on_edit_marker": self.on_edit_marker,
|
||||||
"on_fav_popup": self.on_fav_popup,
|
"on_fav_press": self.on_fav_press,
|
||||||
"on_locate_in_services": self.on_locate_in_services,
|
"on_locate_in_services": self.on_locate_in_services,
|
||||||
"on_picons_loader_show": self.on_picons_loader_show,
|
"on_picons_loader_show": self.on_picons_loader_show,
|
||||||
"on_filter_changed": self.on_filter_changed,
|
"on_filter_changed": self.on_filter_changed,
|
||||||
@@ -116,6 +116,7 @@ class MainAppWindow:
|
|||||||
"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_fav_iptv_mode": self.on_fav_iptv_mode,
|
||||||
"on_new_bouquet": self.on_new_bouquet,
|
"on_new_bouquet": self.on_new_bouquet,
|
||||||
"on_bouquets_edit": self.on_bouquets_edit,
|
"on_bouquets_edit": self.on_bouquets_edit,
|
||||||
"on_create_bouquet_for_current_satellite": self.on_create_bouquet_for_current_satellite,
|
"on_create_bouquet_for_current_satellite": self.on_create_bouquet_for_current_satellite,
|
||||||
@@ -136,6 +137,7 @@ class MainAppWindow:
|
|||||||
self._picons = {}
|
self._picons = {}
|
||||||
self._blacklist = set()
|
self._blacklist = set()
|
||||||
self._current_bq_name = None
|
self._current_bq_name = None
|
||||||
|
self._iptv_preview_mode = False
|
||||||
|
|
||||||
builder = Gtk.Builder()
|
builder = Gtk.Builder()
|
||||||
builder.set_translation_domain("demon-editor")
|
builder.set_translation_domain("demon-editor")
|
||||||
@@ -153,6 +155,7 @@ class MainAppWindow:
|
|||||||
self._services_model = builder.get_object("services_list_store")
|
self._services_model = builder.get_object("services_list_store")
|
||||||
self._bouquets_model = builder.get_object("bouquets_tree_store")
|
self._bouquets_model = builder.get_object("bouquets_tree_store")
|
||||||
self._status_bar = builder.get_object("status_bar")
|
self._status_bar = builder.get_object("status_bar")
|
||||||
|
self._player_frame = builder.get_object("player_frame")
|
||||||
self._profile_label = builder.get_object("profile_label")
|
self._profile_label = builder.get_object("profile_label")
|
||||||
self._ip_label = builder.get_object("ip_label")
|
self._ip_label = builder.get_object("ip_label")
|
||||||
self._ip_label.set_text(self._options.get(self._profile).get("host"))
|
self._ip_label.set_text(self._options.get(self._profile).get("host"))
|
||||||
@@ -166,7 +169,6 @@ class MainAppWindow:
|
|||||||
self._tv_count_label = builder.get_object("tv_count_label")
|
self._tv_count_label = builder.get_object("tv_count_label")
|
||||||
self._radio_count_label = builder.get_object("radio_count_label")
|
self._radio_count_label = builder.get_object("radio_count_label")
|
||||||
self._data_count_label = builder.get_object("data_count_label")
|
self._data_count_label = builder.get_object("data_count_label")
|
||||||
self._fav_edit_marker_popup_item = builder.get_object("fav_edit_marker_popup_item")
|
|
||||||
self.init_drag_and_drop() # drag and drop
|
self.init_drag_and_drop() # drag and drop
|
||||||
# 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)
|
||||||
@@ -900,6 +902,11 @@ class MainAppWindow:
|
|||||||
if response != Gtk.ResponseType.CANCEL:
|
if response != Gtk.ResponseType.CANCEL:
|
||||||
self.update_fav_num_column(self._fav_model)
|
self.update_fav_num_column(self._fav_model)
|
||||||
|
|
||||||
|
@run_idle
|
||||||
|
def on_fav_iptv_mode(self, item):
|
||||||
|
self._iptv_preview_mode = item.get_active()
|
||||||
|
self._player_frame.set_visible(self._iptv_preview_mode)
|
||||||
|
|
||||||
def on_insert_marker(self, view):
|
def on_insert_marker(self, view):
|
||||||
""" Inserts marker into bouquet services list. """
|
""" Inserts marker into bouquet services list. """
|
||||||
insert_marker(view, self._bouquets, self.get_selected_bouquet(), self._services, self._main_window)
|
insert_marker(view, self._bouquets, self.get_selected_bouquet(), self._services, self._main_window)
|
||||||
@@ -908,11 +915,19 @@ class MainAppWindow:
|
|||||||
def on_edit_marker(self, view):
|
def on_edit_marker(self, view):
|
||||||
edit_marker(view, self._bouquets, self.get_selected_bouquet(), self._services, self._main_window)
|
edit_marker(view, self._bouquets, self.get_selected_bouquet(), self._services, self._main_window)
|
||||||
|
|
||||||
@run_idle
|
def on_fav_press(self, menu, event):
|
||||||
def on_fav_popup(self, view, event):
|
event_type = event.get_event_type()
|
||||||
model, paths = view.get_selection().get_selected_rows()
|
if event_type == Gdk.EventType.BUTTON_PRESS and event.button == Gdk.BUTTON_SECONDARY:
|
||||||
self._fav_edit_marker_popup_item.set_sensitive(
|
self.on_view_popup_menu(menu, event)
|
||||||
len(paths) == 1 and model.get_value(model.get_iter(paths[0]), 5) == BqServiceType.MARKER.name)
|
elif self._iptv_preview_mode and event_type == Gdk.EventType.DOUBLE_BUTTON_PRESS:
|
||||||
|
path, column = self._fav_view.get_cursor()
|
||||||
|
if path:
|
||||||
|
row = self._fav_model[path][:]
|
||||||
|
if row[5] == BqServiceType.IPTV.value:
|
||||||
|
self.test_iptv(row[7])
|
||||||
|
|
||||||
|
def test_iptv(self, fav_id):
|
||||||
|
print(fav_id)
|
||||||
|
|
||||||
def on_locate_in_services(self, view):
|
def on_locate_in_services(self, view):
|
||||||
locate_in_services(view, self._services_view, self._main_window)
|
locate_in_services(view, self._services_view, self._main_window)
|
||||||
|
|||||||
@@ -78,11 +78,6 @@
|
|||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="icon_name">emblem-downloads</property>
|
<property name="icon_name">emblem-downloads</property>
|
||||||
</object>
|
</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">
|
<object class="GtkImage" id="edit_select_all_image">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
@@ -122,6 +117,11 @@
|
|||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="stock">gtk-save-as</property>
|
<property name="stock">gtk-save-as</property>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="GtkImage" id="image10">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="icon_name">network-transmit-receive</property>
|
||||||
|
</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>
|
||||||
@@ -474,18 +474,6 @@
|
|||||||
<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>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
|
||||||
<object class="GtkImageMenuItem" id="fav_edit_marker_popup_item">
|
|
||||||
<property name="label" translatable="yes">Edit mаrker text</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="image">edit_image</property>
|
|
||||||
<property name="use_stock">False</property>
|
|
||||||
<signal name="activate" handler="on_edit_marker" object="fav_tree_view" swapped="no"/>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkSeparatorMenuItem" id="fav_pupup_separator_2">
|
<object class="GtkSeparatorMenuItem" id="fav_pupup_separator_2">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
@@ -493,26 +481,49 @@
|
|||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkImageMenuItem" id="fav_import_m3u_popup_item">
|
<object class="GtkImageMenuItem" id="fav_iptv_popup_item">
|
||||||
<property name="label" translatable="yes">Import m3u</property>
|
<property name="label" translatable="yes">IPTV</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</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="image">image10</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"/>
|
<child type="submenu">
|
||||||
</object>
|
<object class="GtkMenu" id="fav_iptv_popoup_menu">
|
||||||
</child>
|
<property name="visible">True</property>
|
||||||
<child>
|
<property name="can_focus">False</property>
|
||||||
<object class="GtkImageMenuItem" id="fav_add_iptv_popup_item">
|
<child>
|
||||||
<property name="label" translatable="yes">Add IPTV or stream service</property>
|
<object class="GtkCheckMenuItem" id="fav_iptv_mode_popup_item">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="sensitive">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="label" translatable="yes">Preview mode</property>
|
||||||
<property name="image">network_transmit_receive_image</property>
|
<signal name="toggled" handler="on_fav_iptv_mode" swapped="no"/>
|
||||||
<property name="use_stock">False</property>
|
</object>
|
||||||
<signal name="activate" handler="on_iptv" swapped="no"/>
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImageMenuItem" id="fav_import_m3u_popup_item">
|
||||||
|
<property name="label" translatable="yes">Import m3u</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="image">downloads_image</property>
|
||||||
|
<property name="use_stock">False</property>
|
||||||
|
<signal name="activate" handler="on_import_m3u" swapped="no"/>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImageMenuItem" id="fav_add_iptv_popup_item">
|
||||||
|
<property name="label" translatable="yes">Add IPTV or stream service</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="sensitive">False</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="image">network_transmit_receive_image</property>
|
||||||
|
<property name="use_stock">False</property>
|
||||||
|
<signal name="activate" handler="on_iptv" swapped="no"/>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
@@ -2037,6 +2048,27 @@
|
|||||||
<property name="position">0</property>
|
<property name="position">0</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame" id="player_frame">
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="label_xalign">0</property>
|
||||||
|
<property name="shadow_type">in</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkDrawingArea" id="player_drawing_area">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child type="label_item">
|
||||||
|
<placeholder/>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">True</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="position">1</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkScrolledWindow" id="scrolledwindow2">
|
<object class="GtkScrolledWindow" id="scrolledwindow2">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
@@ -2052,8 +2084,7 @@
|
|||||||
<property name="rubber_banding">True</property>
|
<property name="rubber_banding">True</property>
|
||||||
<property name="enable_grid_lines">both</property>
|
<property name="enable_grid_lines">both</property>
|
||||||
<property name="activate_on_single_click">True</property>
|
<property name="activate_on_single_click">True</property>
|
||||||
<signal name="button-press-event" handler="on_fav_popup" swapped="no"/>
|
<signal name="button-press-event" handler="on_fav_press" object="fav_popup_menu" swapped="no"/>
|
||||||
<signal name="button-press-event" handler="on_view_popup_menu" 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-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="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="focus-in-event" handler="on_view_focus" swapped="no"/>
|
||||||
@@ -2162,7 +2193,7 @@
|
|||||||
<packing>
|
<packing>
|
||||||
<property name="expand">True</property>
|
<property name="expand">True</property>
|
||||||
<property name="fill">True</property>
|
<property name="fill">True</property>
|
||||||
<property name="position">1</property>
|
<property name="position">2</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
@@ -2205,7 +2236,7 @@
|
|||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
<property name="fill">True</property>
|
<property name="fill">True</property>
|
||||||
<property name="position">2</property>
|
<property name="position">3</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
|
|||||||
Reference in New Issue
Block a user