mirror of
https://github.com/DYefremov/DemonEditor.git
synced 2026-03-10 22:51:05 +01:00
add settings popover for EPG tab
This commit is contained in:
@@ -251,6 +251,7 @@ class EpgSettingsPopover(Gtk.Popover):
|
||||
builder = get_builder(f"{UI_RESOURCES_PATH}epg{SEP}settings.glade", handlers)
|
||||
self.add(builder.get_object("main_box"))
|
||||
|
||||
self._src_selection_box = builder.get_object("source_selection_box")
|
||||
self._http_src_button = builder.get_object("http_src_button")
|
||||
self._xml_src_button = builder.get_object("xml_src_button")
|
||||
self._dat_src_button = builder.get_object("dat_src_button")
|
||||
@@ -341,6 +342,33 @@ class EpgSettingsPopover(Gtk.Popover):
|
||||
self.init()
|
||||
|
||||
|
||||
class TabEpgSettingsPopover(EpgSettingsPopover):
|
||||
|
||||
def init(self):
|
||||
self._xml_src_button.set_active(True)
|
||||
self._http_src_button.set_visible(False)
|
||||
self._src_selection_box.set_visible(False)
|
||||
|
||||
settings = self._app.app_settings
|
||||
self._interval_button.set_value(settings.epg_update_interval)
|
||||
self._url_combo_box.get_model().clear()
|
||||
[self._url_combo_box.append(i, i) for i in settings.epg_xml_sources if i]
|
||||
self._url_combo_box.set_active_id(settings.epg_xml_source)
|
||||
|
||||
def on_apply(self, button):
|
||||
settings = self._app.app_settings
|
||||
xml_src = self._url_combo_box.get_active_id()
|
||||
update_interval = self._interval_button.get_value()
|
||||
|
||||
if xml_src != settings.epg_xml_source or update_interval != settings.epg_update_interval:
|
||||
self._app.emit("epg-settings-changed", settings)
|
||||
|
||||
settings.epg_update_interval = update_interval
|
||||
settings.epg_xml_source = xml_src
|
||||
settings.epg_xml_sources = [r[0] for r in self._url_combo_box.get_model()]
|
||||
self.popdown()
|
||||
|
||||
|
||||
class EpgTool(Gtk.Box):
|
||||
def __init__(self, app, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
@@ -372,6 +400,8 @@ class EpgTool(Gtk.Box):
|
||||
self._filter_button = builder.get_object("epg_filter_button")
|
||||
self._filter_entry = builder.get_object("epg_filter_entry")
|
||||
self._multi_epg_button = builder.get_object("multi_epg_button")
|
||||
self._epg_options_button = builder.get_object("epg_options_button")
|
||||
self._epg_options_button.connect("realize", lambda b: b.set_popover(TabEpgSettingsPopover(self._app)))
|
||||
self._event_count_label = builder.get_object("event_count_label")
|
||||
self.pack_start(builder.get_object("epg_frame"), True, True, 0)
|
||||
# Custom data functions.
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2018-2022 Dmitriy Yefremov
|
||||
Copyright (c) 2018-2023 Dmitriy Yefremov
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
@@ -26,7 +26,7 @@ THE SOFTWARE.
|
||||
Author: Dmitriy Yefremov
|
||||
|
||||
-->
|
||||
<interface>
|
||||
<interface domain="demon-editor">
|
||||
<requires lib="gtk+" version="3.22"/>
|
||||
<!-- interface-license-type mit -->
|
||||
<!-- interface-name DemonEditor -->
|
||||
@@ -50,8 +50,8 @@ Author: Dmitriy Yefremov
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">2</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<object class="GtkLabel" id="src_label">
|
||||
<property name="visible" bind-source="source_selection_box" bind-property="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="label" translatable="yes">Source:</property>
|
||||
@@ -132,6 +132,7 @@ Author: Dmitriy Yefremov
|
||||
<object class="GtkBox" id="interval_box">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-top">5</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="interval_label">
|
||||
|
||||
Reference in New Issue
Block a user