Philipp Hörist pushed to branch master at gajim / gajim
Commits: c8f8569f by lovetox at 2022-01-11T22:57:41+01:00 Menu: Refactor roster menu
- - - - - c615db3f by lovetox at 2022-01-11T23:01:12+01:00 ContactInfo: Stop spinner when erros are received
- - - - -
2 changed files:
- gajim/gtk/contact_info.py - gajim/gtk/menus.py
Changes:
===================================== gajim/gtk/contact_info.py ===================================== @@ -272,7 +272,7 @@ def _set_os_info(self, task: Task) -> None: result = task.finish() except Exception as err: log.warning('Could not retrieve software version: %s', err) - return + result = None
resource = task.get_user_data() device_grid = self._devices[resource] @@ -285,7 +285,7 @@ def _set_entity_time(self, task: Task) -> None: entity_time = task.finish() except Exception as err: log.warning('Could not retrieve entity time: %s', err) - return + entity_time = None
resource = task.get_user_data()
@@ -464,22 +464,24 @@ def __init__(self, contact: ResourceContact) -> None: def widget(self) -> Gtk.Grid: return self._ui.devices_grid
- def set_entity_time(self, entity_time: str) -> None: - self._ui.time_value.set_text(entity_time) - self._ui.time_value.show() - self._ui.time_label.show() + def set_entity_time(self, entity_time: Optional[str]) -> None: + if entity_time is not None: + self._ui.time_value.set_text(entity_time) + self._ui.time_value.show() + self._ui.time_label.show()
self._check_complete()
- def set_software(self, software: SoftwareVersionResult) -> None: - software_string = '%s %s' % (software.name, software.version) - self._ui.software_value.set_text(software_string) - self._ui.software_value.show() - self._ui.software_label.show() - if software.os is not None: - self._ui.system_value.set_text(software.os) - self._ui.system_value.show() - self._ui.system_label.show() + def set_software(self, software: Optional[SoftwareVersionResult]) -> None: + if software is not None: + software_string = '%s %s' % (software.name, software.version) + self._ui.software_value.set_text(software_string) + self._ui.software_value.show() + self._ui.software_label.show() + if software.os is not None: + self._ui.system_value.set_text(software.os) + self._ui.system_value.show() + self._ui.system_label.show()
self._check_complete()
===================================== gajim/gtk/menus.py ===================================== @@ -407,29 +407,25 @@ def get_conv_uri_context_menu(account: str, uri: URI) -> Optional[Gtk.Menu]:
def get_roster_menu(account: str, jid: str, gateway: bool = False) -> Gio.Menu: + + block_label = _('Block…') if jid_is_blocked(account, jid): block_label = _('Unblock') - else: - block_label = _('Block…') - menu_items = [ - ('contact-info', _('Information')), - ('execute-command', _('Execute Command…')), - ('block-contact', block_label), - ('remove-contact', _('Remove…')), + + value = f'"{jid}"' + + menuitems: MenuItemListT = [ + (_('Information'), f'win.contact-info-{account}', value), + (_('Execute Command…'), f'win.execute-command-{account}', value), + (block_label, f'win.block-contact-{account}', value), + (_('Remove…'), f'win.remove-contact-{account}', value), ] - if gateway: - menu_items.insert(1, ('modify-gateway', _('Modify Gateway…')))
- menu = Gio.Menu() - for item in menu_items: - action, label = item - action = f'win.{action}-{account}' - menuitem = Gio.MenuItem.new(label, action) - variant = GLib.Variant('s', jid) - menuitem.set_action_and_target_value(action, variant) - menu.append_item(menuitem) + if gateway: + menuitems.insert( + 1, (_('Modify Gateway…'), f'win.modify-gateway-{account}', value))
- return menu + return make_menu(menuitems)
def get_subscription_menu(account: str, jid: JID) -> Gio.Menu:
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/compare/ec6c6cc6185990caa6e925cc1e9d285c...