remember with which nickname we entered rooms. Fixes #7334
This commit is contained in:
parent
b0bc8a4958
commit
dc64ac8000
|
@ -2382,15 +2382,22 @@ class JoinGroupchatWindow:
|
||||||
server_list.append(gajim.connections[account].muc_jid['jabber'])
|
server_list.append(gajim.connections[account].muc_jid['jabber'])
|
||||||
|
|
||||||
self.recently_combobox = self.xml.get_object('recently_combobox')
|
self.recently_combobox = self.xml.get_object('recently_combobox')
|
||||||
liststore = gtk.ListStore(str)
|
liststore = gtk.ListStore(str, str)
|
||||||
self.recently_combobox.set_model(liststore)
|
self.recently_combobox.set_model(liststore)
|
||||||
cell = gtk.CellRendererText()
|
cell = gtk.CellRendererText()
|
||||||
self.recently_combobox.pack_start(cell, True)
|
self.recently_combobox.pack_start(cell, True)
|
||||||
self.recently_combobox.add_attribute(cell, 'text', 0)
|
self.recently_combobox.add_attribute(cell, 'text', 0)
|
||||||
self.recently_groupchat = gajim.config.get('recently_groupchat').split()
|
self.recently_groupchat = gajim.config.get('recently_groupchat').split()
|
||||||
for g in self.recently_groupchat:
|
for g in self.recently_groupchat:
|
||||||
self.recently_combobox.append_text(g)
|
r_jid = gajim.get_jid_without_resource(g)
|
||||||
server = gajim.get_server_from_jid(g)
|
nick = gajim.get_resource_from_jid(g)
|
||||||
|
if nick:
|
||||||
|
show = '%(nick)s on %(room_jid)s' % {'nick': nick,
|
||||||
|
'room_jid': r_jid}
|
||||||
|
else:
|
||||||
|
show = r_jid
|
||||||
|
liststore.append([show, g])
|
||||||
|
server = gajim.get_server_from_jid(r_jid)
|
||||||
if server not in server_list and not server.startswith('irc'):
|
if server not in server_list and not server.startswith('irc'):
|
||||||
server_list.append(server)
|
server_list.append(server)
|
||||||
|
|
||||||
|
@ -2456,16 +2463,19 @@ class JoinGroupchatWindow:
|
||||||
self.account = model[iter_][0].decode('utf-8')
|
self.account = model[iter_][0].decode('utf-8')
|
||||||
self.on_required_entry_changed(self._nickname_entry)
|
self.on_required_entry_changed(self._nickname_entry)
|
||||||
|
|
||||||
def _set_room_jid(self, room_jid):
|
def _set_room_jid(self, full_jid):
|
||||||
|
room_jid, nick = gajim.get_room_and_nick_from_fjid(full_jid)
|
||||||
room, server = gajim.get_name_and_server_from_jid(room_jid)
|
room, server = gajim.get_name_and_server_from_jid(room_jid)
|
||||||
self._room_jid_entry.set_text(room)
|
self._room_jid_entry.set_text(room)
|
||||||
self.server_comboboxentry.child.set_text(server)
|
self.server_comboboxentry.child.set_text(server)
|
||||||
|
if nick:
|
||||||
|
self._nickname_entry.set_text(nick)
|
||||||
|
|
||||||
def on_recently_combobox_changed(self, widget):
|
def on_recently_combobox_changed(self, widget):
|
||||||
model = widget.get_model()
|
model = widget.get_model()
|
||||||
iter_ = widget.get_active_iter()
|
iter_ = widget.get_active_iter()
|
||||||
room_jid = model[iter_][0].decode('utf-8')
|
full_jid = model[iter_][1].decode('utf-8')
|
||||||
self._set_room_jid(room_jid)
|
self._set_room_jid(full_jid)
|
||||||
|
|
||||||
def on_browse_rooms_button_clicked(self, widget):
|
def on_browse_rooms_button_clicked(self, widget):
|
||||||
server = self.server_comboboxentry.child.get_text().decode('utf-8')
|
server = self.server_comboboxentry.child.get_text().decode('utf-8')
|
||||||
|
@ -2533,9 +2543,11 @@ class JoinGroupchatWindow:
|
||||||
ErrorDialog(_('This is not a group chat'),
|
ErrorDialog(_('This is not a group chat'),
|
||||||
_('%s is not the name of a group chat.') % room_jid)
|
_('%s is not the name of a group chat.') % room_jid)
|
||||||
return
|
return
|
||||||
if room_jid in self.recently_groupchat:
|
|
||||||
self.recently_groupchat.remove(room_jid)
|
full_jid = room_jid + '/' + nickname
|
||||||
self.recently_groupchat.insert(0, room_jid)
|
if full_jid in self.recently_groupchat:
|
||||||
|
self.recently_groupchat.remove(full_jid)
|
||||||
|
self.recently_groupchat.insert(0, full_jid)
|
||||||
if len(self.recently_groupchat) > 10:
|
if len(self.recently_groupchat) > 10:
|
||||||
self.recently_groupchat = self.recently_groupchat[0:10]
|
self.recently_groupchat = self.recently_groupchat[0:10]
|
||||||
gajim.config.set('recently_groupchat',
|
gajim.config.set('recently_groupchat',
|
||||||
|
@ -2548,8 +2560,8 @@ class JoinGroupchatWindow:
|
||||||
autojoin = '0'
|
autojoin = '0'
|
||||||
# Add as bookmark, with autojoin and not minimized
|
# Add as bookmark, with autojoin and not minimized
|
||||||
name = gajim.get_nick_from_jid(room_jid)
|
name = gajim.get_nick_from_jid(room_jid)
|
||||||
gajim.interface.add_gc_bookmark(self.account, name, room_jid, autojoin,
|
gajim.interface.add_gc_bookmark(self.account, name, room_jid,
|
||||||
'0', password, nickname)
|
autojoin, '0', password, nickname)
|
||||||
|
|
||||||
if self.automatic:
|
if self.automatic:
|
||||||
gajim.automatic_rooms[self.account][room_jid] = self.automatic
|
gajim.automatic_rooms[self.account][room_jid] = self.automatic
|
||||||
|
|
Loading…
Reference in New Issue