ui: add forced-refresh argument to window update

This commit is contained in:
Peter F. Patel-Schneider 2020-09-26 08:04:07 -04:00
parent 9f7c7209fe
commit 2654b6bbe0
2 changed files with 8 additions and 8 deletions

View File

@ -160,7 +160,7 @@ def run_loop(startup_hook, shutdown_hook, use_tray, show_window, args=None):
# #
def _status_changed(device, alert, reason): def _status_changed(device, alert, reason, refresh=False):
assert device is not None assert device is not None
if _log.isEnabledFor(_DEBUG): if _log.isEnabledFor(_DEBUG):
_log.debug('status changed: %s (%s) %s', device, alert, reason) _log.debug('status changed: %s (%s) %s', device, alert, reason)
@ -170,11 +170,11 @@ def _status_changed(device, alert, reason):
tray.attention(reason) tray.attention(reason)
need_popup = alert & ALERT.SHOW_WINDOW need_popup = alert & ALERT.SHOW_WINDOW
window.update(device, need_popup) window.update(device, need_popup, refresh)
if alert & (ALERT.NOTIFICATION | ALERT.ATTENTION): if alert & (ALERT.NOTIFICATION | ALERT.ATTENTION):
notify.show(device, reason) notify.show(device, reason)
def status_changed(device, alert=ALERT.NONE, reason=None): def status_changed(device, alert=ALERT.NONE, reason=None, refresh=False):
GLib.idle_add(_status_changed, device, alert, reason) GLib.idle_add(_status_changed, device, alert, reason, refresh)

View File

@ -840,7 +840,7 @@ def destroy(_ignore1=None, _ignore2=None):
_model = None _model = None
def update(device, need_popup=False): def update(device, need_popup=False, refresh=False):
if _window is None: if _window is None:
return return
@ -877,7 +877,7 @@ def update(device, need_popup=False):
item = _device_row(path, device.number, device if bool(device) else None) item = _device_row(path, device.number, device if bool(device) else None)
if bool(device) and item: if bool(device) and item:
update_device(device, item, selected_device_id, need_popup) update_device(device, item, selected_device_id, need_popup, full=refresh)
elif item: elif item:
_model.remove(item) _model.remove(item)
_config_panel.clean(device) _config_panel.clean(device)
@ -886,7 +886,7 @@ def update(device, need_popup=False):
_tree.expand_all() _tree.expand_all()
def update_device(device, item, selected_device_id, need_popup): def update_device(device, item, selected_device_id, need_popup, full=False):
was_online = _model.get_value(item, _COLUMN.ACTIVE) was_online = _model.get_value(item, _COLUMN.ACTIVE)
is_online = bool(device.online) is_online = bool(device.online)
_model.set_value(item, _COLUMN.ACTIVE, is_online) _model.set_value(item, _COLUMN.ACTIVE, is_online)
@ -912,5 +912,5 @@ def update_device(device, item, selected_device_id, need_popup):
if selected_device_id is None or need_popup: if selected_device_id is None or need_popup:
select(device.receiver.path if device.receiver else device.path, device.number) select(device.receiver.path if device.receiver else device.path, device.number)
elif selected_device_id == (device.receiver.path if device.receiver else device.path, device.number): elif selected_device_id == (device.receiver.path if device.receiver else device.path, device.number):
full_update = need_popup or was_online != is_online full_update = full or was_online != is_online
_update_info_panel(device, full=full_update) _update_info_panel(device, full=full_update)