Philipp Hörist pushed to branch master at gajim / gajim


Commits:
ec46547c by bodqhrohro at 2022-06-21T18:53:28+00:00
fix: Use nickname provided in subscription requests everywhere

The nickname is now also shown in the notification and passed to the AddContact 
dialog, which afterwards adds the nickname to the roster.

- - - - -


1 changed file:

- gajim/gtk/notification_manager.py


Changes:

=====================================
gajim/gtk/notification_manager.py
=====================================
@@ -66,15 +66,15 @@ def _on_destroy(self, *args: Any) -> None:
 
     def _add_actions(self) -> None:
         actions = [
-            ('subscription-accept', self._on_subscription_accept),
-            ('subscription-deny', self._on_subscription_deny),
-            ('subscription-block', self._on_subscription_block),
-            ('subscription-report', self._on_subscription_report),
+            ('subscription-accept', self._on_subscription_accept, 'as'),
+            ('subscription-deny', self._on_subscription_deny, 's'),
+            ('subscription-block', self._on_subscription_block, 's'),
+            ('subscription-report', self._on_subscription_report, 's'),
         ]
         for action in actions:
-            action_name, func = action
+            action_name, func, typ = action
             act = Gio.SimpleAction.new(
-                f'{action_name}-{self._account}', GLib.VariantType.new('s'))
+                f'{action_name}-{self._account}', GLib.VariantType.new(typ))
             act.connect('activate', func)
             app.window.add_action(act)
 
@@ -123,14 +123,14 @@ def _on_subscription_accept(self,
                                 _action: Gio.SimpleAction,
                                 param: GLib.Variant
                                 ) -> None:
-        jid = param.get_string()
+        jid, nickname = param.get_strv()
         row = self._get_notification_row(jid)
         self._client.get_module('Presence').subscribed(jid)
         jid = JID.from_string(jid)
         contact = self._client.get_module('Contacts').get_contact(jid)
         if not contact.is_in_roster:
             open_window('AddContact', account=self._account,
-                        jid=jid, nick=contact.name)
+                        jid=jid, nick=nickname or contact.name)
         if row is not None:
             row.destroy()
 
@@ -189,9 +189,12 @@ def add_subscription_request(self,
             new_row.connect('destroy', self._on_row_destroy)
             self.add(new_row)
 
-            contact = self._client.get_module('Contacts').get_contact(
-                event.jid)
-            text = _('%s asks you to share your status') % contact.name
+            nick = event.user_nick
+            if not nick:
+                contact = self._client.get_module('Contacts').get_contact(
+                    event.jid)
+                nick = contact.name
+            text = _('%s asks you to share your status') % nick
 
             app.ged.raise_event(
                 Notification(account=self._account,
@@ -330,7 +333,10 @@ def __init__(self,
         accept_button.set_valign(Gtk.Align.CENTER)
         accept_button.set_action_name(
             f'win.subscription-accept-{self._account}')
-        accept_button.set_action_target_value(GLib.Variant('s', self.jid))
+        accept_button.set_action_target_value(GLib.Variant.new_strv([
+            self.jid,
+            user_nick or ''
+        ]))
         self.grid.attach(accept_button, 3, 1, 1, 2)
 
         more_image = Gtk.Image.new_from_icon_name(



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/ec46547c3b0efb7a94b2b16e59571e2ce7d64562

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


_______________________________________________
Commits mailing list
Commits@gajim.org
https://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to