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/ec6c6cc6185990caa6e925cc1e9d285c8094cf02...c615db3f18c78fbff0b72b336d37d554bb2e8fd9

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/compare/ec6c6cc6185990caa6e925cc1e9d285c8094cf02...c615db3f18c78fbff0b72b336d37d554bb2e8fd9
You're receiving this email because of your account on dev.gajim.org.


_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to