[Campey] handle optional muc bookmark tags. Fixes #1438
This commit is contained in:
parent
647e033c2d
commit
8458730327
|
@ -2315,7 +2315,12 @@ class Connection:
|
||||||
iq4.setAttr('jid', bm['jid'])
|
iq4.setAttr('jid', bm['jid'])
|
||||||
iq4.setAttr('autojoin', bm['autojoin'])
|
iq4.setAttr('autojoin', bm['autojoin'])
|
||||||
iq4.setAttr('name', bm['name'])
|
iq4.setAttr('name', bm['name'])
|
||||||
|
# Only add optional elements if not empty
|
||||||
|
# Note: need to handle both None and '' as empty
|
||||||
|
# thus shouldn't use "is not None"
|
||||||
|
if bm['nick']:
|
||||||
iq5 = iq4.setTagData('nick', bm['nick'])
|
iq5 = iq4.setTagData('nick', bm['nick'])
|
||||||
|
if bm['password']:
|
||||||
iq5 = iq4.setTagData('password', bm['password'])
|
iq5 = iq4.setTagData('password', bm['password'])
|
||||||
self.to_be_sent.append(iq)
|
self.to_be_sent.append(iq)
|
||||||
|
|
||||||
|
|
|
@ -2477,46 +2477,54 @@ _('Please be sure to fill out server and room fields or remove this bookmark.'))
|
||||||
(model, iter) = selection.get_selected()
|
(model, iter) = selection.get_selected()
|
||||||
|
|
||||||
if not iter:
|
if not iter:
|
||||||
#After removing the last bookmark for one account
|
# After removing the last bookmark for one account
|
||||||
#this will be None, so we will just:
|
# this will be None, so we will just:
|
||||||
return
|
return
|
||||||
|
|
||||||
widgets = [ self.title_entry, self.nick_entry, self.room_entry,
|
widgets = [ self.title_entry, self.nick_entry, self.room_entry,
|
||||||
self.server_entry, self.pass_entry, self.autojoin_checkbutton ]
|
self.server_entry, self.pass_entry, self.autojoin_checkbutton ]
|
||||||
|
|
||||||
if model.iter_parent(iter):
|
if model.iter_parent(iter):
|
||||||
#make the fields sensitive
|
# make the fields sensitive
|
||||||
for field in widgets:
|
for field in widgets:
|
||||||
field.set_sensitive(True)
|
field.set_sensitive(True)
|
||||||
else:
|
else:
|
||||||
#Top-level has no data (it's the account fields)
|
# Top-level has no data (it's the account fields)
|
||||||
#clear fields & make them insensitive
|
# clear fields & make them insensitive
|
||||||
self.clear_fields()
|
self.clear_fields()
|
||||||
for field in widgets:
|
for field in widgets:
|
||||||
field.set_sensitive(False)
|
field.set_sensitive(False)
|
||||||
return
|
return
|
||||||
|
|
||||||
#Fill in the data for childs
|
# Fill in the data for childs
|
||||||
self.title_entry.set_text(model[iter][1])
|
self.title_entry.set_text(model[iter][1])
|
||||||
room_jid = model[iter][2].decode('utf-8')
|
room_jid = model[iter][2].decode('utf-8')
|
||||||
try:
|
try:
|
||||||
(room, server) = room_jid.split('@')
|
(room, server) = room_jid.split('@')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
#We just added this one
|
# We just added this one
|
||||||
room = ''
|
room = ''
|
||||||
server = ''
|
server = ''
|
||||||
self.room_entry.set_text(room)
|
self.room_entry.set_text(room)
|
||||||
self.server_entry.set_text(server)
|
self.server_entry.set_text(server)
|
||||||
|
|
||||||
self.autojoin_checkbutton.set_active(model[iter][3])
|
self.autojoin_checkbutton.set_active(model[iter][3])
|
||||||
self.pass_entry.set_text(model[iter][4])
|
password = model[iter][4].decode('utf-8')
|
||||||
self.nick_entry.set_text(model[iter][5])
|
if password:
|
||||||
|
self.pass_entry.set_text(password)
|
||||||
|
else:
|
||||||
|
self.pass_entry.set_text('')
|
||||||
|
nick = model[iter][5].decode('utf-8')
|
||||||
|
if nick:
|
||||||
|
self.nick_entry.set_text(nick)
|
||||||
|
else:
|
||||||
|
self.nick_entry.set_text('')
|
||||||
|
|
||||||
def on_title_entry_changed(self, widget):
|
def on_title_entry_changed(self, widget):
|
||||||
(model, iter) = self.selection.get_selected()
|
(model, iter) = self.selection.get_selected()
|
||||||
if iter: #After removing a bookmark, we got nothing selected
|
if iter: # After removing a bookmark, we got nothing selected
|
||||||
if model.iter_parent(iter):
|
if model.iter_parent(iter):
|
||||||
#Don't clear the title field for account nodes
|
# Don't clear the title field for account nodes
|
||||||
model[iter][1] = self.title_entry.get_text()
|
model[iter][1] = self.title_entry.get_text()
|
||||||
|
|
||||||
def on_nick_entry_changed(self, widget):
|
def on_nick_entry_changed(self, widget):
|
||||||
|
|
Loading…
Reference in New Issue