clean obsolete settings controls when devices are unpaired
This commit is contained in:
parent
dffe6f8b91
commit
d5b311760e
|
@ -194,6 +194,8 @@ def update(box, device, is_active):
|
||||||
_update_setting_item(sbox, None, False)
|
_update_setting_item(sbox, None, False)
|
||||||
|
|
||||||
|
|
||||||
def _remove_children(container):
|
def clean(box, device_id):
|
||||||
container.foreach(lambda x, _: container.remove(x), None)
|
partial_key = device_id + '_'
|
||||||
|
for k in list(box._items.keys()):
|
||||||
|
if k.startswith(partial_key):
|
||||||
|
del box._items[k]
|
||||||
|
|
|
@ -646,10 +646,11 @@ def update(device, need_popup=False):
|
||||||
selected_device_id = _find_selected_device_id()
|
selected_device_id = _find_selected_device_id()
|
||||||
|
|
||||||
if device.kind is None:
|
if device.kind is None:
|
||||||
|
# receiver
|
||||||
is_alive = bool(device)
|
is_alive = bool(device)
|
||||||
item = _receiver_row(device.path, device if is_alive else None)
|
item = _receiver_row(device.path, device if is_alive else None)
|
||||||
assert item
|
assert item
|
||||||
if is_alive:
|
if is_alive and item:
|
||||||
_model.set_value(item, _COLUMN.ACTIVE, True)
|
_model.set_value(item, _COLUMN.ACTIVE, True)
|
||||||
is_pairing = is_alive and device.status.lock_open
|
is_pairing = is_alive and device.status.lock_open
|
||||||
_model.set_value(item, _COLUMN.STATUS_ICON, 'network-wireless' if is_pairing else '')
|
_model.set_value(item, _COLUMN.STATUS_ICON, 'network-wireless' if is_pairing else '')
|
||||||
|
@ -661,12 +662,13 @@ def update(device, need_popup=False):
|
||||||
separator = _model.iter_next(item)
|
separator = _model.iter_next(item)
|
||||||
_model.remove(separator)
|
_model.remove(separator)
|
||||||
_model.remove(item)
|
_model.remove(item)
|
||||||
|
# _config_panel.clean(device.path)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
# peripheral
|
||||||
is_alive = device.status is not None
|
is_alive = device.status is not None
|
||||||
item = _device_row(device.receiver.path, device.serial, device if is_alive else None)
|
item = _device_row(device.receiver.path, device.serial, device if is_alive else None)
|
||||||
assert item
|
if is_alive and item:
|
||||||
if is_alive:
|
|
||||||
_model.set_value(item, _COLUMN.ACTIVE, bool(device.status))
|
_model.set_value(item, _COLUMN.ACTIVE, bool(device.status))
|
||||||
battery_level = device.status.get(_BATTERY_LEVEL)
|
battery_level = device.status.get(_BATTERY_LEVEL)
|
||||||
if battery_level is None:
|
if battery_level is None:
|
||||||
|
@ -681,11 +683,9 @@ def update(device, need_popup=False):
|
||||||
elif selected_device_id == device.serial:
|
elif selected_device_id == device.serial:
|
||||||
_update_info_panel(device, need_popup)
|
_update_info_panel(device, need_popup)
|
||||||
|
|
||||||
else:
|
elif item:
|
||||||
_model.remove(item)
|
_model.remove(item)
|
||||||
|
_config_panel.clean(device.path)
|
||||||
if is_alive:
|
|
||||||
select(device.receiver.path, device.serial)
|
|
||||||
|
|
||||||
# make sure all rows are visible
|
# make sure all rows are visible
|
||||||
_tree.expand_all()
|
_tree.expand_all()
|
||||||
|
|
Loading…
Reference in New Issue