fix service status info

This commit is contained in:
DYefremov
2020-02-29 21:15:24 +03:00
parent 66f067340d
commit 0c8592fb0d
2 changed files with 17 additions and 11 deletions

View File

@@ -227,7 +227,7 @@ class Application(Gtk.Application):
self._save_header_button.bind_property("visible", builder.get_object("save_menu_button"), "visible")
self._signal_level_bar.bind_property("visible", builder.get_object("play_current_service_button"), "visible")
self._receiver_info_box.bind_property("visible", self._http_status_image, "visible", 4)
self._receiver_info_box.bind_property("visible", builder.get_object("signal_box"), "visible")
self._receiver_info_box.bind_property("visible", self._signal_box, "visible")
# 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._fav_view.connect("key-press-event", self.force_ctrl)
@@ -1924,25 +1924,26 @@ class Application(Gtk.Application):
def update_receiver_info(self, info):
error_code = info.get("error_code", 0) if info else 0
GLib.idle_add(self._receiver_info_box.set_visible, error_code == 0, priority=GLib.PRIORITY_LOW)
if error_code < 0:
return
elif error_code == 412:
self._http_api.init()
return
res_info = info.get("e2about", None) if info else None
if res_info:
srv_name = info.get("e2servicename", None) if info else None
if srv_name:
image = info.get("e2distroversion", "")
image_ver = info.get("e2imageversion", "")
model = info.get("e2model", "")
info_text = "{} Image: {} {}".format(model, image, image_ver)
GLib.idle_add(self._receiver_info_label.set_text, info_text, priority=GLib.PRIORITY_LOW)
service_name = info.get("e2servicename", None) or ""
service_name = srv_name or ""
GLib.idle_add(self._service_name_label.set_text, service_name, priority=GLib.PRIORITY_LOW)
if service_name:
self.update_service_info()
GLib.idle_add(self._signal_box.set_visible, bool(srv_name), priority=GLib.PRIORITY_LOW)
def update_service_info(self):
if self._http_api:
self._http_api.send(HttpRequestType.SIGNAL, None, self.update_signal)
@@ -1954,18 +1955,22 @@ class Application(Gtk.Application):
@lru_cache(maxsize=2)
def set_signal(self, val):
val = val.strip().rstrip("%") or 0
with suppress(ValueError):
self._signal_level_bar.set_value(int(val))
GLib.idle_add(self._signal_level_bar.set_visible, val != "N/A")
try:
val = int(val)
self._signal_level_bar.set_value(val)
except ValueError:
pass # NOP
finally:
GLib.idle_add(self._signal_level_bar.set_visible, val != 0 and val != "N/A")
@run_idle
def update_status(self, evn):
if evn:
s_duration = evn.get("e2eventstart", 0)
self._service_epg_label.set_visible(bool(s_duration))
s_duration = int(evn.get("e2eventstart", 0) or 0)
self._service_epg_label.set_visible(s_duration > 0)
if not s_duration:
return
s_duration = int(s_duration)
s_time = datetime.fromtimestamp(s_duration)
end_time = datetime.fromtimestamp(s_duration + int(evn.get("e2eventduration", "0") or "0"))
title = evn.get("e2eventtitle", "")

View File

@@ -2966,6 +2966,7 @@ Author: Dmitriy Yefremov
<property name="tooltip_text" translatable="yes">Current service</property>
<property name="justify">fill</property>
<property name="ellipsize">end</property>
<property name="max_width_chars">35</property>
<property name="xalign">1</property>
<attributes>
<attribute name="size" value="8000"/>