[gerald] add protocol pixbuf in add contact dialog. Fixes #3269

This commit is contained in:
Yann Leboulanger 2007-07-05 06:25:21 +00:00
parent 5e46f22960
commit a410e1e66a
1 changed files with 19 additions and 9 deletions

View File

@ -513,20 +513,30 @@ _('Please fill in the data of the contact you want to add in account %s') %accou
self.agents[type_].append(jid_) self.agents[type_].append(jid_)
self.available_types.append(type_) self.available_types.append(type_)
liststore = gtk.ListStore(str) liststore = gtk.ListStore(str)
self.group_comboboxentry.set_model(liststore) self.group_comboboxentry.set_model(liststore)
liststore = gtk.ListStore(str, str) # Combobox with transport/jabber icons
liststore = gtk.ListStore(str, gtk.gdk.Pixbuf, str)
cell = gtk.CellRendererPixbuf()
self.protocol_combobox.pack_start(cell, False)
self.protocol_combobox.add_attribute(cell, 'pixbuf', 1)
cell = gtk.CellRendererText()
cell.set_property('xpad', 5)
self.protocol_combobox.pack_start(cell, True)
self.protocol_combobox.add_attribute(cell, 'text', 0)
self.protocol_combobox.set_model(liststore)
uf_type = {'jabber': 'Jabber', 'aim': 'AIM', 'gadu-gadu': 'Gadu Gadu', uf_type = {'jabber': 'Jabber', 'aim': 'AIM', 'gadu-gadu': 'Gadu Gadu',
'icq': 'ICQ', 'msn': 'MSN', 'yahoo': 'Yahoo'} 'icq': 'ICQ', 'msn': 'MSN', 'yahoo': 'Yahoo'}
# Jabber as first # Jabber as first
liststore.append(['Jabber', 'jabber']) img = gajim.interface.roster.jabber_state_images['16']['online']
liststore.append(['Jabber', img.get_pixbuf(), 'jabber'])
for type_ in self.agents: for type_ in self.agents:
if type_ == 'jabber': if type_ == 'jabber':
continue continue
img = gajim.interface.roster.transports_state_images['16'][type_]['online']
if type_ in uf_type: if type_ in uf_type:
liststore.append([uf_type[type_], type_]) liststore.append([uf_type[type_], img.get_pixbuf(), type_])
else: else:
liststore.append([type_, type_]) liststore.append([type_, img.get_pixbuf(), type_])
self.protocol_combobox.set_model(liststore)
self.protocol_combobox.set_active(0) self.protocol_combobox.set_active(0)
self.protocol_jid_combobox.set_no_show_all(True) self.protocol_jid_combobox.set_no_show_all(True)
self.protocol_jid_combobox.hide() self.protocol_jid_combobox.hide()
@ -554,7 +564,7 @@ _('Please fill in the data of the contact you want to add in account %s') %accou
iter = model.get_iter_first() iter = model.get_iter_first()
i = 0 i = 0
while iter: while iter:
if model[iter][1] == type_: if model[iter][2] == type_:
self.protocol_combobox.set_active(i) self.protocol_combobox.set_active(i)
break break
iter = model.iter_next(iter) iter = model.iter_next(iter)
@ -629,7 +639,7 @@ _('Please fill in the data of the contact you want to add in account %s') %accou
model = self.protocol_combobox.get_model() model = self.protocol_combobox.get_model()
iter = self.protocol_combobox.get_active_iter() iter = self.protocol_combobox.get_active_iter()
type_ = model[iter][1] type_ = model[iter][2]
if type_ != 'jabber': if type_ != 'jabber':
transport = self.protocol_jid_combobox.get_active_text().decode( transport = self.protocol_jid_combobox.get_active_text().decode(
'utf-8') 'utf-8')
@ -683,7 +693,7 @@ _('Please fill in the data of the contact you want to add in account %s') %accou
def on_protocol_combobox_changed(self, widget): def on_protocol_combobox_changed(self, widget):
model = widget.get_model() model = widget.get_model()
iter = widget.get_active_iter() iter = widget.get_active_iter()
type_ = model[iter][1] type_ = model[iter][2]
model = self.protocol_jid_combobox.get_model() model = self.protocol_jid_combobox.get_model()
model.clear() model.clear()
if len(self.agents[type_]): if len(self.agents[type_]):