From adf5a0791935e40e0ca611c69cb5f015aaee23bc Mon Sep 17 00:00:00 2001 From: "Peter F. Patel-Schneider" Date: Wed, 29 Jun 2022 11:56:04 -0400 Subject: [PATCH] ui: better presentation of battery information --- lib/solaar/ui/window.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/solaar/ui/window.py b/lib/solaar/ui/window.py index 048a2c1d..9a3b4c18 100644 --- a/lib/solaar/ui/window.py +++ b/lib/solaar/ui/window.py @@ -678,10 +678,8 @@ def _update_device_panel(device, panel, buttons, full=False): device.status.read_battery(device) battery_level = device.status.get(_K.BATTERY_LEVEL) - battery_next_level = device.status.get(_K.BATTERY_NEXT_LEVEL) battery_voltage = device.status.get(_K.BATTERY_VOLTAGE) - - if battery_level is None: + if battery_level is None and battery_voltage is None: icon_name = _icons.battery() panel._battery._icon.set_from_icon_name(icon_name, _INFO_ICON_SIZE) panel._battery._icon.set_sensitive(False) @@ -690,24 +688,26 @@ def _update_device_panel(device, panel, buttons, full=False): panel._battery._text.set_markup('%s' % _('unknown')) panel._battery.set_tooltip_text(_('Battery information unknown.')) else: + battery_next_level = device.status.get(_K.BATTERY_NEXT_LEVEL) charging = device.status.get(_K.BATTERY_CHARGING) icon_name = _icons.battery(battery_level, charging) panel._battery._icon.set_from_icon_name(icon_name, _INFO_ICON_SIZE) panel._battery._icon.set_sensitive(True) + panel._battery._text.set_sensitive(is_online) if battery_voltage is not None: panel._battery._label.set_text(_('Battery Voltage')) - text = '%(voltage)dmV, %(level)d%%' % {'voltage': battery_voltage, 'level': battery_level} + text = '%dmV' % battery_voltage tooltip_text = _('Voltage reported by battery') - elif isinstance(battery_level, _NamedInt): - panel._battery._label.set_text(_('Battery Level')) - text = _(str(battery_level)) - tooltip_text = _('Approximate level reported by battery') else: panel._battery._label.set_text(_('Battery Level')) - text = '%(battery_percent)d%%' % {'battery_percent': battery_level} + text = '' tooltip_text = _('Approximate level reported by battery') - if battery_next_level is not None: + if battery_voltage is not None and battery_level is not None: + text += ', ' + if battery_level is not None: + text += _(str(battery_level)) if isinstance(battery_level, _NamedInt) else '%d%%' % battery_level + if battery_next_level is not None and not charging: if isinstance(battery_next_level, _NamedInt): text += ' (' + _('next reported ') + _(str(battery_next_level)) + ')' else: @@ -718,7 +718,7 @@ def _update_device_panel(device, panel, buttons, full=False): text += ' (%s)' % _('charging') else: text += ' (%s)' % _('last known') - panel._battery._text.set_sensitive(is_online) + panel._battery._text.set_markup(text) panel._battery.set_tooltip_text(tooltip_text)