Ticket #378: patch-gajim-rosterx-send.diff

File patch-gajim-rosterx-send.diff, 3.8 kB (added by mibus@…, 2 years ago)

rosterx sending patch

  • src/roster_window.py

     
    33753375                        data = model[path][C_JID] 
    33763376                selection.set(selection.target, 8, data) 
    33773377 
     3378 
     3379        def on_drop_rosterx(self, widget, account_source, c_source, account_dest, 
     3380                c_dest, was_big_brother, context, etime): 
     3381                msg = common.xmpp.Message (to = c_dest.get_full_jid(), body = _('Sent contact "%s" (%s)' % (c_source.get_full_jid(), c_source.get_shown_name()))) 
     3382                x = msg.addChild (name='x', namespace='http://jabber.org/protocol/rosterx') 
     3383                x.addChild (name='item', attrs={'action':'add','jid':c_source.jid,'name':c_source.get_shown_name()}) 
     3384                gajim.connections[account_dest].send_stanza (msg) 
     3385 
    33783386        def on_drop_in_contact(self, widget, account_source, c_source, account_dest, 
    33793387                c_dest, was_big_brother, context, etime): 
    33803388                # children must take the new tag too, so remember old tag 
     
    35583566                        if not c_dest: 
    35593567                                # c_dest is None if jid_dest doesn't belong to account 
    35603568                                return 
    3561                         self.on_drop_in_contact(treeview, account_source, c_source, 
    3562                                 account_dest, c_dest, is_big_brother, context, etime) 
    3563                         return 
     3569##                      self.on_drop_in_contact(treeview, account_source, c_source, 
     3570##                              account_dest, c_dest, is_big_brother, context, etime) 
     3571##                      return 
    35643572                # We upgrade only the first user because user2.groups is a pointer to 
    35653573                # user1.groups 
    35663574                if context.action == gtk.gdk.ACTION_COPY: 
     
    35683576                                context, etime) 
    35693577                else: 
    35703578                        menu = gtk.Menu() 
    3571                         item = gtk.MenuItem(_('Drop %s in group %s') % (c_source.name, 
    3572                                 grp_dest)) 
    3573                         item.connect('activate', self.on_drop_in_group, account_dest, c_source, 
    3574                                 grp_dest, context, etime, grp_source) 
    3575                         menu.append(item) 
     3579 
     3580                        if grp_source != grp_dest: 
     3581                                item = gtk.MenuItem(_('Drop %s in group %s') % (c_source.name, 
     3582                                        grp_dest)) 
     3583                                item.connect('activate', self.on_drop_in_group, account_dest, c_source, 
     3584                                        grp_dest, context, etime, grp_source) 
     3585                                menu.append(item) 
     3586 
    35763587                        c_dest = gajim.contacts.get_contact_with_highest_priority( 
    35773588                                account_dest, jid_dest) 
    35783589                        item = gtk.MenuItem(_('Make %s and %s metacontacts') % (c_source.name, 
     
    35853596                         
    35863597                        menu.append(item) 
    35873598 
     3599                        item = gtk.MenuItem(_('Send %s to %s') % (c_source.name, c_dest.name)) 
     3600                        item.connect('activate', self.on_drop_rosterx, account_source, c_source, account_dest, c_dest, is_big_brother, context, etime) 
     3601                        menu.append(item) 
     3602 
    35883603                        menu.attach_to_widget(self.tree, None) 
    35893604                        menu.connect('selection-done', gtkgui_helpers.destroy_widget) 
    35903605                        menu.show_all() 
  • src/common/connection_handlers.py

     
    662662                feature = common.xmpp.Node('feature') 
    663663                feature.setAttr('var', common.xmpp.NS_FILE) 
    664664                query.addChild(node=feature) 
     665                # roster exchange 
     666                feauture = common.xmpp.Node('feature') 
     667                feature.setAttr('var', common.xmpp.NS_ROSTERX) 
     668                query.addChild(node=feature) 
    665669                 
    666670                self.connection.send(iq) 
    667671                raise common.xmpp.NodeProcessed 
     
    710714                q.addChild('feature', attrs = {'var': common.xmpp.NS_SI}) 
    711715                q.addChild('feature', attrs = {'var': common.xmpp.NS_FILE}) 
    712716                q.addChild('feature', attrs = {'var': common.xmpp.NS_MUC}) 
     717                q.addChild('feature', attrs = {'var': common.xmpp.NS_ROSTERX}) 
    713718                self.connection.send(iq) 
    714719                raise common.xmpp.NodeProcessed 
    715720 
     
    789794                ''' advertise our capabilities in presence stanza (jep-0115)''' 
    790795                c = p.setTag('c', namespace = common.xmpp.NS_CAPS) 
    791796                c.setAttr('node', 'http://gajim.org/caps') 
    792                 c.setAttr('ext', 'ftrans') 
     797                c.setAttr('ext', 'ftrans rosterx') 
    793798                c.setAttr('ver', gajim.version) 
    794799                return p 
    795800