ui: handle situation when read of a setting fails

This commit is contained in:
Peter F. Patel-Schneider 2024-03-24 11:35:02 -04:00
parent 1a874c39d7
commit 97d214f667
1 changed files with 8 additions and 1 deletions

View File

@ -41,7 +41,12 @@ logger = logging.getLogger(__name__)
def _read_async(setting, force_read, sbox, device_is_online, sensitive): def _read_async(setting, force_read, sbox, device_is_online, sensitive):
def _do_read(s, force, sb, online, sensitive): def _do_read(s, force, sb, online, sensitive):
v = s.read(not force) try:
v = s.read(not force)
except Exception as e:
v = None
if logger.isEnabledFor(logging.WARNING):
logger.warning("%s: error reading so use None (%s): %s", s.name, s._device, repr(e))
GLib.idle_add(_update_setting_item, sb, v, online, sensitive, True, priority=99) GLib.idle_add(_update_setting_item, sb, v, online, sensitive, True, priority=99)
_ui_async(_do_read, setting, force_read, sbox, device_is_online, sensitive) _ui_async(_do_read, setting, force_read, sbox, device_is_online, sensitive)
@ -564,6 +569,8 @@ class HeteroKeyControl(Gtk.HBox, Control):
if k in self._items: if k in self._items:
(lblbox, box) = self._items[k] (lblbox, box) = self._items[k]
box.set_value(v) box.set_value(v)
else:
self.sbox._failed.set_visible(True)
self.setup_visibles(value.ID if value is not None else 0) self.setup_visibles(value.ID if value is not None else 0)
def setup_visibles(self, ID): def setup_visibles(self, ID):