nick can now contain &, < and > in gc (fix #506)

This commit is contained in:
Yann Leboulanger 2005-06-27 09:10:29 +00:00
parent 655576e8b0
commit 4c2ff32214
1 changed files with 9 additions and 7 deletions

View File

@ -163,7 +163,6 @@ class GroupchatWindow(chat.Chat):
chat.Chat.on_chat_notebook_switch_page(self, notebook, page, page_num)
def get_role_iter(self, room_jid, role):
r = '<b>%ss</b>' % role.capitalize()
model = self.list_treeview[room_jid].get_model()
fin = False
iter = model.get_iter_root()
@ -171,7 +170,7 @@ class GroupchatWindow(chat.Chat):
return None
while not fin:
role_name = model.get_value(iter, 1)
if r == role_name:
if role == role_name:
return iter
iter = model.iter_next(iter)
if not iter:
@ -216,6 +215,9 @@ class GroupchatWindow(chat.Chat):
if model.iter_n_children(parent_iter) == 0:
model.remove(parent_iter)
def escape(self, s):
return s.replace('&', '&amp;').replace('<', '&lt;').replace('>', '&gt;')
def add_user_to_roster(self, room_jid, nick, show, role, jid, affiliation):
model = self.list_treeview[room_jid].get_model()
image = self.plugin.roster.jabber_state_images[show]
@ -230,9 +232,9 @@ class GroupchatWindow(chat.Chat):
role_iter = self.get_role_iter(room_jid, role)
if not role_iter:
role_iter = model.append(None,
(self.plugin.roster.jabber_state_images['closed'],
(self.plugin.roster.jabber_state_images['closed'], role,
'<b>%ss</b>' % role.capitalize()))
iter = model.append(role_iter, (image, nick))
iter = model.append(role_iter, (image, nick, self.escape(nick)))
self.contacts[room_jid][nick] = Contact(jid = j, name = nick,
show = show, resource = resource, role = role,
affiliation = affiliation)
@ -885,8 +887,8 @@ class GroupchatWindow(chat.Chat):
xm.signal_autoconnect(self)
self.gc_actions_menu = xm.get_widget('gc_actions_menu')
#status_image, nickname
store = gtk.TreeStore(gtk.Image, str)
#status_image, nickname, shown_nick
store = gtk.TreeStore(gtk.Image, str, str)
store.set_sort_column_id(1, gtk.SORT_ASCENDING)
column = gtk.TreeViewColumn('contacts')
renderer_image = cell_renderer_image.CellRendererImage()
@ -895,7 +897,7 @@ class GroupchatWindow(chat.Chat):
column.add_attribute(renderer_image, 'image', 0)
renderer_text = gtk.CellRendererText()
column.pack_start(renderer_text, expand = True)
column.set_attributes(renderer_text, markup=1)
column.set_attributes(renderer_text, markup = 2)
column.set_cell_data_func(renderer_image, self.tree_cell_data_func, None)
column.set_cell_data_func(renderer_text, self.tree_cell_data_func, None)