Ticket #1823: gajim.fix1823.diff

File gajim.fix1823.diff, 3.9 kB (added by misc, 2 years ago)

patch to add a "send message to group" to the contact, when multiple contact are select

  • src/roster_window.py

     
    14191419        contact = None): 
    14201420                if contact is None: 
    14211421                        dialogs.SingleMessageWindow(account, action = 'send') 
     1422                elif type(contact) == type([]): 
     1423                        dialogs.SingleMessageWindow(account, contact, 'send') 
    14221424                else: 
    14231425                        jid = contact.jid 
    14241426                        if contact.jid == gajim.get_jid_from_account(account): 
     
    18501852                edit_groups_item = gtk.MenuItem(_('Edit _Groups')) 
    18511853                menu.append(edit_groups_item) 
    18521854                edit_groups_item.connect('activate', self.on_edit_groups, list_) 
     1855                 
     1856                account = None 
     1857                for (contact, current_account) in list_: 
     1858                        # check that we use the same account for every sender 
     1859                        if account is not None and account != current_account: 
     1860                                account = None 
     1861                                break 
     1862                        account = current_account 
     1863                if account is not None: 
     1864                        send_group_message_item = gtk.MenuItem(_('Send Group M_essage')) 
     1865                        menu.append(send_group_message_item) 
     1866                        send_group_message_item.connect('activate', 
     1867                                self.on_send_single_message_menuitem_activate, account, list_) 
    18531868 
    18541869                # unsensitive if one account is not connected 
    18551870                if one_account_offline: 
  • src/dialogs.py

     
    14631463                self.cancel_button = self.xml.get_widget('cancel_button') 
    14641464                self.close_button = self.xml.get_widget('close_button') 
    14651465                self.message_tv_buffer.connect('changed', self.update_char_counter) 
     1466                if type(to) == type([]): 
     1467                        jid = ', '.join( [i[0].jid + '/' + i[0].resource for i in to]) 
     1468                        self.to_entry.set_text(jid) 
     1469                        self.to_entry.set_sensitive(False) 
     1470                else: 
     1471                        self.to_entry.set_text(to) 
    14661472                 
    1467                 self.to_entry.set_text(to) 
    1468                  
    14691473                if gajim.config.get('use_speller') and HAS_GTK_SPELL and action == 'send': 
    14701474                        try: 
    14711475                                spell1 = gtkspell.Spell(self.conversation_textview.tv) 
     
    14971501                        self.subject = '' 
    14981502                self.subject_entry.set_text(self.subject) 
    14991503 
    1500  
    15011504                if to == '': 
    15021505                        liststore = gtkgui_helpers.get_completion_liststore(self.to_entry) 
    15031506                        self.completion_dict = helpers.get_contact_dict_for_account(account) 
     
    16161619                        ErrorDialog(_('Connection not available'), 
    16171620                _('Please make sure you are connected with "%s".') % self.account) 
    16181621                        return 
    1619                 to_whom_jid = self.to_entry.get_text().decode('utf-8') 
    1620                 if self.completion_dict.has_key(to_whom_jid): 
    1621                         to_whom_jid = self.completion_dict[to_whom_jid].jid 
    1622                 subject = self.subject_entry.get_text().decode('utf-8') 
    1623                 begin, end = self.message_tv_buffer.get_bounds() 
    1624                 message = self.message_tv_buffer.get_text(begin, end).decode('utf-8') 
     1622                if type(self.to) == type([]): 
     1623                        sender_list = [i[0].jid + '/' + i[0].resource for i in self.to] 
     1624                else: 
     1625                        sender_list = [self.to_entry.get_text().decode('utf-8')] 
     1626  
     1627                for to_whom_jid in sender_list: 
     1628                        if self.completion_dict.has_key(to_whom_jid): 
     1629                                to_whom_jid = self.completion_dict[to_whom_jid].jid 
     1630                        subject = self.subject_entry.get_text().decode('utf-8') 
     1631                        begin, end = self.message_tv_buffer.get_bounds() 
     1632                        message = self.message_tv_buffer.get_text(begin, end).decode('utf-8') 
    16251633 
    1626                 if to_whom_jid.find('/announce/') != -1: 
    1627                         gajim.connections[self.account].send_motd(to_whom_jid, subject, 
    1628                                 message) 
    1629                         return 
     1634                        if to_whom_jid.find('/announce/') != -1: 
     1635                                gajim.connections[self.account].send_motd(to_whom_jid, subject, 
     1636                                        message) 
     1637                                return 
    16301638 
    1631                 # FIXME: allow GPG message some day 
    1632                 gajim.connections[self.account].send_message(to_whom_jid, message, 
    1633                         keyID = None, type = 'normal', subject=subject) 
    1634                  
     1639                        # FIXME: allow GPG message some day 
     1640                        gajim.connections[self.account].send_message(to_whom_jid, message, 
     1641                                keyID = None, type = 'normal', subject=subject) 
     1642                         
    16351643                self.subject_entry.set_text('') # we sent ok, clear the subject 
    16361644                self.message_tv_buffer.set_text('') # we sent ok, clear the textview 
    16371645