added options widget for the epg dialog

This commit is contained in:
DYefremov
2019-04-25 00:18:49 +03:00
parent 6de0bc4201
commit e7e7c667e9
2 changed files with 182 additions and 13 deletions

View File

@@ -145,6 +145,160 @@ Author: Dmitriy Yefremov
<object class="GtkTreeModelSort" id="service_sort_model">
<property name="model">services_filter_model</property>
</object>
<object class="GtkFileFilter" id="source_filefilter">
<mime-types>
<mime-type>xml</mime-type>
</mime-types>
<patterns>
<pattern>*.xml</pattern>
<pattern>*.XML</pattern>
</patterns>
</object>
<object class="GtkPopover" id="options_popover">
<property name="can_focus">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_left">10</property>
<property name="margin_right">10</property>
<property name="margin_top">5</property>
<property name="margin_bottom">5</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">2</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Names source:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="lamedb_radiobutton">
<property name="label" translatable="yes">lamedb</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="tooltip_text" translatable="yes">Service names source.</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">xml_radiobutton</property>
<signal name="toggled" handler="on_names_source_changed" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkRadioButton" id="xml_radiobutton">
<property name="label" translatable="yes">xml</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="tooltip_text" translatable="yes">Service names source.</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">lamedb_radiobutton</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</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="GtkFileChooserButton" id="xml_chooser_button">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="create_folders">False</property>
<property name="filter">source_filefilter</property>
<property name="title" translatable="yes">Names source</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<object class="GtkSeparator">
<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">3</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">5</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkModelButton">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="text" translatable="yes">Save</property>
<property name="centered">True</property>
<signal name="clicked" handler="on_options_save" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkModelButton">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="text" translatable="yes">Close</property>
<property name="centered">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
</object>
</child>
</object>
<object class="GtkWindow" id="epg_dialog_window">
<property name="width_request">480</property>
<property name="height_request">320</property>
@@ -274,11 +428,12 @@ Author: Dmitriy Yefremov
</packing>
</child>
<child>
<object class="GtkButton" id="options_button">
<object class="GtkMenuButton" id="options_menu_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="on_options" swapped="no"/>
<property name="direction">none</property>
<property name="popover">options_popover</property>
<child>
<object class="GtkImage" id="options_button_image">
<property name="visible">True</property>
@@ -291,7 +446,7 @@ Author: Dmitriy Yefremov
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
<property name="position">3</property>
</packing>
</child>
</object>

View File

@@ -35,7 +35,9 @@ class EpgDialog:
"on_drag_begin": self.on_drag_begin,
"on_drag_data_get": self.on_drag_data_get,
"on_drag_data_received": self.on_drag_data_received,
"on_resize": self.on_resize}
"on_resize": self.on_resize,
"on_names_source_changed": self.on_names_source_changed,
"on_options_save": self.on_options_save}
self._services = services
self._ex_fav_model = fav_model
@@ -63,6 +65,9 @@ class EpgDialog:
self._filter_entry = builder.get_object("filter_entry")
self._services_filter_model = builder.get_object("services_filter_model")
self._services_filter_model.set_visible_func(self.services_filter_function)
# Options
self._lamedb_radiobutton = builder.get_object("lamedb_radiobutton")
self._xml_chooser_button = builder.get_object("xml_chooser_button")
# Setting the last size of the dialog window
window_size = self._options.get("epg_tool_window_size", None)
if window_size:
@@ -207,6 +212,16 @@ class EpgDialog:
self._bouquet_model,
Profile.ENIGMA_2).show()
@run_idle
def show_info_message(self, text, message_type):
self._info_bar.set_visible(True)
self._info_bar.set_message_type(message_type)
self._message_label.set_text(text)
def on_bouquet_popup_menu(self, menu, event):
self._assign_ref_popup_item.set_sensitive(self._current_ref)
on_popup_menu(menu, event)
# ***************** Drag-and-drop *********************#
def init_drag_and_drop(self):
@@ -235,20 +250,19 @@ class EpgDialog:
self.assign_data(model[path], data.get_text())
return False
# ***************** Options *********************#
def on_resize(self, window):
if self._options:
self._options["epg_tool_window_size"] = window.get_size()
@run_idle
def show_info_message(self, text, message_type):
self._info_bar.set_visible(True)
self._info_bar.set_message_type(message_type)
self._message_label.set_text(text)
def on_bouquet_popup_menu(self, menu, event):
self._assign_ref_popup_item.set_sensitive(self._current_ref)
on_popup_menu(menu, event)
def on_names_source_changed(self, button):
self._refs_source = RefsSource.LAMEDB if button.get_active() else RefsSource.XML
self._xml_chooser_button.set_sensitive(not button.get_active())
def on_options_save(self, item):
pass
if __name__ == "__main__":
pass