properties for picons

This commit is contained in:
Dmitriy Yefremov
2018-01-10 18:09:44 +03:00
parent c274c9e91d
commit 1a39557964
7 changed files with 206 additions and 141 deletions

View File

@@ -44,14 +44,18 @@ def get_default_settings():
"services_path": "/etc/enigma2/",
"user_bouquet_path": "/etc/enigma2/",
"satellites_xml_path": "/etc/tuxbox/",
"data_dir_path": DATA_PATH + "enigma2/"},
"picons_path": "/usr/share/enigma2/picon",
"data_dir_path": DATA_PATH + "enigma2/",
"picons_dir_path": DATA_PATH + "enigma2/picons"},
Profile.NEUTRINO_MP.value: {
"host": "127.0.0.1", "port": "21",
"user": "root", "password": "root",
"services_path": "/var/tuxbox/config/zapit/",
"user_bouquet_path": "/var/tuxbox/config/zapit/",
"satellites_xml_path": "/var/tuxbox/config/",
"data_dir_path": DATA_PATH + "neutrino/"},
"picons_path": "/usr/share/tuxbox/neutrino/icons/logo/",
"data_dir_path": DATA_PATH + "neutrino/",
"picons_dir_path": DATA_PATH + "neutrino/picons"},
"profile": Profile.ENIGMA_2.value}

View File

@@ -926,7 +926,7 @@ dmitry.v.yefremov@gmail.com
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Services and Bouquets files:</property>
<property name="xalign">0.10000000149011612</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>
@@ -949,7 +949,7 @@ dmitry.v.yefremov@gmail.com
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">User bouquet files:</property>
<property name="xalign">0.10000000149011612</property>
<property name="xalign">2.2351741291171123e-10</property>
</object>
<packing>
<property name="left_attach">0</property>
@@ -972,7 +972,7 @@ dmitry.v.yefremov@gmail.com
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Satellites.xml file:</property>
<property name="xalign">0.10000000149011612</property>
<property name="xalign">0.019999999552965164</property>
</object>
<packing>
<property name="left_attach">0</property>
@@ -991,11 +991,11 @@ dmitry.v.yefremov@gmail.com
</packing>
</child>
<child>
<object class="GtkLabel" id="label18">
<object class="GtkLabel" id="label20">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Picons directory:</property>
<property name="xalign">0.10000000149011612</property>
<property name="label" translatable="yes">Picons:</property>
<property name="xalign">2.2351741291171123e-10</property>
</object>
<packing>
<property name="left_attach">0</property>
@@ -1003,10 +1003,9 @@ dmitry.v.yefremov@gmail.com
</packing>
</child>
<child>
<object class="GtkEntry" id="picons_dir_field">
<object class="GtkEntry" id="picons_field">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">False</property>
<property name="text" translatable="yes">/usr/share/enigma2/picon</property>
</object>
<packing>
@@ -1136,8 +1135,9 @@ dmitry.v.yefremov@gmail.com
<object class="GtkLabel" id="label8">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Data directory:</property>
<property name="label" translatable="yes">Data dir:</property>
<property name="lines">0</property>
<property name="xalign">0.019999999552965164</property>
</object>
<packing>
<property name="expand">False</property>
@@ -1185,6 +1185,31 @@ dmitry.v.yefremov@gmail.com
<property name="position">6</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label18">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Picons dir:</property>
<property name="xalign">0.019999999552965164</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">8</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="picons_dir_field">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="text" translatable="yes">/data/picons</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">9</property>
</packing>
</child>
</object>
</child>
<action-widgets>

View File

@@ -129,9 +129,6 @@ class MainAppWindow:
self.__radio_count_label = builder.get_object("radio_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")
# Adding custom image for tools menu button
add_menu_tool_button = builder.get_object("toolbar_tools_menu_button")
add_menu_tool_button.set_image(builder.get_object("tools_menu_butoon_image"))
self.init_drag_and_drop() # drag and drop
self.__main_window.show()
@@ -805,7 +802,7 @@ class MainAppWindow:
locate_in_services(view, self.__services_view, self.__main_window)
def on_picons_loader_show(self, item):
dialog = PiconsDialog(self.__main_window, self.__options.get(self.__profile).get("data_dir_path") + "picons")
dialog = PiconsDialog(self.__main_window, self.__options.get(self.__profile))
dialog.show()

View File

@@ -80,15 +80,10 @@
<property name="can_focus">False</property>
<property name="icon_name">emblem-downloads</property>
</object>
<object class="GtkImage" id="image10">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">emblem-shared</property>
</object>
<object class="GtkImage" id="image4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">emblem-shared</property>
<property name="icon_name">edit-select-all</property>
</object>
<object class="GtkImage" id="image5">
<property name="visible">True</property>
@@ -227,36 +222,7 @@
<object class="GtkImage" id="image8">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">emblem-photos</property>
</object>
<object class="GtkImage" id="image9">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">emblem-photos</property>
</object>
<object class="GtkMenu" id="tools_popup_menu">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkImageMenuItem" id="satellites_editor_popup_item">
<property name="label" translatable="yes">Satellites editor</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_satellite_editor_show" swapped="no"/>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="picons_loader_popup_item">
<property name="label" translatable="yes">Picons loader</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="image">image9</property>
<property name="use_stock">False</property>
<signal name="activate" handler="on_picons_loader_show" swapped="no"/>
</object>
</child>
<property name="icon_name">insert-image</property>
</object>
<object class="GtkImage" id="send_recive_image">
<property name="visible">True</property>
@@ -785,6 +751,21 @@
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="remove_tool_button">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Remove</property>
<property name="use_underline">True</property>
<property name="stock_id">gtk-remove</property>
<signal name="clicked" handler="on_delete" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkSeparatorToolItem" id="separatortoolitem4">
<property name="visible">True</property>
@@ -796,16 +777,14 @@
</packing>
</child>
<child>
<object class="GtkToolButton" id="import_m3u_tool_button">
<object class="GtkToolButton" id="preferences_tool_button">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="tooltip_text" translatable="yes">Import m3u file</property>
<property name="opacity">0.93999999999999995</property>
<property name="label" translatable="yes">IPTV</property>
<property name="tooltip_text" translatable="yes">Settings</property>
<property name="label" translatable="yes">Preferences</property>
<property name="use_underline">True</property>
<property name="icon_name">emblem-downloads</property>
<signal name="clicked" handler="on_import_m3u" swapped="no"/>
<property name="stock_id">gtk-preferences</property>
<signal name="clicked" handler="on_preferences" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
@@ -823,66 +802,52 @@
</packing>
</child>
<child>
<object class="GtkToolButton" id="remove_tool_button">
<object class="GtkToolButton" id="satellites_editor_tool_button">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="tooltip_text" translatable="yes">Satellites editor</property>
<property name="label" translatable="yes">Satellites editor</property>
<property name="use_underline">True</property>
<property name="icon_name">edit-select-all</property>
<signal name="clicked" handler="on_satellite_editor_show" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="picons_download_tool_button">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="tooltip_text" translatable="yes">Picons</property>
<property name="label" translatable="yes">Picons loader</property>
<property name="use_underline">True</property>
<property name="icon_name">insert-image</property>
<signal name="clicked" handler="on_picons_loader_show" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="import_m3u_tool_button">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Remove</property>
<property name="tooltip_text" translatable="yes">Import m3u file</property>
<property name="opacity">0.93999999999999995</property>
<property name="label" translatable="yes">IPTV</property>
<property name="use_underline">True</property>
<property name="stock_id">gtk-remove</property>
<signal name="clicked" handler="on_delete" swapped="no"/>
<property name="icon_name">emblem-downloads</property>
<signal name="clicked" handler="on_import_m3u" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkSeparatorToolItem" id="toolbutton9">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="preferences_tool_button">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Preferences</property>
<property name="use_underline">True</property>
<property name="stock_id">gtk-preferences</property>
<signal name="clicked" handler="on_preferences" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolItem" id="toolitem">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkMenuButton" id="toolbar_tools_menu_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="popup">tools_popup_menu</property>
<property name="direction">none</property>
<child>
<placeholder/>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">False</property>
</packing>
</child>
<child>
<object class="GtkSeparatorToolItem" id="toolbutton11">
<property name="visible">True</property>
@@ -1855,10 +1820,4 @@
</object>
</child>
</object>
<object class="GtkImage" id="tools_menu_butoon_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">applications-utilities</property>
<property name="icon_size">3</property>
</object>
</interface>

View File

@@ -7,6 +7,7 @@
<property name="title" translatable="yes">Picons download tool</property>
<property name="resizable">False</property>
<property name="modal">True</property>
<property name="destroy_with_parent">True</property>
<property name="icon_name">emblem-photos</property>
<property name="type_hint">dialog</property>
<child internal-child="vbox">
@@ -53,6 +54,72 @@
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="column_spacing">2</property>
<property name="column_homogeneous">True</property>
<child>
<object class="GtkEntry" id="ip_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="picons_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="ip_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Receiver IP:</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="res_picons_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Receiver picons path:</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</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="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="url_label">
<property name="visible">True</property>
@@ -63,7 +130,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
<property name="position">2</property>
</packing>
</child>
<child>
@@ -71,25 +138,27 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="primary_icon_stock">gtk-edit</property>
<property name="primary_icon_activatable">False</property>
<property name="placeholder_text" translatable="yes">https://www.lyngsat.com/packages/'your-provider'.html</property>
<property name="input_purpose">url</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="picons_dir_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Data directory:</property>
<property name="label" translatable="yes">Current picons path:</property>
<property name="xalign">0.019999999552965164</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
<property name="position">4</property>
</packing>
</child>
<child>
@@ -97,11 +166,12 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="primary_icon_name">emblem-photos</property>
<property name="primary_icon_activatable">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
<property name="position">5</property>
</packing>
</child>
<child>
@@ -113,7 +183,7 @@
<property name="expand">False</property>
<property name="fill">True</property>
<property name="padding">2</property>
<property name="position">4</property>
<property name="position">6</property>
</packing>
</child>
<child>
@@ -182,7 +252,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
<property name="position">7</property>
</packing>
</child>
<child>
@@ -208,7 +278,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">7</property>
<property name="position">8</property>
</packing>
</child>
<child>
@@ -216,6 +286,7 @@
<property name="visible">True</property>
<property name="app_paintable">True</property>
<property name="can_focus">False</property>
<property name="show_close_button">True</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="infobar-action_area1">
<property name="can_focus">False</property>
@@ -264,7 +335,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">8</property>
<property name="position">9</property>
</packing>
</child>
</object>

View File

@@ -8,8 +8,9 @@ from . import Gtk, UI_RESOURCES_PATH
class PiconsDialog:
def __init__(self, transient, path):
def __init__(self, transient, options):
self._current_process = None
self._picons_path = options.get("picons_dir_path", "")
handlers = {"on_receive": self.on_receive,
"on_cancel": self.on_cancel,
@@ -17,14 +18,21 @@ class PiconsDialog:
"on_send": self.on_send}
builder = Gtk.Builder()
builder.add_objects_from_file(UI_RESOURCES_PATH + "picons_dialog.glade",
("picons_dialog", "receive_image", "text_buffer"))
builder.add_objects_from_file(UI_RESOURCES_PATH + "picons_dialog.glade", ("picons_dialog", "receive_image"))
builder.connect_signals(handlers)
self._dialog = builder.get_object("picons_dialog")
self._dialog.set_transient_for(transient)
self._expander = builder.get_object("expander")
self._text_view = builder.get_object("text_view")
self._info_bar = builder.get_object("info_bar")
self._ip_entry = builder.get_object("ip_entry")
self._picons_entry = builder.get_object("picons_entry")
self._url_entry = builder.get_object("url_entry")
self._picons_dir_entry = builder.get_object("picons_dir_entry")
self._ip_entry.set_text(options.get("host", ""))
self._picons_entry.set_text(options.get("picons_path", ""))
self._picons_dir_entry.set_text(self._picons_path)
def show(self):
self._dialog.run()
@@ -32,14 +40,11 @@ class PiconsDialog:
def on_receive(self, item):
self._current_process = subprocess.Popen("ls", stdout=subprocess.PIPE)
GLib.io_add_watch(self._current_process.stdout, # file descriptor
GLib.IO_IN, # condition
self.write_to_buffer) # callback
GLib.io_add_watch(self._current_process.stdout, GLib.IO_IN, self.write_to_buffer)
def write_to_buffer(self, fd, condition):
"""https://pygabriel.wordpress.com/2009/07/27/redirecting-the-stdout-on-a-gtk-textview/"""
if condition == GLib.IO_IN:
char = fd.read(1) # we read one byte per time, to avoid blocking
char = fd.read(1)
buf = self._text_view.get_buffer()
buf.insert_at_cursor(str(char))
return True
@@ -56,7 +61,7 @@ class PiconsDialog:
def on_close(self, item):
self.on_cancel(item)
self._dialog.destroy()
def on_send(self, item):
pass

View File

@@ -26,6 +26,7 @@ class SettingsDialog:
self._user_bouquet_field = builder.get_object("user_bouquet_field")
self._satellites_xml_field = builder.get_object("satellites_xml_field")
self._data_dir_field = builder.get_object("data_dir_field")
self._picons_field = builder.get_object("picons_field")
self._picons_dir_field = builder.get_object("picons_dir_field")
self._enigma_radio_button = builder.get_object("enigma_radio_button")
self._neutrino_radio_button = builder.get_object("neutrino_radio_button")
@@ -70,15 +71,16 @@ class SettingsDialog:
def set_settings(self):
options = self._options.get(self._active_profile)
self._host_field.set_text(options.get("host"))
self._port_field.set_text(options.get("port"))
self._login_field.set_text(options.get("user"))
self._password_field.set_text(options.get("password"))
self._services_field.set_text(options.get("services_path"))
self._user_bouquet_field.set_text(options.get("user_bouquet_path"))
self._satellites_xml_field.set_text(options.get("satellites_xml_path"))
self._data_dir_field.set_text(options.get("data_dir_path"))
self._picons_dir_field.set_text(options.get("data_dir_path") + "picons")
self._host_field.set_text(options.get("host", ""))
self._port_field.set_text(options.get("port", ""))
self._login_field.set_text(options.get("user", ""))
self._password_field.set_text(options.get("password", ""))
self._services_field.set_text(options.get("services_path", ""))
self._user_bouquet_field.set_text(options.get("user_bouquet_path", ""))
self._satellites_xml_field.set_text(options.get("satellites_xml_path", ""))
self._picons_field.set_text(options.get("picons_path", ""))
self._data_dir_field.set_text(options.get("data_dir_path", ""))
self._picons_dir_field.set_text(options.get("picons_dir_path", ""))
def apply_settings(self):
profile = Profile.ENIGMA_2.value if self._enigma_radio_button.get_active() else Profile.NEUTRINO_MP.value
@@ -92,7 +94,9 @@ class SettingsDialog:
options["services_path"] = self._services_field.get_text()
options["user_bouquet_path"] = self._user_bouquet_field.get_text()
options["satellites_xml_path"] = self._satellites_xml_field.get_text()
options["picons_path"] = self._picons_field.get_text()
options["data_dir_path"] = self._data_dir_field.get_text()
options["picons_dir_path"] = self._picons_dir_field.get_text()
if __name__ == "__main__":