[Stéphan K.] make most strings we use unicode instacnes
This commit is contained in:
parent
7c8fe928ad
commit
cec336112d
17 changed files with 350 additions and 348 deletions
|
@ -78,7 +78,7 @@ class AdvancedConfigurationWindow:
|
||||||
self.plugin.windows['advanced_config'] = self
|
self.plugin.windows['advanced_config'] = self
|
||||||
|
|
||||||
def cb_value_column_data(self, col, cell, model, iter):
|
def cb_value_column_data(self, col, cell, model, iter):
|
||||||
opttype = model[iter][2]
|
opttype = model[iter][2].decode('utf-8')
|
||||||
if opttype == 'boolean':
|
if opttype == 'boolean':
|
||||||
cell.set_property('editable', 0)
|
cell.set_property('editable', 0)
|
||||||
else:
|
else:
|
||||||
|
@ -87,14 +87,14 @@ class AdvancedConfigurationWindow:
|
||||||
def on_advanced_treeview_row_activated(self, treeview, path, column):
|
def on_advanced_treeview_row_activated(self, treeview, path, column):
|
||||||
modelpath = self.modelfilter.convert_path_to_child_path(path)
|
modelpath = self.modelfilter.convert_path_to_child_path(path)
|
||||||
modelrow = self.model[modelpath]
|
modelrow = self.model[modelpath]
|
||||||
option = modelrow[0]
|
option = modelrow[0].decode('utf-8')
|
||||||
if modelrow[2] == 'boolean':
|
if modelrow[2] == 'boolean':
|
||||||
newval = {'False': 'True', 'True': 'False'}[modelrow[1]]
|
newval = {'False': 'True', 'True': 'False'}[modelrow[1]]
|
||||||
if len(modelpath) > 1:
|
if len(modelpath) > 1:
|
||||||
optnamerow = self.model[modelpath[0]]
|
optnamerow = self.model[modelpath[0]]
|
||||||
optname = optnamerow[0]
|
optname = optnamerow[0].decode('utf-8')
|
||||||
keyrow = self.model[modelpath[:2]]
|
keyrow = self.model[modelpath[:2]]
|
||||||
key = keyrow[0]
|
key = keyrow[0].decode('utf-8')
|
||||||
gajim.config.set_per(optname, key, option, newval)
|
gajim.config.set_per(optname, key, option, newval)
|
||||||
else:
|
else:
|
||||||
gajim.config.set(option, newval)
|
gajim.config.set(option, newval)
|
||||||
|
@ -105,12 +105,13 @@ class AdvancedConfigurationWindow:
|
||||||
# convert modelfilter path to model path
|
# convert modelfilter path to model path
|
||||||
modelpath = self.modelfilter.convert_path_to_child_path(path)
|
modelpath = self.modelfilter.convert_path_to_child_path(path)
|
||||||
modelrow = self.model[modelpath]
|
modelrow = self.model[modelpath]
|
||||||
option = modelrow[0]
|
option = modelrow[0].decode('utf-8')
|
||||||
|
text = text.decode('utf-8')
|
||||||
if len(modelpath) > 1:
|
if len(modelpath) > 1:
|
||||||
optnamerow = self.model[modelpath[0]]
|
optnamerow = self.model[modelpath[0]]
|
||||||
optname = optnamerow[0]
|
optname = optnamerow[0].decode('utf-8')
|
||||||
keyrow = self.model[modelpath[:2]]
|
keyrow = self.model[modelpath[:2]]
|
||||||
key = keyrow[0]
|
key = keyrow[0].decode('utf-8')
|
||||||
gajim.config.set_per(optname, key, option, text)
|
gajim.config.set_per(optname, key, option, text)
|
||||||
else:
|
else:
|
||||||
gajim.config.set(option, text)
|
gajim.config.set(option, text)
|
||||||
|
@ -131,7 +132,7 @@ class AdvancedConfigurationWindow:
|
||||||
else:
|
else:
|
||||||
iter = model.iter_children(parent_iter)
|
iter = model.iter_children(parent_iter)
|
||||||
while iter:
|
while iter:
|
||||||
if model[iter][0] == name:
|
if model[iter][0].decode('utf-8') == name:
|
||||||
break
|
break
|
||||||
iter = model.iter_next(iter)
|
iter = model.iter_next(iter)
|
||||||
return iter
|
return iter
|
||||||
|
@ -153,19 +154,19 @@ class AdvancedConfigurationWindow:
|
||||||
model.append(iter, [name, val[OPT_VAL], type])
|
model.append(iter, [name, val[OPT_VAL], type])
|
||||||
|
|
||||||
def visible_func(self, model, iter):
|
def visible_func(self, model, iter):
|
||||||
str = self.entry.get_text()
|
str = self.entry.get_text().decode('utf-8')
|
||||||
if str is None or str == '':
|
if str is None or str == '':
|
||||||
return True # show all
|
return True # show all
|
||||||
name = model[iter][0]
|
name = model[iter][0].decode('utf-8')
|
||||||
# If a child of the iter matches, we return True
|
# If a child of the iter matches, we return True
|
||||||
if model.iter_has_child(iter):
|
if model.iter_has_child(iter):
|
||||||
iterC = model.iter_children(iter)
|
iterC = model.iter_children(iter)
|
||||||
while iterC:
|
while iterC:
|
||||||
nameC = model[iterC][0]
|
nameC = model[iterC][0].decode('utf-8')
|
||||||
if model.iter_has_child(iterC):
|
if model.iter_has_child(iterC):
|
||||||
iterCC = model.iter_children(iterC)
|
iterCC = model.iter_children(iterC)
|
||||||
while iterCC:
|
while iterCC:
|
||||||
nameCC = model[iterCC][0]
|
nameCC = model[iterCC][0].decode('utf-8')
|
||||||
if nameCC.find(str) != -1:
|
if nameCC.find(str) != -1:
|
||||||
return True
|
return True
|
||||||
iterCC = model.iter_next(iterCC)
|
iterCC = model.iter_next(iterCC)
|
||||||
|
@ -177,5 +178,5 @@ class AdvancedConfigurationWindow:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def on_advanced_entry_changed(self, widget):
|
def on_advanced_entry_changed(self, widget):
|
||||||
text = widget.get_text()
|
text = widget.get_text().decode('utf-8')
|
||||||
self.modelfilter.refilter()
|
self.modelfilter.refilter()
|
||||||
|
|
12
src/chat.py
12
src/chat.py
|
@ -114,7 +114,7 @@ class Chat:
|
||||||
unread += self.nb_unread[jid]
|
unread += self.nb_unread[jid]
|
||||||
start = ""
|
start = ""
|
||||||
if unread > 1:
|
if unread > 1:
|
||||||
start = '[' + str(unread) + '] '
|
start = '[' + unicode(unread) + '] '
|
||||||
elif unread == 1:
|
elif unread == 1:
|
||||||
start = '* '
|
start = '* '
|
||||||
chat = self.names[jid]
|
chat = self.names[jid]
|
||||||
|
@ -144,7 +144,7 @@ class Chat:
|
||||||
"""redraw the label of the tab"""
|
"""redraw the label of the tab"""
|
||||||
start = ''
|
start = ''
|
||||||
if self.nb_unread[jid] > 1:
|
if self.nb_unread[jid] > 1:
|
||||||
start = '[' + str(self.nb_unread[jid]) + '] '
|
start = '[' + unicode(self.nb_unread[jid]) + '] '
|
||||||
elif self.nb_unread[jid] == 1:
|
elif self.nb_unread[jid] == 1:
|
||||||
start = '* '
|
start = '* '
|
||||||
|
|
||||||
|
@ -490,7 +490,7 @@ class Chat:
|
||||||
gtkspell.Spell(message_textview)
|
gtkspell.Spell(message_textview)
|
||||||
except gobject.GError, msg:
|
except gobject.GError, msg:
|
||||||
#FIXME: add a ui for this use spell.set_language()
|
#FIXME: add a ui for this use spell.set_language()
|
||||||
dialogs.ErrorDialog(str(msg), _('If that is not your language for which you want to highlight misspelled words, then please set your $LANG as appropriate. Eg. for French do export LANG=fr_FR or export LANG=fr_FR.UTF-8 in ~/.bash_profile or to make it global in /etc/profile.\n\nHighlighting misspelled words feature will not be used')).get_response()
|
dialogs.ErrorDialog(unicode(msg), _('If that is not your language for which you want to highlight misspelled words, then please set your $LANG as appropriate. Eg. for French do export LANG=fr_FR or export LANG=fr_FR.UTF-8 in ~/.bash_profile or to make it global in /etc/profile.\n\nHighlighting misspelled words feature will not be used')).get_response()
|
||||||
gajim.config.set('use_speller', False)
|
gajim.config.set('use_speller', False)
|
||||||
|
|
||||||
conversation_textview = self.xmls[jid].get_widget(
|
conversation_textview = self.xmls[jid].get_widget(
|
||||||
|
@ -831,7 +831,7 @@ class Chat:
|
||||||
if return_val: # if sth was selected when we right-clicked
|
if return_val: # if sth was selected when we right-clicked
|
||||||
# get the selected text
|
# get the selected text
|
||||||
start_sel, finish_sel = return_val[0], return_val[1]
|
start_sel, finish_sel = return_val[0], return_val[1]
|
||||||
self.selected_phrase = buffer.get_text(start_sel, finish_sel)
|
self.selected_phrase = buffer.get_text(start_sel, finish_sel).decode('utf-8')
|
||||||
|
|
||||||
def print_time_timeout(self, jid):
|
def print_time_timeout(self, jid):
|
||||||
if not jid in self.xmls.keys():
|
if not jid in self.xmls.keys():
|
||||||
|
@ -934,7 +934,7 @@ class Chat:
|
||||||
#we get the end of the tag
|
#we get the end of the tag
|
||||||
while not end_iter.ends_tag(texttag):
|
while not end_iter.ends_tag(texttag):
|
||||||
end_iter.forward_char()
|
end_iter.forward_char()
|
||||||
word = begin_iter.get_text(end_iter)
|
word = begin_iter.get_text(end_iter).decode('utf-8')
|
||||||
if event.button == 3: # right click
|
if event.button == 3: # right click
|
||||||
self.make_link_menu(event, kind, word)
|
self.make_link_menu(event, kind, word)
|
||||||
else:
|
else:
|
||||||
|
@ -1193,7 +1193,7 @@ class Chat:
|
||||||
#whatever is already typed
|
#whatever is already typed
|
||||||
start_iter = conv_buf.get_start_iter()
|
start_iter = conv_buf.get_start_iter()
|
||||||
end_iter = conv_buf.get_end_iter()
|
end_iter = conv_buf.get_end_iter()
|
||||||
self.orig_msg[jid] = conv_buf.get_text(start_iter, end_iter, 0)
|
self.orig_msg[jid] = conv_buf.get_text(start_iter, end_iter, 0).decode('utf-8')
|
||||||
self.typing_new[jid] = False
|
self.typing_new[jid] = False
|
||||||
|
|
||||||
self.sent_history_pos[jid] = self.sent_history_pos[jid] - 1
|
self.sent_history_pos[jid] = self.sent_history_pos[jid] - 1
|
||||||
|
|
|
@ -219,7 +219,8 @@ class Connection:
|
||||||
self.dispatch('MYVCARD', vcard)
|
self.dispatch('MYVCARD', vcard)
|
||||||
#we re-send our presence with sha
|
#we re-send our presence with sha
|
||||||
sshow = STATUS_LIST[self.connected]
|
sshow = STATUS_LIST[self.connected]
|
||||||
prio = str(gajim.config.get_per('accounts', self.name, 'priority'))
|
prio = unicode(gajim.config.get_per('accounts', self.name,
|
||||||
|
'priority'))
|
||||||
p = common.xmpp.Presence(typ = None, priority = prio, show = sshow,
|
p = common.xmpp.Presence(typ = None, priority = prio, show = sshow,
|
||||||
status = self.status)
|
status = self.status)
|
||||||
p = self.add_sha(p)
|
p = self.add_sha(p)
|
||||||
|
@ -264,24 +265,25 @@ class Connection:
|
||||||
msgtxt = decmsg
|
msgtxt = decmsg
|
||||||
encrypted = True
|
encrypted = True
|
||||||
if mtype == 'error':
|
if mtype == 'error':
|
||||||
self.dispatch('MSGERROR', (str(msg.getFrom()),
|
self.dispatch('MSGERROR', (unicode(msg.getFrom()),
|
||||||
msg.getErrorCode(), msg.getError(), msgtxt, tim))
|
msg.getErrorCode(), msg.getError(), msgtxt, tim))
|
||||||
elif mtype == 'groupchat':
|
elif mtype == 'groupchat':
|
||||||
if subject:
|
if subject:
|
||||||
self.dispatch('GC_SUBJECT', (str(msg.getFrom()), subject))
|
self.dispatch('GC_SUBJECT', (unicode(msg.getFrom()), subject))
|
||||||
else:
|
else:
|
||||||
if not msg.getTag('body'): #no <body>
|
if not msg.getTag('body'): #no <body>
|
||||||
return
|
return
|
||||||
self.dispatch('GC_MSG', (str(msg.getFrom()), msgtxt, tim))
|
self.dispatch('GC_MSG', (unicode(msg.getFrom()), msgtxt, tim))
|
||||||
gajim.logger.write('gc', msgtxt, str(msg.getFrom()), tim = tim)
|
gajim.logger.write('gc', msgtxt, unicode(msg.getFrom()),
|
||||||
|
tim = tim)
|
||||||
elif mtype == 'normal': # it's single message
|
elif mtype == 'normal': # it's single message
|
||||||
log_msgtxt = msgtxt
|
log_msgtxt = msgtxt
|
||||||
if subject:
|
if subject:
|
||||||
log_msgtxt = _('Subject: %s\n%s') % (subject, msgtxt)
|
log_msgtxt = _('Subject: %s\n%s') % (subject, msgtxt)
|
||||||
gajim.logger.write('incoming', log_msgtxt, str(msg.getFrom()),
|
gajim.logger.write('incoming', log_msgtxt, unicode(msg.getFrom()),
|
||||||
tim = tim)
|
tim = tim)
|
||||||
self.dispatch('MSG', (str(msg.getFrom()), msgtxt, tim, encrypted,
|
self.dispatch('MSG', (unicode(msg.getFrom()), msgtxt, tim,
|
||||||
mtype, subject, None))
|
encrypted, mtype, subject, None))
|
||||||
else: # it's type 'chat'
|
else: # it's type 'chat'
|
||||||
if not msg.getTag('body') and chatstate is None: #no <body>
|
if not msg.getTag('body') and chatstate is None: #no <body>
|
||||||
return
|
return
|
||||||
|
@ -289,15 +291,15 @@ class Connection:
|
||||||
if subject:
|
if subject:
|
||||||
log_msgtxt = _('Subject: %s\n%s') % (subject, msgtxt)
|
log_msgtxt = _('Subject: %s\n%s') % (subject, msgtxt)
|
||||||
if msg.getTag('body'):
|
if msg.getTag('body'):
|
||||||
gajim.logger.write('incoming', log_msgtxt, str(msg.getFrom()),
|
gajim.logger.write('incoming', log_msgtxt,
|
||||||
tim = tim)
|
unicode(msg.getFrom()), tim = tim)
|
||||||
self.dispatch('MSG', (str(msg.getFrom()), msgtxt, tim, encrypted,
|
self.dispatch('MSG', (unicode(msg.getFrom()), msgtxt, tim,
|
||||||
mtype, subject, chatstate))
|
encrypted, mtype, subject, chatstate))
|
||||||
# END messageCB
|
# END messageCB
|
||||||
|
|
||||||
def _presenceCB(self, con, prs):
|
def _presenceCB(self, con, prs):
|
||||||
"""Called when we receive a presence"""
|
"""Called when we receive a presence"""
|
||||||
who = str(prs.getFrom())
|
who = unicode(prs.getFrom())
|
||||||
prio = prs.getPriority()
|
prio = prs.getPriority()
|
||||||
if not prio:
|
if not prio:
|
||||||
prio = 0
|
prio = 0
|
||||||
|
@ -332,17 +334,16 @@ class Connection:
|
||||||
self.to_be_sent.append(p)
|
self.to_be_sent.append(p)
|
||||||
if who.find("@") <= 0:
|
if who.find("@") <= 0:
|
||||||
self.dispatch('NOTIFY',
|
self.dispatch('NOTIFY',
|
||||||
(prs.getFrom().getStripped().encode('utf8'), 'offline',
|
(prs.getFrom().getStripped(), 'offline', 'offline',
|
||||||
'offline', prs.getFrom().getResource().encode('utf8'), prio,
|
prs.getFrom().getResource(), prio, keyID, None, None,
|
||||||
keyID, None, None, None, None, None, None))
|
None, None, None, None))
|
||||||
else:
|
else:
|
||||||
if not status:
|
if not status:
|
||||||
status = _('I would like to add you to my roster.')
|
status = _('I would like to add you to my roster.')
|
||||||
self.dispatch('SUBSCRIBE', (who, status))
|
self.dispatch('SUBSCRIBE', (who, status))
|
||||||
elif ptype == 'subscribed':
|
elif ptype == 'subscribed':
|
||||||
jid = prs.getFrom()
|
jid = prs.getFrom()
|
||||||
self.dispatch('SUBSCRIBED', (jid.getStripped().encode('utf8'),
|
self.dispatch('SUBSCRIBED', (jid.getStripped(), jid.getResource()))
|
||||||
jid.getResource().encode('utf8')))
|
|
||||||
# BE CAREFUL: no con.updateRosterItem() in a callback
|
# BE CAREFUL: no con.updateRosterItem() in a callback
|
||||||
gajim.log.debug(_('we are now subscribed to %s') % who)
|
gajim.log.debug(_('we are now subscribed to %s') % who)
|
||||||
elif ptype == 'unsubscribe':
|
elif ptype == 'unsubscribe':
|
||||||
|
@ -357,8 +358,8 @@ class Connection:
|
||||||
self.dispatch('ERROR', (_('Unable to join room'),
|
self.dispatch('ERROR', (_('Unable to join room'),
|
||||||
_('Server response:') + '\n' + errmsg))
|
_('Server response:') + '\n' + errmsg))
|
||||||
elif errcode == '502': # Internal Timeout:
|
elif errcode == '502': # Internal Timeout:
|
||||||
self.dispatch('NOTIFY', (prs.getFrom().getStripped().encode('utf8'),
|
self.dispatch('NOTIFY', (prs.getFrom().getStripped(),
|
||||||
'error', errmsg, prs.getFrom().getResource().encode('utf8'),
|
'error', errmsg, prs.getFrom().getResource(),
|
||||||
prio, keyID, prs.getRole(), prs.getAffiliation(), prs.getJid(),
|
prio, keyID, prs.getRole(), prs.getAffiliation(), prs.getJid(),
|
||||||
prs.getReason(), prs.getActor(), prs.getStatusCode(),
|
prs.getReason(), prs.getActor(), prs.getStatusCode(),
|
||||||
prs.getNewNick()))
|
prs.getNewNick()))
|
||||||
|
@ -366,10 +367,10 @@ class Connection:
|
||||||
self.dispatch('ERROR_ANSWER', ('', prs.getFrom().getStripped(),
|
self.dispatch('ERROR_ANSWER', ('', prs.getFrom().getStripped(),
|
||||||
errmsg, errcode))
|
errmsg, errcode))
|
||||||
if not ptype or ptype == 'unavailable':
|
if not ptype or ptype == 'unavailable':
|
||||||
jid = prs.getFrom()
|
jid = unicode(prs.getFrom())
|
||||||
gajim.logger.write('status', status, str(jid).encode('utf8'), show)
|
gajim.logger.write('status', status, jid, show)
|
||||||
account = prs.getFrom().getStripped().encode('utf8')
|
account = prs.getFrom().getStripped()
|
||||||
resource = prs.getFrom().getResource().encode('utf8')
|
resource = prs.getFrom().getResource()
|
||||||
self.dispatch('NOTIFY', ( account, show, status,
|
self.dispatch('NOTIFY', ( account, show, status,
|
||||||
resource, prio, keyID, prs.getRole(),
|
resource, prio, keyID, prs.getRole(),
|
||||||
prs.getAffiliation(), prs.getJid(), prs.getReason(),
|
prs.getAffiliation(), prs.getJid(), prs.getReason(),
|
||||||
|
@ -393,11 +394,11 @@ class Connection:
|
||||||
# END disconenctedCB
|
# END disconenctedCB
|
||||||
def _bytestreamErrorCB(self, con, iq_obj):
|
def _bytestreamErrorCB(self, con, iq_obj):
|
||||||
gajim.log.debug('_bytestreamErrorCB')
|
gajim.log.debug('_bytestreamErrorCB')
|
||||||
frm = str(iq_obj.getFrom())
|
frm = unicode(iq_obj.getFrom())
|
||||||
id = str(iq_obj.getAttr('id'))
|
id = unicode(iq_obj.getAttr('id'))
|
||||||
query = iq_obj.getTag('query')
|
query = iq_obj.getTag('query')
|
||||||
streamhost = query.getTag('streamhost')
|
streamhost = query.getTag('streamhost')
|
||||||
jid = iq_obj.getFrom().getStripped().encode('utf8')
|
jid = iq_obj.getFrom().getStripped()
|
||||||
id = id[3:]
|
id = id[3:]
|
||||||
if not self.files_props.has_key(id):
|
if not self.files_props.has_key(id):
|
||||||
return
|
return
|
||||||
|
@ -408,10 +409,10 @@ class Connection:
|
||||||
|
|
||||||
def _bytestreamSetCB(self, con, iq_obj):
|
def _bytestreamSetCB(self, con, iq_obj):
|
||||||
gajim.log.debug('_bytestreamSetCB')
|
gajim.log.debug('_bytestreamSetCB')
|
||||||
target = str(iq_obj.getAttr('to'))
|
target = unicode(iq_obj.getAttr('to'))
|
||||||
id = str(iq_obj.getAttr('id'))
|
id = unicode(iq_obj.getAttr('id'))
|
||||||
query = iq_obj.getTag('query')
|
query = iq_obj.getTag('query')
|
||||||
sid = str(query.getAttr('sid'))
|
sid = unicode(query.getAttr('sid'))
|
||||||
file_props = gajim.socks5queue.get_file_props(
|
file_props = gajim.socks5queue.get_file_props(
|
||||||
self.name, sid)
|
self.name, sid)
|
||||||
streamhosts=[]
|
streamhosts=[]
|
||||||
|
@ -422,15 +423,10 @@ class Connection:
|
||||||
'target': target,
|
'target': target,
|
||||||
'id': id,
|
'id': id,
|
||||||
'sid': sid,
|
'sid': sid,
|
||||||
'initiator': str(iq_obj.getFrom())
|
'initiator': unicode(iq_obj.getFrom())
|
||||||
}
|
}
|
||||||
for attr in item.getAttrs():
|
for attr in item.getAttrs():
|
||||||
val = item.getAttr(attr)
|
host_dict[attr] = item.getAttr(attr)
|
||||||
if type(val) == unicode:
|
|
||||||
val = val.encode('utf-8')
|
|
||||||
if type(attr) == unicode:
|
|
||||||
attr = attr.encode('utf-8')
|
|
||||||
host_dict[attr] = val
|
|
||||||
streamhosts.append(host_dict)
|
streamhosts.append(host_dict)
|
||||||
if file_props is None:
|
if file_props is None:
|
||||||
if self.files_props.has_key(sid):
|
if self.files_props.has_key(sid):
|
||||||
|
@ -487,7 +483,7 @@ class Connection:
|
||||||
typ = 'error')
|
typ = 'error')
|
||||||
iq.setAttr('id', _id)
|
iq.setAttr('id', _id)
|
||||||
err = iq.setTag('error')
|
err = iq.setTag('error')
|
||||||
err.setAttr('code', str(code))
|
err.setAttr('code', unicode(code))
|
||||||
err.setData(msg)
|
err.setData(msg)
|
||||||
self.to_be_sent.append(iq)
|
self.to_be_sent.append(iq)
|
||||||
if code == 404:
|
if code == 404:
|
||||||
|
@ -499,8 +495,8 @@ class Connection:
|
||||||
|
|
||||||
def _bytestreamResultCB(self, con, iq_obj):
|
def _bytestreamResultCB(self, con, iq_obj):
|
||||||
gajim.log.debug('_bytestreamResultCB')
|
gajim.log.debug('_bytestreamResultCB')
|
||||||
frm = str(iq_obj.getFrom())
|
frm = unicode(iq_obj.getFrom())
|
||||||
real_id = str(iq_obj.getAttr('id'))
|
real_id = unicode(iq_obj.getAttr('id'))
|
||||||
query = iq_obj.getTag('query')
|
query = iq_obj.getTag('query')
|
||||||
streamhost = None
|
streamhost = None
|
||||||
try:
|
try:
|
||||||
|
@ -521,9 +517,12 @@ class Connection:
|
||||||
jid = item.getAttr('jid')
|
jid = item.getAttr('jid')
|
||||||
conf = gajim.config
|
conf = gajim.config
|
||||||
conf.add_per('ft_proxies65_cache', jid)
|
conf.add_per('ft_proxies65_cache', jid)
|
||||||
conf.set_per('ft_proxies65_cache', jid, 'host', str(host))
|
conf.set_per('ft_proxies65_cache', jid,
|
||||||
conf.set_per('ft_proxies65_cache', jid, 'port', int(port))
|
'host', unicode(host))
|
||||||
conf.set_per('ft_proxies65_cache', jid, 'jid', str(jid))
|
conf.set_per('ft_proxies65_cache', jid,
|
||||||
|
'port', int(port))
|
||||||
|
conf.set_per('ft_proxies65_cache', jid,
|
||||||
|
'jid', unicode(jid))
|
||||||
raise common.xmpp.NodeProcessed
|
raise common.xmpp.NodeProcessed
|
||||||
try:
|
try:
|
||||||
streamhost = query.getTag('streamhost-used')
|
streamhost = query.getTag('streamhost-used')
|
||||||
|
@ -545,7 +544,7 @@ class Connection:
|
||||||
raise common.xmpp.NodeProcessed
|
raise common.xmpp.NodeProcessed
|
||||||
for host in file_props['proxyhosts']:
|
for host in file_props['proxyhosts']:
|
||||||
if host['initiator'] == frm and \
|
if host['initiator'] == frm and \
|
||||||
str(query.getAttr('sid')) == file_props['sid']:
|
unicode(query.getAttr('sid')) == file_props['sid']:
|
||||||
gajim.socks5queue.activate_proxy(host['idx'])
|
gajim.socks5queue.activate_proxy(host['idx'])
|
||||||
break
|
break
|
||||||
raise common.xmpp.NodeProcessed
|
raise common.xmpp.NodeProcessed
|
||||||
|
@ -581,8 +580,8 @@ class Connection:
|
||||||
if file_props.has_key('fast'):
|
if file_props.has_key('fast'):
|
||||||
fasts = file_props['fast']
|
fasts = file_props['fast']
|
||||||
if len(fasts) > 0:
|
if len(fasts) > 0:
|
||||||
self._connect_error(str(iq_obj.getFrom()), fasts[0]['id'],
|
self._connect_error(unicode(iq_obj.getFrom()),
|
||||||
file_props['sid'], code = 406)
|
fasts[0]['id'], file_props['sid'], code = 406)
|
||||||
|
|
||||||
raise common.xmpp.NodeProcessed
|
raise common.xmpp.NodeProcessed
|
||||||
|
|
||||||
|
@ -640,9 +639,9 @@ class Connection:
|
||||||
|
|
||||||
def _discoGetCB(self, con, iq_obj):
|
def _discoGetCB(self, con, iq_obj):
|
||||||
''' get disco info '''
|
''' get disco info '''
|
||||||
frm = str(iq_obj.getFrom())
|
frm = unicode(iq_obj.getFrom())
|
||||||
to = str(iq_obj.getAttr('to'))
|
to = unicode(iq_obj.getAttr('to'))
|
||||||
id = str(iq_obj.getAttr('id'))
|
id = unicode(iq_obj.getAttr('id'))
|
||||||
iq = common.xmpp.Iq(to = frm, typ = 'result', queryNS =\
|
iq = common.xmpp.Iq(to = frm, typ = 'result', queryNS =\
|
||||||
common.xmpp.NS_DISCO, frm = to)
|
common.xmpp.NS_DISCO, frm = to)
|
||||||
iq.setAttr('id', id)
|
iq.setAttr('id', id)
|
||||||
|
@ -673,8 +672,8 @@ class Connection:
|
||||||
if file_props is None:
|
if file_props is None:
|
||||||
# file properties for jid is none
|
# file properties for jid is none
|
||||||
return
|
return
|
||||||
file_props['receiver'] = str(iq_obj.getFrom())
|
file_props['receiver'] = unicode(iq_obj.getFrom())
|
||||||
jid = iq_obj.getFrom().getStripped().encode('utf8')
|
jid = iq_obj.getFrom().getStripped()
|
||||||
si = iq_obj.getTag('si')
|
si = iq_obj.getTag('si')
|
||||||
feature = si.setTag('feature')
|
feature = si.setTag('feature')
|
||||||
if feature.getNamespace() != common.xmpp.NS_FEATURE:
|
if feature.getNamespace() != common.xmpp.NS_FEATURE:
|
||||||
|
@ -738,12 +737,12 @@ class Connection:
|
||||||
continue
|
continue
|
||||||
host_dict={
|
host_dict={
|
||||||
'state': 0,
|
'state': 0,
|
||||||
'target': str(receiver),
|
'target': unicode(receiver),
|
||||||
'id': file_props['sid'],
|
'id': file_props['sid'],
|
||||||
'sid': file_props['sid'],
|
'sid': file_props['sid'],
|
||||||
'initiator': proxy,
|
'initiator': proxy,
|
||||||
'host': host,
|
'host': host,
|
||||||
'port': str(_port),
|
'port': unicode(_port),
|
||||||
'jid': jid
|
'jid': jid
|
||||||
}
|
}
|
||||||
proxyhosts.append(host_dict)
|
proxyhosts.append(host_dict)
|
||||||
|
@ -757,12 +756,12 @@ class Connection:
|
||||||
sha_str, self.result_socks5_sid, file_props['sid'])
|
sha_str, self.result_socks5_sid, file_props['sid'])
|
||||||
if listener == None:
|
if listener == None:
|
||||||
file_props['error'] = -5
|
file_props['error'] = -5
|
||||||
self.dispatch('FILE_REQUEST_ERROR', (str(receiver), file_props))
|
self.dispatch('FILE_REQUEST_ERROR', (unicode(receiver), file_props))
|
||||||
self._connect_error(str(receiver), file_props['sid'],
|
self._connect_error(unicode(receiver), file_props['sid'],
|
||||||
file_props['sid'], code = 406)
|
file_props['sid'], code = 406)
|
||||||
return
|
return
|
||||||
|
|
||||||
iq = common.xmpp.Protocol(name = 'iq', to = str(receiver),
|
iq = common.xmpp.Protocol(name = 'iq', to = unicode(receiver),
|
||||||
typ = 'set')
|
typ = 'set')
|
||||||
file_props['request-id'] = 'id_' + file_props['sid']
|
file_props['request-id'] = 'id_' + file_props['sid']
|
||||||
iq.setID(file_props['request-id'])
|
iq.setID(file_props['request-id'])
|
||||||
|
@ -771,12 +770,12 @@ class Connection:
|
||||||
query.setAttr('mode', 'tcp')
|
query.setAttr('mode', 'tcp')
|
||||||
query.setAttr('sid', file_props['sid'])
|
query.setAttr('sid', file_props['sid'])
|
||||||
streamhost = query.setTag('streamhost')
|
streamhost = query.setTag('streamhost')
|
||||||
streamhost.setAttr('port', str(port))
|
streamhost.setAttr('port', unicode(port))
|
||||||
streamhost.setAttr('host', ft_override_host_to_send)
|
streamhost.setAttr('host', ft_override_host_to_send)
|
||||||
streamhost.setAttr('jid', sender)
|
streamhost.setAttr('jid', sender)
|
||||||
if fast and proxyhosts != []:
|
if fast and proxyhosts != []:
|
||||||
file_props['proxy_receiver'] = str(receiver)
|
file_props['proxy_receiver'] = unicode(receiver)
|
||||||
file_props['proxy_sender'] = str(sender)
|
file_props['proxy_sender'] = unicode(sender)
|
||||||
file_props['proxyhosts'] = proxyhosts
|
file_props['proxyhosts'] = proxyhosts
|
||||||
for proxyhost in proxyhosts:
|
for proxyhost in proxyhosts:
|
||||||
streamhost = common.xmpp.Node(tag = 'streamhost')
|
streamhost = common.xmpp.Node(tag = 'streamhost')
|
||||||
|
@ -792,7 +791,7 @@ class Connection:
|
||||||
|
|
||||||
def _siSetCB(self, con, iq_obj):
|
def _siSetCB(self, con, iq_obj):
|
||||||
gajim.log.debug('_siSetCB')
|
gajim.log.debug('_siSetCB')
|
||||||
jid = iq_obj.getFrom().getStripped().encode('utf8')
|
jid = iq_obj.getFrom().getStripped()
|
||||||
si = iq_obj.getTag('si')
|
si = iq_obj.getTag('si')
|
||||||
profile = si.getAttr('profile')
|
profile = si.getAttr('profile')
|
||||||
mime_type = si.getAttr('mime-type')
|
mime_type = si.getAttr('mime-type')
|
||||||
|
@ -802,13 +801,10 @@ class Connection:
|
||||||
file_tag = si.getTag('file')
|
file_tag = si.getTag('file')
|
||||||
file_props = {'type': 'r'}
|
file_props = {'type': 'r'}
|
||||||
for attribute in file_tag.getAttrs():
|
for attribute in file_tag.getAttrs():
|
||||||
attribute = attribute.encode('utf-8')
|
|
||||||
if attribute in ['name', 'size', 'hash', 'date']:
|
if attribute in ['name', 'size', 'hash', 'date']:
|
||||||
val = file_tag.getAttr(attribute)
|
val = file_tag.getAttr(attribute)
|
||||||
if val is None:
|
if val is None:
|
||||||
continue
|
continue
|
||||||
if type(val) is unicode:
|
|
||||||
val = val.encode('utf-8')
|
|
||||||
file_props[attribute] = val
|
file_props[attribute] = val
|
||||||
file_desc_tag = file_tag.getTag('desc')
|
file_desc_tag = file_tag.getTag('desc')
|
||||||
if file_desc_tag is not None:
|
if file_desc_tag is not None:
|
||||||
|
@ -821,8 +817,8 @@ class Connection:
|
||||||
resource = gajim.config.get_per('accounts', self.name, 'resource')
|
resource = gajim.config.get_per('accounts', self.name, 'resource')
|
||||||
file_props['receiver'] = name + '@' + hostname + '/' + resource
|
file_props['receiver'] = name + '@' + hostname + '/' + resource
|
||||||
file_props['sender'] = iq_obj.getFrom()
|
file_props['sender'] = iq_obj.getFrom()
|
||||||
file_props['request-id'] = str(iq_obj.getAttr('id'))
|
file_props['request-id'] = unicode(iq_obj.getAttr('id'))
|
||||||
file_props['sid'] = str(si.getAttr('id'))
|
file_props['sid'] = unicode(si.getAttr('id'))
|
||||||
gajim.socks5queue.add_file_props(self.name, file_props)
|
gajim.socks5queue.add_file_props(self.name, file_props)
|
||||||
self.dispatch('FILE_REQUEST', (jid, file_props))
|
self.dispatch('FILE_REQUEST', (jid, file_props))
|
||||||
raise common.xmpp.NodeProcessed
|
raise common.xmpp.NodeProcessed
|
||||||
|
@ -841,15 +837,15 @@ class Connection:
|
||||||
if file_props is None:
|
if file_props is None:
|
||||||
# file properties for jid is none
|
# file properties for jid is none
|
||||||
return
|
return
|
||||||
jid = iq_obj.getFrom().getStripped().encode('utf8')
|
jid = iq_obj.getFrom().getStripped()
|
||||||
file_props['error'] = -3
|
file_props['error'] = -3
|
||||||
self.dispatch('FILE_REQUEST_ERROR', (jid, file_props))
|
self.dispatch('FILE_REQUEST_ERROR', (jid, file_props))
|
||||||
raise common.xmpp.NodeProcessed
|
raise common.xmpp.NodeProcessed
|
||||||
|
|
||||||
def send_file_rejection(self, file_props):
|
def send_file_rejection(self, file_props):
|
||||||
''' informs sender that we refuse to download the file '''
|
''' informs sender that we refuse to download the file '''
|
||||||
iq = common.xmpp.Protocol(name = 'iq', to = str(file_props['sender']),
|
iq = common.xmpp.Protocol(name = 'iq',
|
||||||
typ = 'error')
|
to = unicode(file_props['sender']), typ = 'error')
|
||||||
iq.setAttr('id', file_props['request-id'])
|
iq.setAttr('id', file_props['request-id'])
|
||||||
err = common.xmpp.ErrorNode(code = '406', typ = 'auth', name = 'not-acceptable')
|
err = common.xmpp.ErrorNode(code = '406', typ = 'auth', name = 'not-acceptable')
|
||||||
iq.addChild(node=err)
|
iq.addChild(node=err)
|
||||||
|
@ -857,8 +853,8 @@ class Connection:
|
||||||
|
|
||||||
def send_file_approval(self, file_props):
|
def send_file_approval(self, file_props):
|
||||||
''' comfirm that we want to download the file '''
|
''' comfirm that we want to download the file '''
|
||||||
iq = common.xmpp.Protocol(name = 'iq', to = str(file_props['sender']),
|
iq = common.xmpp.Protocol(name = 'iq',
|
||||||
typ = 'result')
|
to = unicode(file_props['sender']), typ = 'result')
|
||||||
iq.setAttr('id', file_props['request-id'])
|
iq.setAttr('id', file_props['request-id'])
|
||||||
si = iq.setTag('si')
|
si = iq.setTag('si')
|
||||||
si.setNamespace(common.xmpp.NS_SI)
|
si.setNamespace(common.xmpp.NS_SI)
|
||||||
|
@ -908,17 +904,13 @@ class Connection:
|
||||||
def _rosterSetCB(self, con, iq_obj):
|
def _rosterSetCB(self, con, iq_obj):
|
||||||
gajim.log.debug('rosterSetCB')
|
gajim.log.debug('rosterSetCB')
|
||||||
for item in iq_obj.getTag('query').getChildren():
|
for item in iq_obj.getTag('query').getChildren():
|
||||||
jid = item.getAttr('jid').encode('utf8')
|
jid = item.getAttr('jid')
|
||||||
name = item.getAttr('name')
|
name = item.getAttr('name')
|
||||||
if name:
|
sub = item.getAttr('subscription')
|
||||||
name = name.encode('utf8')
|
|
||||||
sub = item.getAttr('subscription').encode('utf8')
|
|
||||||
ask = item.getAttr('ask')
|
ask = item.getAttr('ask')
|
||||||
if ask:
|
|
||||||
ask = ask.encode('utf8')
|
|
||||||
groups = []
|
groups = []
|
||||||
for group in item.getTags('group'):
|
for group in item.getTags('group'):
|
||||||
groups.append(group.getData().encode('utf8'))
|
groups.append(group.getData())
|
||||||
self.dispatch('ROSTER_INFO', (jid, name, sub, ask, groups))
|
self.dispatch('ROSTER_INFO', (jid, name, sub, ask, groups))
|
||||||
raise common.xmpp.NodeProcessed
|
raise common.xmpp.NodeProcessed
|
||||||
|
|
||||||
|
@ -930,7 +922,7 @@ class Connection:
|
||||||
continue
|
continue
|
||||||
attr = {}
|
attr = {}
|
||||||
for key in q.getAttrs().keys():
|
for key in q.getAttrs().keys():
|
||||||
attr[key.encode('utf8')] = q.getAttr(key).encode('utf8')
|
attr[key] = q.getAttr(key)
|
||||||
identities = [attr]
|
identities = [attr]
|
||||||
for node in q.getChildren():
|
for node in q.getChildren():
|
||||||
if node.getName() == 'ns':
|
if node.getName() == 'ns':
|
||||||
|
@ -938,10 +930,10 @@ class Connection:
|
||||||
else:
|
else:
|
||||||
infos = {}
|
infos = {}
|
||||||
for key in node.getAttrs().keys():
|
for key in node.getAttrs().keys():
|
||||||
infos[key.encode('utf8')] = node.getAttr(key).encode('utf8')
|
infos[key] = node.getAttr(key)
|
||||||
infos['category'] = node.getName()
|
infos['category'] = node.getName()
|
||||||
items.append(infos)
|
items.append(infos)
|
||||||
jid = str(iq_obj.getFrom())
|
jid = unicode(iq_obj.getFrom())
|
||||||
self.dispatch('AGENT_INFO', (jid, identities, features, items))
|
self.dispatch('AGENT_INFO', (jid, identities, features, items))
|
||||||
|
|
||||||
def _DiscoverItemsCB(self, con, iq_obj):
|
def _DiscoverItemsCB(self, con, iq_obj):
|
||||||
|
@ -957,9 +949,9 @@ class Connection:
|
||||||
for i in qp:
|
for i in qp:
|
||||||
attr = {}
|
attr = {}
|
||||||
for key in i.getAttrs():
|
for key in i.getAttrs():
|
||||||
attr[key.encode('utf8')] = i.getAttrs()[key].encode('utf8')
|
attr[key] = i.getAttrs()[key]
|
||||||
items.append(attr)
|
items.append(attr)
|
||||||
jid = str(iq_obj.getFrom())
|
jid = unicode(iq_obj.getFrom())
|
||||||
self.dispatch('AGENT_INFO_ITEMS', (jid, node, items))
|
self.dispatch('AGENT_INFO_ITEMS', (jid, node, items))
|
||||||
|
|
||||||
def _DiscoverInfoErrorCB(self, con, iq_obj):
|
def _DiscoverInfoErrorCB(self, con, iq_obj):
|
||||||
|
@ -985,11 +977,11 @@ class Connection:
|
||||||
if i.getName() == 'identity':
|
if i.getName() == 'identity':
|
||||||
attr = {}
|
attr = {}
|
||||||
for key in i.getAttrs().keys():
|
for key in i.getAttrs().keys():
|
||||||
attr[key.encode('utf8')] = i.getAttr(key).encode('utf8')
|
attr[key] = i.getAttr(key)
|
||||||
identities.append(attr)
|
identities.append(attr)
|
||||||
elif i.getName() == 'feature':
|
elif i.getName() == 'feature':
|
||||||
features.append(i.getAttr('var'))
|
features.append(i.getAttr('var'))
|
||||||
jid = str(iq_obj.getFrom())
|
jid = unicode(iq_obj.getFrom())
|
||||||
if not identities:
|
if not identities:
|
||||||
self.to_be_sent.append(common.xmpp.Iq(typ = 'get', queryNS = \
|
self.to_be_sent.append(common.xmpp.Iq(typ = 'get', queryNS = \
|
||||||
common.xmpp.NS_AGENTS))
|
common.xmpp.NS_AGENTS))
|
||||||
|
@ -1086,11 +1078,11 @@ class Connection:
|
||||||
dic[i]['options'][j]['values'].append(tag.getData())
|
dic[i]['options'][j]['values'].append(tag.getData())
|
||||||
j += 1
|
j += 1
|
||||||
i += 1
|
i += 1
|
||||||
self.dispatch('GC_CONFIG', (str(iq_obj.getFrom()), dic))
|
self.dispatch('GC_CONFIG', (unicode(iq_obj.getFrom()), dic))
|
||||||
|
|
||||||
def _MucErrorCB(self, con, iq_obj):
|
def _MucErrorCB(self, con, iq_obj):
|
||||||
gajim.log.debug('MucErrorCB')
|
gajim.log.debug('MucErrorCB')
|
||||||
jid = str(iq_obj.getFrom())
|
jid = unicode(iq_obj.getFrom())
|
||||||
errmsg = iq_obj.getError()
|
errmsg = iq_obj.getError()
|
||||||
errcode = iq_obj.getErrorCode()
|
errcode = iq_obj.getErrorCode()
|
||||||
self.dispatch('MSGERROR', (jid, errcode, errmsg))
|
self.dispatch('MSGERROR', (jid, errcode, errmsg))
|
||||||
|
@ -1101,18 +1093,6 @@ class Connection:
|
||||||
roster = self.connection.getRoster().getRaw()
|
roster = self.connection.getRoster().getRaw()
|
||||||
if not roster:
|
if not roster:
|
||||||
roster = {}
|
roster = {}
|
||||||
else:
|
|
||||||
for i in roster.keys():
|
|
||||||
props = roster[i]
|
|
||||||
if props.has_key('name') and props['name']:
|
|
||||||
props['name'] = props['name'].encode('utf8')
|
|
||||||
if props.has_key('groups') and props['groups']:
|
|
||||||
props['groups'] = map(lambda e:e.encode('utf8'), props['groups'])
|
|
||||||
if props.has_key('resources') and props['resources']:
|
|
||||||
props['resources'] = map(lambda e:e.encode('utf8'),
|
|
||||||
props['resources'])
|
|
||||||
del roster[i]
|
|
||||||
roster[i.encode('utf8')] = props
|
|
||||||
|
|
||||||
name = gajim.config.get_per('accounts', self.name, 'name')
|
name = gajim.config.get_per('accounts', self.name, 'name')
|
||||||
hostname = gajim.config.get_per('accounts', self.name, 'hostname')
|
hostname = gajim.config.get_per('accounts', self.name, 'hostname')
|
||||||
|
@ -1178,8 +1158,8 @@ class Connection:
|
||||||
def _ErrorCB(self, con, iq_obj):
|
def _ErrorCB(self, con, iq_obj):
|
||||||
errmsg = iq_obj.getError()
|
errmsg = iq_obj.getError()
|
||||||
errcode = iq_obj.getErrorCode()
|
errcode = iq_obj.getErrorCode()
|
||||||
jid_from = str(iq_obj.getFrom())
|
jid_from = unicode(iq_obj.getFrom())
|
||||||
id = str(iq_obj.getID())
|
id = unicode(iq_obj.getID())
|
||||||
self.dispatch('ERROR_ANSWER', (id, jid_from, errmsg, errcode))
|
self.dispatch('ERROR_ANSWER', (id, jid_from, errmsg, errcode))
|
||||||
|
|
||||||
def _StanzaArrivedCB(self, con, obj):
|
def _StanzaArrivedCB(self, con, obj):
|
||||||
|
@ -1214,9 +1194,9 @@ class Connection:
|
||||||
self.dispatch('REGISTER_AGENT_INFO', (data[0], data[1].asDict()))
|
self.dispatch('REGISTER_AGENT_INFO', (data[0], data[1].asDict()))
|
||||||
elif realm == '':
|
elif realm == '':
|
||||||
if event == common.xmpp.transports.DATA_RECEIVED:
|
if event == common.xmpp.transports.DATA_RECEIVED:
|
||||||
self.dispatch('STANZA_ARRIVED', str(data))
|
self.dispatch('STANZA_ARRIVED', unicode(data))
|
||||||
elif event == common.xmpp.transports.DATA_SENT:
|
elif event == common.xmpp.transports.DATA_SENT:
|
||||||
self.dispatch('STANZA_SENT', str(data))
|
self.dispatch('STANZA_SENT', unicode(data))
|
||||||
|
|
||||||
def connect(self):
|
def connect(self):
|
||||||
"""Connect and authenticate to the Jabber server
|
"""Connect and authenticate to the Jabber server
|
||||||
|
@ -1389,7 +1369,7 @@ class Connection:
|
||||||
# active the privacy rule
|
# active the privacy rule
|
||||||
self.privacy_rules_supported = True
|
self.privacy_rules_supported = True
|
||||||
self.activate_privacy_rule('invisible')
|
self.activate_privacy_rule('invisible')
|
||||||
prio = str(gajim.config.get_per('accounts', self.name, 'priority'))
|
prio = unicode(gajim.config.get_per('accounts', self.name, 'priority'))
|
||||||
p = common.xmpp.Presence(typ = ptype, priority = prio, show = show)
|
p = common.xmpp.Presence(typ = ptype, priority = prio, show = show)
|
||||||
p = self.add_sha(p)
|
p = self.add_sha(p)
|
||||||
if msg:
|
if msg:
|
||||||
|
@ -1446,7 +1426,8 @@ class Connection:
|
||||||
if show == 'invisible':
|
if show == 'invisible':
|
||||||
self.send_invisible_presence(msg, signed, True)
|
self.send_invisible_presence(msg, signed, True)
|
||||||
return
|
return
|
||||||
prio = str(gajim.config.get_per('accounts', self.name, 'priority'))
|
prio = unicode(gajim.config.get_per('accounts', self.name,
|
||||||
|
'priority'))
|
||||||
p = common.xmpp.Presence(typ = None, priority = prio, show = sshow)
|
p = common.xmpp.Presence(typ = None, priority = prio, show = sshow)
|
||||||
p = self.add_sha(p)
|
p = self.add_sha(p)
|
||||||
if msg:
|
if msg:
|
||||||
|
@ -1490,7 +1471,8 @@ class Connection:
|
||||||
iq = self.build_privacy_rule('visible', 'allow')
|
iq = self.build_privacy_rule('visible', 'allow')
|
||||||
self.connection.send(iq)
|
self.connection.send(iq)
|
||||||
self.activate_privacy_rule('visible')
|
self.activate_privacy_rule('visible')
|
||||||
prio = str(gajim.config.get_per('accounts', self.name, 'priority'))
|
prio = unicode(gajim.config.get_per('accounts', self.name,
|
||||||
|
'priority'))
|
||||||
p = common.xmpp.Presence(typ = None, priority = prio, show = sshow)
|
p = common.xmpp.Presence(typ = None, priority = prio, show = sshow)
|
||||||
p = self.add_sha(p)
|
p = self.add_sha(p)
|
||||||
if msg:
|
if msg:
|
||||||
|
@ -1945,7 +1927,7 @@ class Connection:
|
||||||
keep_alive_disconnect_after_foo_secs):
|
keep_alive_disconnect_after_foo_secs):
|
||||||
self.connection.disconnect() # disconnect if no answer
|
self.connection.disconnect() # disconnect if no answer
|
||||||
pritext = _('Gajim disconnected you from %s') % self.name
|
pritext = _('Gajim disconnected you from %s') % self.name
|
||||||
sectext = _('%s seconds have passed and server did not reply to our keep-alive. If you believe such disconnection should not have happened, you can disable sending keep-alive packets by modifying this account.') % str(keep_alive_disconnect_after_foo_secs)
|
sectext = _('%s seconds have passed and server did not reply to our keep-alive. If you believe such disconnection should not have happened, you can disable sending keep-alive packets by modifying this account.') % unicode(keep_alive_disconnect_after_foo_secs)
|
||||||
self.dispatch('ERROR', (pritext, sectext))
|
self.dispatch('ERROR', (pritext, sectext))
|
||||||
return
|
return
|
||||||
if self.connection:
|
if self.connection:
|
||||||
|
|
|
@ -62,7 +62,7 @@ def convert_bytes(string):
|
||||||
else:
|
else:
|
||||||
#B means bytes
|
#B means bytes
|
||||||
suffix = _('%s B')
|
suffix = _('%s B')
|
||||||
return suffix % str(bytes)
|
return suffix % unicode(bytes)
|
||||||
|
|
||||||
def get_uf_show(show):
|
def get_uf_show(show):
|
||||||
'''returns a userfriendly string for dnd/xa/chat
|
'''returns a userfriendly string for dnd/xa/chat
|
||||||
|
|
|
@ -127,6 +127,14 @@ class Logger:
|
||||||
files.append(ji + '/' + ji)
|
files.append(ji + '/' + ji)
|
||||||
jid = 'gc'
|
jid = 'gc'
|
||||||
show = nick
|
show = nick
|
||||||
|
if type(tim) == unicode:
|
||||||
|
tim = tim.encode('utf-8')
|
||||||
|
if type(jid) == unicode:
|
||||||
|
jid = jid.encode('utf-8')
|
||||||
|
if type(show) == unicode:
|
||||||
|
show = show.encode('utf-8')
|
||||||
|
if msg and type(msg) == unicode:
|
||||||
|
msg = msg.encode('utf-8')
|
||||||
for f in files:
|
for f in files:
|
||||||
path_to_file = os.path.join(LOGPATH, f)
|
path_to_file = os.path.join(LOGPATH, f)
|
||||||
if os.path.isdir(path_to_file):
|
if os.path.isdir(path_to_file):
|
||||||
|
@ -174,7 +182,7 @@ class Logger:
|
||||||
while (no_of_lines < begin_line and fil.readline()):
|
while (no_of_lines < begin_line and fil.readline()):
|
||||||
no_of_lines += 1
|
no_of_lines += 1
|
||||||
while no_of_lines < end_line:
|
while no_of_lines < end_line:
|
||||||
line = fil.readline()
|
line = fil.readline().decode('utf-8')
|
||||||
if line:
|
if line:
|
||||||
line = helpers.from_one_line(line)
|
line = helpers.from_one_line(line)
|
||||||
lineSplited = line.split(':')
|
lineSplited = line.split(':')
|
||||||
|
|
|
@ -52,21 +52,31 @@ class OptionsParser:
|
||||||
return
|
return
|
||||||
|
|
||||||
for line in fd.readlines():
|
for line in fd.readlines():
|
||||||
|
line = line.decode('utf-8')
|
||||||
self.read_line(line)
|
self.read_line(line)
|
||||||
|
|
||||||
fd.close()
|
fd.close()
|
||||||
|
|
||||||
def write_line(self, fd, opt, parents, value):
|
def write_line(self, fd, opt, parents, value):
|
||||||
|
if value == None:
|
||||||
|
return
|
||||||
|
value = value[1]
|
||||||
|
if type(value) == unicode:
|
||||||
|
value = value.encode('utf-8')
|
||||||
|
else:
|
||||||
|
value = str(value)
|
||||||
|
if type(opt) == unicode:
|
||||||
|
opt = opt.encode('utf-8')
|
||||||
s = ''
|
s = ''
|
||||||
if parents:
|
if parents:
|
||||||
if len(parents) == 1:
|
if len(parents) == 1:
|
||||||
return
|
return
|
||||||
for p in parents:
|
for p in parents:
|
||||||
|
if type(p) == unicode:
|
||||||
|
p = p.encode('utf-8')
|
||||||
s += p + '.'
|
s += p + '.'
|
||||||
if value == None:
|
|
||||||
return
|
|
||||||
s += opt
|
s += opt
|
||||||
fd.write(s + ' = ' + str(value[1]) + '\n')
|
fd.write(s + ' = ' + value + '\n')
|
||||||
|
|
||||||
def write(self):
|
def write(self):
|
||||||
(base_dir, filename) = os.path.split(self.__filename)
|
(base_dir, filename) = os.path.split(self.__filename)
|
||||||
|
|
163
src/config.py
163
src/config.py
|
@ -514,7 +514,7 @@ class PreferencesWindow:
|
||||||
def on_iconset_combobox_changed(self, widget):
|
def on_iconset_combobox_changed(self, widget):
|
||||||
model = widget.get_model()
|
model = widget.get_model()
|
||||||
active = widget.get_active()
|
active = widget.get_active()
|
||||||
icon_string = model[active][1]
|
icon_string = model[active][1].decode('utf-8')
|
||||||
gajim.config.set('iconset', icon_string)
|
gajim.config.set('iconset', icon_string)
|
||||||
self.plugin.roster.reload_jabber_state_images()
|
self.plugin.roster.reload_jabber_state_images()
|
||||||
self.plugin.save_config()
|
self.plugin.save_config()
|
||||||
|
@ -529,7 +529,7 @@ class PreferencesWindow:
|
||||||
def on_theme_combobox_changed(self, widget):
|
def on_theme_combobox_changed(self, widget):
|
||||||
model = widget.get_model()
|
model = widget.get_model()
|
||||||
active = widget.get_active()
|
active = widget.get_active()
|
||||||
theme = model[active][0]
|
theme = model[active][0].decode('utf-8')
|
||||||
|
|
||||||
gajim.config.set('roster_theme', theme)
|
gajim.config.set('roster_theme', theme)
|
||||||
|
|
||||||
|
@ -684,19 +684,19 @@ class PreferencesWindow:
|
||||||
self.plugin.save_config()
|
self.plugin.save_config()
|
||||||
|
|
||||||
def on_before_time_entry_focus_out_event(self, widget, event):
|
def on_before_time_entry_focus_out_event(self, widget, event):
|
||||||
gajim.config.set('before_time', widget.get_text())
|
gajim.config.set('before_time', widget.get_text().decode('utf-8'))
|
||||||
self.plugin.save_config()
|
self.plugin.save_config()
|
||||||
|
|
||||||
def on_after_time_entry_focus_out_event(self, widget, event):
|
def on_after_time_entry_focus_out_event(self, widget, event):
|
||||||
gajim.config.set('after_time', widget.get_text())
|
gajim.config.set('after_time', widget.get_text().decode('utf-8'))
|
||||||
self.plugin.save_config()
|
self.plugin.save_config()
|
||||||
|
|
||||||
def on_before_nickname_entry_focus_out_event(self, widget, event):
|
def on_before_nickname_entry_focus_out_event(self, widget, event):
|
||||||
gajim.config.set('before_nickname', widget.get_text())
|
gajim.config.set('before_nickname', widget.get_text().decode('utf-8'))
|
||||||
self.plugin.save_config()
|
self.plugin.save_config()
|
||||||
|
|
||||||
def on_after_nickname_entry_focus_out_event(self, widget, event):
|
def on_after_nickname_entry_focus_out_event(self, widget, event):
|
||||||
gajim.config.set('after_nickname', widget.get_text())
|
gajim.config.set('after_nickname', widget.get_text().decode('utf-8'))
|
||||||
self.plugin.save_config()
|
self.plugin.save_config()
|
||||||
|
|
||||||
def update_text_tags(self):
|
def update_text_tags(self):
|
||||||
|
@ -800,7 +800,7 @@ class PreferencesWindow:
|
||||||
self.xml.get_widget('browse_sounds_hbox')])
|
self.xml.get_widget('browse_sounds_hbox')])
|
||||||
|
|
||||||
def on_soundplayer_entry_changed(self, widget):
|
def on_soundplayer_entry_changed(self, widget):
|
||||||
gajim.config.set('soundplayer', widget.get_text())
|
gajim.config.set('soundplayer', widget.get_text().decode('utf-8'))
|
||||||
self.plugin.save_config()
|
self.plugin.save_config()
|
||||||
|
|
||||||
def on_prompt_online_status_message_checkbutton_toggled(self, widget):
|
def on_prompt_online_status_message_checkbutton_toggled(self, widget):
|
||||||
|
@ -810,11 +810,11 @@ class PreferencesWindow:
|
||||||
self.on_checkbutton_toggled(widget, 'ask_offline_status')
|
self.on_checkbutton_toggled(widget, 'ask_offline_status')
|
||||||
|
|
||||||
def on_sounds_treemodel_row_changed(self, model, path, iter):
|
def on_sounds_treemodel_row_changed(self, model, path, iter):
|
||||||
sound_event = model.get_value(iter, 0)
|
sound_event = model.get_value(iter, 0).decode('utf-8')
|
||||||
gajim.config.set_per('soundevents', sound_event, 'enabled',
|
gajim.config.set_per('soundevents', sound_event, 'enabled',
|
||||||
bool(model[path][1]))
|
bool(model[path][1]))
|
||||||
gajim.config.set_per('soundevents', sound_event, 'path',
|
gajim.config.set_per('soundevents', sound_event, 'path',
|
||||||
model[iter][2])
|
model[iter][2].decode('utf-8'))
|
||||||
self.plugin.save_config()
|
self.plugin.save_config()
|
||||||
|
|
||||||
def on_auto_away_checkbutton_toggled(self, widget):
|
def on_auto_away_checkbutton_toggled(self, widget):
|
||||||
|
@ -830,7 +830,7 @@ class PreferencesWindow:
|
||||||
self.plugin.save_config()
|
self.plugin.save_config()
|
||||||
|
|
||||||
def on_auto_away_message_entry_changed(self, widget):
|
def on_auto_away_message_entry_changed(self, widget):
|
||||||
gajim.config.set('autoaway_message', widget.get_text())
|
gajim.config.set('autoaway_message', widget.get_text().decode('utf-8'))
|
||||||
|
|
||||||
def on_auto_xa_checkbutton_toggled(self, widget):
|
def on_auto_xa_checkbutton_toggled(self, widget):
|
||||||
self.on_checkbutton_toggled(widget, 'autoxa',
|
self.on_checkbutton_toggled(widget, 'autoxa',
|
||||||
|
@ -845,17 +845,17 @@ class PreferencesWindow:
|
||||||
self.plugin.save_config()
|
self.plugin.save_config()
|
||||||
|
|
||||||
def on_auto_xa_message_entry_changed(self, widget):
|
def on_auto_xa_message_entry_changed(self, widget):
|
||||||
gajim.config.set('autoxa_message', widget.get_text())
|
gajim.config.set('autoxa_message', widget.get_text().decode('utf-8'))
|
||||||
|
|
||||||
def save_status_messages(self, model):
|
def save_status_messages(self, model):
|
||||||
for msg in gajim.config.get_per('statusmsg'):
|
for msg in gajim.config.get_per('statusmsg'):
|
||||||
gajim.config.del_per('statusmsg', msg)
|
gajim.config.del_per('statusmsg', msg)
|
||||||
iter = model.get_iter_first()
|
iter = model.get_iter_first()
|
||||||
while iter:
|
while iter:
|
||||||
val = model.get_value(iter, 0)
|
val = model.get_value(iter, 0).decode('utf-8')
|
||||||
gajim.config.add_per('statusmsg', val)
|
gajim.config.add_per('statusmsg', val)
|
||||||
gajim.config.set_per('statusmsg', val, 'message',
|
gajim.config.set_per('statusmsg', val, 'message',
|
||||||
model[iter][1])
|
model[iter][1].decode('utf-8'))
|
||||||
iter = model.iter_next(iter)
|
iter = model.iter_next(iter)
|
||||||
self.plugin.save_config()
|
self.plugin.save_config()
|
||||||
|
|
||||||
|
@ -881,15 +881,15 @@ class PreferencesWindow:
|
||||||
self.plugin.save_config()
|
self.plugin.save_config()
|
||||||
|
|
||||||
def on_custom_browser_entry_changed(self, widget):
|
def on_custom_browser_entry_changed(self, widget):
|
||||||
gajim.config.set('custombrowser', widget.get_text())
|
gajim.config.set('custombrowser', widget.get_text().decode('utf-8'))
|
||||||
self.plugin.save_config()
|
self.plugin.save_config()
|
||||||
|
|
||||||
def on_custom_mail_client_entry_changed(self, widget):
|
def on_custom_mail_client_entry_changed(self, widget):
|
||||||
gajim.config.set('custommailapp', widget.get_text())
|
gajim.config.set('custommailapp', widget.get_text().decode('utf-8'))
|
||||||
self.plugin.save_config()
|
self.plugin.save_config()
|
||||||
|
|
||||||
def on_custom_file_manager_entry_changed(self, widget):
|
def on_custom_file_manager_entry_changed(self, widget):
|
||||||
gajim.config.set('custom_file_manager', widget.get_text())
|
gajim.config.set('custom_file_manager', widget.get_text().decode('utf-8'))
|
||||||
self.plugin.save_config()
|
self.plugin.save_config()
|
||||||
|
|
||||||
def on_log_in_contact_checkbutton_toggled(self, widget):
|
def on_log_in_contact_checkbutton_toggled(self, widget):
|
||||||
|
@ -987,7 +987,7 @@ class PreferencesWindow:
|
||||||
(model, iter) = self.sound_tree.get_selection().get_selected()
|
(model, iter) = self.sound_tree.get_selection().get_selected()
|
||||||
if not iter:
|
if not iter:
|
||||||
return
|
return
|
||||||
file = model[iter][2]
|
file = model[iter][2].decode('utf-8')
|
||||||
dialog = gtk.FileChooserDialog(_('Choose Sound'), None,
|
dialog = gtk.FileChooserDialog(_('Choose Sound'), None,
|
||||||
gtk.FILE_CHOOSER_ACTION_OPEN,
|
gtk.FILE_CHOOSER_ACTION_OPEN,
|
||||||
(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
|
(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
|
||||||
|
@ -1171,7 +1171,7 @@ class AccountModificationWindow:
|
||||||
'custom_port')
|
'custom_port')
|
||||||
if not custom_port:
|
if not custom_port:
|
||||||
custom_port = 5222
|
custom_port = 5222
|
||||||
self.xml.get_widget('custom_port_entry').set_text(str(custom_port))
|
self.xml.get_widget('custom_port_entry').set_text(unicode(custom_port))
|
||||||
|
|
||||||
gpg_key_label = self.xml.get_widget('gpg_key_label')
|
gpg_key_label = self.xml.get_widget('gpg_key_label')
|
||||||
if gajim.config.get('usegpg'):
|
if gajim.config.get('usegpg'):
|
||||||
|
@ -1198,7 +1198,7 @@ class AccountModificationWindow:
|
||||||
def on_save_button_clicked(self, widget):
|
def on_save_button_clicked(self, widget):
|
||||||
'''When save button is clicked: Save information in config file'''
|
'''When save button is clicked: Save information in config file'''
|
||||||
config = {}
|
config = {}
|
||||||
name = self.xml.get_widget('name_entry').get_text()
|
name = self.xml.get_widget('name_entry').get_text().decode('utf-8')
|
||||||
if gajim.connections.has_key(self.account):
|
if gajim.connections.has_key(self.account):
|
||||||
if name != self.account and \
|
if name != self.account and \
|
||||||
gajim.connections[self.account].connected != 0:
|
gajim.connections[self.account].connected != 0:
|
||||||
|
@ -1213,7 +1213,7 @@ _('To change the account name, you must be disconnected.')).get_response()
|
||||||
dialogs.ErrorDialog(_('Invalid account name'),
|
dialogs.ErrorDialog(_('Invalid account name'),
|
||||||
_('Account name cannot contain spaces.')).get_response()
|
_('Account name cannot contain spaces.')).get_response()
|
||||||
return
|
return
|
||||||
jid = self.xml.get_widget('jid_entry').get_text()
|
jid = self.xml.get_widget('jid_entry').get_text().decode('utf-8')
|
||||||
if jid == '' or jid.count('@') != 1:
|
if jid == '' or jid.count('@') != 1:
|
||||||
dialogs.ErrorDialog(_('Invalid Jabber ID'),
|
dialogs.ErrorDialog(_('Invalid Jabber ID'),
|
||||||
_('A Jabber ID must be in the form "user@servername".')).get_response()
|
_('A Jabber ID must be in the form "user@servername".')).get_response()
|
||||||
|
@ -1221,12 +1221,12 @@ _('To change the account name, you must be disconnected.')).get_response()
|
||||||
new_account = self.xml.get_widget('new_account_checkbutton').get_active()
|
new_account = self.xml.get_widget('new_account_checkbutton').get_active()
|
||||||
config['savepass'] = self.xml.get_widget(
|
config['savepass'] = self.xml.get_widget(
|
||||||
'save_password_checkbutton').get_active()
|
'save_password_checkbutton').get_active()
|
||||||
config['password'] = self.xml.get_widget('password_entry').get_text()
|
config['password'] = self.xml.get_widget('password_entry').get_text().decode('utf-8')
|
||||||
if new_account and config['password'] == '':
|
if new_account and config['password'] == '':
|
||||||
dialogs.ErrorDialog(_('Invalid password'),
|
dialogs.ErrorDialog(_('Invalid password'),
|
||||||
_('You must enter a password for the new account.')).get_response()
|
_('You must enter a password for the new account.')).get_response()
|
||||||
return
|
return
|
||||||
config['resource'] = self.xml.get_widget('resource_entry').get_text()
|
config['resource'] = self.xml.get_widget('resource_entry').get_text().decode('utf-8')
|
||||||
config['priority'] = self.xml.get_widget('priority_spinbutton').\
|
config['priority'] = self.xml.get_widget('priority_spinbutton').\
|
||||||
get_value_as_int()
|
get_value_as_int()
|
||||||
config['autoconnect'] = self.xml.get_widget('autoconnect_checkbutton').\
|
config['autoconnect'] = self.xml.get_widget('autoconnect_checkbutton').\
|
||||||
|
@ -1247,7 +1247,7 @@ _('To change the account name, you must be disconnected.')).get_response()
|
||||||
'sync_with_global_status_checkbutton').get_active()
|
'sync_with_global_status_checkbutton').get_active()
|
||||||
|
|
||||||
active = self.proxy_combobox.get_active()
|
active = self.proxy_combobox.get_active()
|
||||||
proxy = self.proxy_combobox.get_model()[active][0]
|
proxy = self.proxy_combobox.get_model()[active][0].decode('utf-8')
|
||||||
if proxy == 'None':
|
if proxy == 'None':
|
||||||
proxy = ''
|
proxy = ''
|
||||||
config['proxy'] = proxy
|
config['proxy'] = proxy
|
||||||
|
@ -1266,19 +1266,19 @@ _('To change the account name, you must be disconnected.')).get_response()
|
||||||
return
|
return
|
||||||
config['custom_port'] = custom_port
|
config['custom_port'] = custom_port
|
||||||
config['custom_host'] = self.xml.get_widget(
|
config['custom_host'] = self.xml.get_widget(
|
||||||
'custom_host_entry').get_text()
|
'custom_host_entry').get_text().decode('utf-8')
|
||||||
|
|
||||||
config['keyname'] = self.xml.get_widget('gpg_name_label').get_text()
|
config['keyname'] = self.xml.get_widget('gpg_name_label').get_text().decode('utf-8')
|
||||||
if config['keyname'] == '': #no key selected
|
if config['keyname'] == '': #no key selected
|
||||||
config['keyid'] = ''
|
config['keyid'] = ''
|
||||||
config['savegpgpass'] = False
|
config['savegpgpass'] = False
|
||||||
config['gpgpassword'] = ''
|
config['gpgpassword'] = ''
|
||||||
else:
|
else:
|
||||||
config['keyid'] = self.xml.get_widget('gpg_key_label').get_text()
|
config['keyid'] = self.xml.get_widget('gpg_key_label').get_text().decode('utf-8')
|
||||||
config['savegpgpass'] = self.xml.get_widget(
|
config['savegpgpass'] = self.xml.get_widget(
|
||||||
'gpg_save_password_checkbutton').get_active()
|
'gpg_save_password_checkbutton').get_active()
|
||||||
config['gpgpassword'] = self.xml.get_widget('gpg_password_entry').\
|
config['gpgpassword'] = self.xml.get_widget('gpg_password_entry').\
|
||||||
get_text()
|
get_text().decode('utf-8')
|
||||||
#if we are modifying an account
|
#if we are modifying an account
|
||||||
if self.modify:
|
if self.modify:
|
||||||
#if we modify the name of the account
|
#if we modify the name of the account
|
||||||
|
@ -1421,7 +1421,7 @@ _('To change the account name, you must be disconnected.')).get_response()
|
||||||
dialogs.ErrorDialog(_('No such account available'),
|
dialogs.ErrorDialog(_('No such account available'),
|
||||||
_('You must create your account before editing your personal information.')).get_response()
|
_('You must create your account before editing your personal information.')).get_response()
|
||||||
return
|
return
|
||||||
jid = self.xml.get_widget('jid_entry').get_text()
|
jid = self.xml.get_widget('jid_entry').get_text().decode('utf-8')
|
||||||
|
|
||||||
# show error dialog if account is newly created (not in gajim.connections)
|
# show error dialog if account is newly created (not in gajim.connections)
|
||||||
if not gajim.connections.has_key(self.account) or \
|
if not gajim.connections.has_key(self.account) or \
|
||||||
|
@ -1567,17 +1567,17 @@ class ManageProxiesWindow:
|
||||||
model = self.proxies_treeview.get_model()
|
model = self.proxies_treeview.get_model()
|
||||||
proxies = gajim.config.get_per('proxies')
|
proxies = gajim.config.get_per('proxies')
|
||||||
i = 1
|
i = 1
|
||||||
while ('proxy' + str(i)) in proxies:
|
while ('proxy' + unicode(i)) in proxies:
|
||||||
i += 1
|
i += 1
|
||||||
iter = model.append()
|
iter = model.append()
|
||||||
model.set(iter, 0, 'proxy' + str(i))
|
model.set(iter, 0, 'proxy' + unicode(i))
|
||||||
gajim.config.add_per('proxies', 'proxy' + str(i))
|
gajim.config.add_per('proxies', 'proxy' + unicode(i))
|
||||||
|
|
||||||
def on_remove_proxy_button_clicked(self, widget):
|
def on_remove_proxy_button_clicked(self, widget):
|
||||||
(model, iter) = self.proxies_treeview.get_selection().get_selected()
|
(model, iter) = self.proxies_treeview.get_selection().get_selected()
|
||||||
if not iter:
|
if not iter:
|
||||||
return
|
return
|
||||||
proxy = model.get_value(iter, 0)
|
proxy = model.get_value(iter, 0).decode('utf-8')
|
||||||
model.remove(iter)
|
model.remove(iter)
|
||||||
gajim.config.del_per('proxies', proxy)
|
gajim.config.del_per('proxies', proxy)
|
||||||
self.xml.get_widget('remove_proxy_button').set_sensitive(False)
|
self.xml.get_widget('remove_proxy_button').set_sensitive(False)
|
||||||
|
@ -1619,8 +1619,8 @@ class ManageProxiesWindow:
|
||||||
self.xml.get_widget('proxy_table').set_sensitive(True)
|
self.xml.get_widget('proxy_table').set_sensitive(True)
|
||||||
proxyhost_entry.set_text(gajim.config.get_per('proxies', proxy,
|
proxyhost_entry.set_text(gajim.config.get_per('proxies', proxy,
|
||||||
'host'))
|
'host'))
|
||||||
proxyport_entry.set_text(str(gajim.config.get_per('proxies', proxy,
|
proxyport_entry.set_text(unicode(gajim.config.get_per('proxies',
|
||||||
'port')))
|
proxy, 'port')))
|
||||||
proxyuser_entry.set_text(gajim.config.get_per('proxies', proxy,
|
proxyuser_entry.set_text(gajim.config.get_per('proxies', proxy,
|
||||||
'user'))
|
'user'))
|
||||||
proxypass_entry.set_text(gajim.config.get_per('proxies', proxy,
|
proxypass_entry.set_text(gajim.config.get_per('proxies', proxy,
|
||||||
|
@ -1637,8 +1637,8 @@ class ManageProxiesWindow:
|
||||||
(model, iter) = self.proxies_treeview.get_selection().get_selected()
|
(model, iter) = self.proxies_treeview.get_selection().get_selected()
|
||||||
if not iter:
|
if not iter:
|
||||||
return
|
return
|
||||||
old_name = model.get_value(iter, 0)
|
old_name = model.get_value(iter, 0).decode('utf-8')
|
||||||
new_name = widget.get_text()
|
new_name = widget.get_text().decode('utf-8')
|
||||||
if new_name == '':
|
if new_name == '':
|
||||||
return
|
return
|
||||||
if new_name == old_name:
|
if new_name == old_name:
|
||||||
|
@ -1656,23 +1656,23 @@ class ManageProxiesWindow:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def on_proxyhost_entry_changed(self, widget):
|
def on_proxyhost_entry_changed(self, widget):
|
||||||
value = widget.get_text()
|
value = widget.get_text().decode('utf-8')
|
||||||
proxy = self.proxyname_entry.get_text()
|
proxy = self.proxyname_entry.get_text().decode('utf-8')
|
||||||
gajim.config.set_per('proxies', proxy, 'host', value)
|
gajim.config.set_per('proxies', proxy, 'host', value)
|
||||||
|
|
||||||
def on_proxyport_entry_changed(self, widget):
|
def on_proxyport_entry_changed(self, widget):
|
||||||
value = widget.get_text()
|
value = widget.get_text().decode('utf-8')
|
||||||
proxy = self.proxyname_entry.get_text()
|
proxy = self.proxyname_entry.get_text().decode('utf-8')
|
||||||
gajim.config.set_per('proxies', proxy, 'port', value)
|
gajim.config.set_per('proxies', proxy, 'port', value)
|
||||||
|
|
||||||
def on_proxyuser_entry_changed(self, widget):
|
def on_proxyuser_entry_changed(self, widget):
|
||||||
value = widget.get_text()
|
value = widget.get_text().decode('utf-8')
|
||||||
proxy = self.proxyname_entry.get_text()
|
proxy = self.proxyname_entry.get_text().decode('utf-8')
|
||||||
gajim.config.set_per('proxies', proxy, 'user', value)
|
gajim.config.set_per('proxies', proxy, 'user', value)
|
||||||
|
|
||||||
def on_proxypass_entry_changed(self, widget):
|
def on_proxypass_entry_changed(self, widget):
|
||||||
value = widget.get_text()
|
value = widget.get_text().decode('utf-8')
|
||||||
proxy = self.proxyname_entry.get_text()
|
proxy = self.proxyname_entry.get_text().decode('utf-8')
|
||||||
gajim.config.set_per('proxies', proxy, 'pass', value)
|
gajim.config.set_per('proxies', proxy, 'pass', value)
|
||||||
|
|
||||||
|
|
||||||
|
@ -1741,7 +1741,7 @@ class AccountsWindow:
|
||||||
(model, iter) = sel.get_selected()
|
(model, iter) = sel.get_selected()
|
||||||
if not iter:
|
if not iter:
|
||||||
return
|
return
|
||||||
account = model.get_value(iter, 0)
|
account = model.get_value(iter, 0).decode('utf-8')
|
||||||
if self.plugin.windows[account].has_key('remove_account'):
|
if self.plugin.windows[account].has_key('remove_account'):
|
||||||
self.plugin.windows[account]['remove_account'].window.present()
|
self.plugin.windows[account]['remove_account'].window.present()
|
||||||
else:
|
else:
|
||||||
|
@ -1755,7 +1755,7 @@ class AccountsWindow:
|
||||||
(model, iter) = sel.get_selected()
|
(model, iter) = sel.get_selected()
|
||||||
if not iter:
|
if not iter:
|
||||||
return
|
return
|
||||||
account = model.get_value(iter, 0)
|
account = model.get_value(iter, 0).decode('utf-8')
|
||||||
if self.plugin.windows[account].has_key('account_modification'):
|
if self.plugin.windows[account].has_key('account_modification'):
|
||||||
self.plugin.windows[account]['account_modification'].window.present()
|
self.plugin.windows[account]['account_modification'].window.present()
|
||||||
else:
|
else:
|
||||||
|
@ -1799,7 +1799,7 @@ class ServiceRegistrationWindow:
|
||||||
'''When Ok button is clicked:
|
'''When Ok button is clicked:
|
||||||
send registration info to the core'''
|
send registration info to the core'''
|
||||||
for name in self.entries.keys():
|
for name in self.entries.keys():
|
||||||
self.infos[name] = self.entries[name].get_text()
|
self.infos[name] = self.entries[name].get_text().decode('utf-8')
|
||||||
if self.infos.has_key('instructions'):
|
if self.infos.has_key('instructions'):
|
||||||
del self.infos['instructions']
|
del self.infos['instructions']
|
||||||
if self.infos.has_key('registered'):
|
if self.infos.has_key('registered'):
|
||||||
|
@ -1874,11 +1874,12 @@ class ManageEmoticonsWindow:
|
||||||
|
|
||||||
def on_emoticons_treemodel_row_changed(self, model, path, iter):
|
def on_emoticons_treemodel_row_changed(self, model, path, iter):
|
||||||
emots = gajim.config.get_per('emoticons')
|
emots = gajim.config.get_per('emoticons')
|
||||||
emot = model.get_value(iter, 0).upper()
|
emot = model.get_value(iter, 0).decode('utf-8').upper()
|
||||||
if not emot in emots:
|
if not emot in emots:
|
||||||
gajim.config.add_per('emoticons', emot)
|
gajim.config.add_per('emoticons', emot)
|
||||||
self.plugin.init_regexp() # update regexp [emoticons included]
|
self.plugin.init_regexp() # update regexp [emoticons included]
|
||||||
gajim.config.set_per('emoticons', emot, 'path', model[iter][1])
|
gajim.config.set_per('emoticons', emot, 'path',
|
||||||
|
model[iter][1].decode('utf-8'))
|
||||||
self.plugin.save_config()
|
self.plugin.save_config()
|
||||||
|
|
||||||
def image_is_ok(self, image):
|
def image_is_ok(self, image):
|
||||||
|
@ -1925,17 +1926,17 @@ class ManageEmoticonsWindow:
|
||||||
emots = gajim.config.get_per('emoticons')
|
emots = gajim.config.get_per('emoticons')
|
||||||
model = self.emot_tree.get_model()
|
model = self.emot_tree.get_model()
|
||||||
iter = model.get_iter_from_string(row)
|
iter = model.get_iter_from_string(row)
|
||||||
old_text = model.get_value(iter, 0)
|
old_text = model.get_value(iter, 0).decode('utf-8')
|
||||||
if old_text in emots:
|
if old_text in emots:
|
||||||
gajim.config.del_per('emoticons', old_text)
|
gajim.config.del_per('emoticons', old_text)
|
||||||
emot = new_text.upper()
|
emot = new_text.decode('utf-8').upper()
|
||||||
if emot in emots:
|
if emot in emots:
|
||||||
model.remove(iter)
|
model.remove(iter)
|
||||||
else:
|
else:
|
||||||
gajim.config.add_per('emoticons', emot)
|
gajim.config.add_per('emoticons', emot)
|
||||||
self.plugin.init_regexp() # update regexp [emoticons included]
|
self.plugin.init_regexp() # update regexp [emoticons included]
|
||||||
gajim.config.set_per('emoticons', emot, 'path',
|
gajim.config.set_per('emoticons', emot, 'path',
|
||||||
model[iter][1])
|
model[iter][1].decode('utf-8'))
|
||||||
model.set_value(iter, 0, emot)
|
model.set_value(iter, 0, emot)
|
||||||
self.plugin.save_config()
|
self.plugin.save_config()
|
||||||
|
|
||||||
|
@ -1947,7 +1948,7 @@ class ManageEmoticonsWindow:
|
||||||
(model, iter) = self.emot_tree.get_selection().get_selected()
|
(model, iter) = self.emot_tree.get_selection().get_selected()
|
||||||
if not iter:
|
if not iter:
|
||||||
return
|
return
|
||||||
file = model[iter][1]
|
file = model[iter][1].decode('utf-8')
|
||||||
dialog = gtk.FileChooserDialog(_('Choose Image'), None,
|
dialog = gtk.FileChooserDialog(_('Choose Image'), None,
|
||||||
gtk.FILE_CHOOSER_ACTION_OPEN,
|
gtk.FILE_CHOOSER_ACTION_OPEN,
|
||||||
(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
|
(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
|
||||||
|
@ -2019,7 +2020,7 @@ class ManageEmoticonsWindow:
|
||||||
(model, iter) = self.emot_tree.get_selection().get_selected()
|
(model, iter) = self.emot_tree.get_selection().get_selected()
|
||||||
if not iter:
|
if not iter:
|
||||||
return
|
return
|
||||||
gajim.config.del_per('emoticons', model.get_value(iter, 0))
|
gajim.config.del_per('emoticons', model.get_value(iter, 0).decode('utf-8'))
|
||||||
self.plugin.init_regexp() # update regexp [emoticons included]
|
self.plugin.init_regexp() # update regexp [emoticons included]
|
||||||
self.plugin.save_config()
|
self.plugin.save_config()
|
||||||
model.remove(iter)
|
model.remove(iter)
|
||||||
|
@ -2135,11 +2136,11 @@ _('Without a connection, you can not browse available services')).get_response()
|
||||||
|
|
||||||
def on_services_treeview_row_expanded(self, widget, iter, path):
|
def on_services_treeview_row_expanded(self, widget, iter, path):
|
||||||
model = self.services_treeview.get_model()
|
model = self.services_treeview.get_model()
|
||||||
jid = model[iter][1]
|
jid = model[iter][1].decode('utf-8')
|
||||||
child = model.iter_children(iter)
|
child = model.iter_children(iter)
|
||||||
while child:
|
while child:
|
||||||
child_jid = model.get_value(child, 1)
|
child_jid = model.get_value(child, 1).decode('utf-8')
|
||||||
child_node = model.get_value(child, 2)
|
child_node = model.get_value(child, 2).decode('utf-8')
|
||||||
# We never requested its infos
|
# We never requested its infos
|
||||||
if not self.agent_infos[child_jid + child_node].has_key('features'):
|
if not self.agent_infos[child_jid + child_node].has_key('features'):
|
||||||
self.browse(child_jid, child_node)
|
self.browse(child_jid, child_node)
|
||||||
|
@ -2151,8 +2152,8 @@ _('Without a connection, you can not browse available services')).get_response()
|
||||||
iter = model.get_iter_root()
|
iter = model.get_iter_root()
|
||||||
# We look if this agent is in the treeview
|
# We look if this agent is in the treeview
|
||||||
while (iter):
|
while (iter):
|
||||||
if agent == model[iter][1] and node == model.get_value(
|
if agent == model[iter][1].decode('utf-8') and\
|
||||||
iter, 2):
|
node == model.get_value(iter, 2).decode('utf-8'):
|
||||||
break
|
break
|
||||||
if model.iter_has_child(iter):
|
if model.iter_has_child(iter):
|
||||||
iter = model.iter_children(iter)
|
iter = model.iter_children(iter)
|
||||||
|
@ -2176,8 +2177,8 @@ _('Without a connection, you can not browse available services')).get_response()
|
||||||
iter = model.get_iter_root()
|
iter = model.get_iter_root()
|
||||||
# We look if this agent is in the treeview
|
# We look if this agent is in the treeview
|
||||||
while (iter):
|
while (iter):
|
||||||
if agent == model[iter][1] and node == model.get_value(
|
if agent == model[iter][1].decode('utf-8') and\
|
||||||
iter, 2):
|
node == model.get_value(iter, 2).decode('utf-8'):
|
||||||
break
|
break
|
||||||
if model.iter_has_child(iter):
|
if model.iter_has_child(iter):
|
||||||
iter = model.iter_children(iter)
|
iter = model.iter_children(iter)
|
||||||
|
@ -2201,8 +2202,8 @@ _('Without a connection, you can not browse available services')).get_response()
|
||||||
# We look if this item is already in the treeview
|
# We look if this item is already in the treeview
|
||||||
iter_child = model.iter_children(iter)
|
iter_child = model.iter_children(iter)
|
||||||
while iter_child:
|
while iter_child:
|
||||||
if item['jid'] == model.get_value(iter_child, 1) and \
|
if item['jid'] == model.get_value(iter_child, 1).decode('utf-8') and\
|
||||||
node == model.get_value(iter_child, 2):
|
node == model.get_value(iter_child, 2).decode('utf-8'):
|
||||||
break
|
break
|
||||||
iter_child = model.iter_next(iter_child)
|
iter_child = model.iter_next(iter_child)
|
||||||
if not iter_child: # If it is not we add it
|
if not iter_child: # If it is not we add it
|
||||||
|
@ -2223,7 +2224,7 @@ _('Without a connection, you can not browse available services')).get_response()
|
||||||
def on_refresh_button_clicked(self, widget):
|
def on_refresh_button_clicked(self, widget):
|
||||||
'''When refresh button is clicked: refresh list: clear and rerequest it'''
|
'''When refresh button is clicked: refresh list: clear and rerequest it'''
|
||||||
self.services_treeview.get_model().clear()
|
self.services_treeview.get_model().clear()
|
||||||
jid = self.address_comboboxentry.child.get_text()
|
jid = self.address_comboboxentry.child.get_text().decode('utf-8')
|
||||||
self.browse(jid)
|
self.browse(jid)
|
||||||
|
|
||||||
def on_address_comboboxentry_changed(self, widget):
|
def on_address_comboboxentry_changed(self, widget):
|
||||||
|
@ -2231,7 +2232,7 @@ _('Without a connection, you can not browse available services')).get_response()
|
||||||
if self.address_comboboxentry.get_active() != -1:
|
if self.address_comboboxentry.get_active() != -1:
|
||||||
# user selected one of the entries so do auto-visit
|
# user selected one of the entries so do auto-visit
|
||||||
self.services_treeview.get_model().clear()
|
self.services_treeview.get_model().clear()
|
||||||
server_address = self.address_comboboxentry.child.get_text()
|
server_address = self.address_comboboxentry.child.get_text().decode('utf-8')
|
||||||
self.browse(server_address)
|
self.browse(server_address)
|
||||||
|
|
||||||
def on_services_treeview_row_activated(self, widget, path, col = 0):
|
def on_services_treeview_row_activated(self, widget, path, col = 0):
|
||||||
|
@ -2248,7 +2249,7 @@ _('Without a connection, you can not browse available services')).get_response()
|
||||||
model, iter = self.services_treeview.get_selection().get_selected()
|
model, iter = self.services_treeview.get_selection().get_selected()
|
||||||
if not iter:
|
if not iter:
|
||||||
return
|
return
|
||||||
service = model[iter][1]
|
service = model[iter][1].decode('utf-8')
|
||||||
room = ''
|
room = ''
|
||||||
if service.find('@') != -1:
|
if service.find('@') != -1:
|
||||||
services = service.split('@')
|
services = service.split('@')
|
||||||
|
@ -2265,7 +2266,7 @@ _('Without a connection, you can not browse available services')).get_response()
|
||||||
model, iter = self.services_treeview.get_selection().get_selected()
|
model, iter = self.services_treeview.get_selection().get_selected()
|
||||||
if not iter :
|
if not iter :
|
||||||
return
|
return
|
||||||
service = model[iter][1]
|
service = model[iter][1].decode('utf-8')
|
||||||
gajim.connections[self.account].request_register_agent_info(service)
|
gajim.connections[self.account].request_register_agent_info(service)
|
||||||
|
|
||||||
self.window.destroy()
|
self.window.destroy()
|
||||||
|
@ -2281,8 +2282,8 @@ _('Without a connection, you can not browse available services')).get_response()
|
||||||
path = model.get_path(iter)
|
path = model.get_path(iter)
|
||||||
if len(path) == 1: # we selected the jabber server
|
if len(path) == 1: # we selected the jabber server
|
||||||
return
|
return
|
||||||
jid = model[iter][1]
|
jid = model[iter][1].decode('utf-8')
|
||||||
node = model[iter][2]
|
node = model[iter][2].decode('utf-8')
|
||||||
registered_transports = []
|
registered_transports = []
|
||||||
contacts = gajim.contacts[self.account]
|
contacts = gajim.contacts[self.account]
|
||||||
for j in contacts:
|
for j in contacts:
|
||||||
|
@ -2303,7 +2304,7 @@ _('Without a connection, you can not browse available services')).get_response()
|
||||||
self.join_button.set_sensitive(True)
|
self.join_button.set_sensitive(True)
|
||||||
|
|
||||||
def on_go_button_clicked(self, widget):
|
def on_go_button_clicked(self, widget):
|
||||||
server_address = self.address_comboboxentry.child.get_text()
|
server_address = self.address_comboboxentry.child.get_text().decode('utf-8')
|
||||||
if server_address in self.latest_addresses:
|
if server_address in self.latest_addresses:
|
||||||
self.latest_addresses.remove(server_address)
|
self.latest_addresses.remove(server_address)
|
||||||
self.latest_addresses.insert(0, server_address)
|
self.latest_addresses.insert(0, server_address)
|
||||||
|
@ -2351,7 +2352,7 @@ class GroupchatConfigWindow:
|
||||||
widget.get_active()]['values'][0]
|
widget.get_active()]['values'][0]
|
||||||
|
|
||||||
def on_entry_changed(self, widget, index):
|
def on_entry_changed(self, widget, index):
|
||||||
self.config[index]['values'][0] = widget.get_text()
|
self.config[index]['values'][0] = widget.get_text().decode('utf-8')
|
||||||
|
|
||||||
def on_textbuffer_changed(self, widget, index):
|
def on_textbuffer_changed(self, widget, index):
|
||||||
begin, end = widget.get_bounds()
|
begin, end = widget.get_bounds()
|
||||||
|
@ -2627,7 +2628,7 @@ class ManageBookmarksWindow:
|
||||||
#Account data can't be changed
|
#Account data can't be changed
|
||||||
return
|
return
|
||||||
|
|
||||||
if self.server_entry.get_text() == '' or self.room_entry.get_text() == '':
|
if self.server_entry.get_text().decode('utf-8') == '' or self.room_entry.get_text().decode('utf-8') == '':
|
||||||
dialogs.ErrorDialog(_('This bookmark has invalid data'),
|
dialogs.ErrorDialog(_('This bookmark has invalid data'),
|
||||||
_('Please be sure to fill out server and room fields or remove this bookmark.')).get_response()
|
_('Please be sure to fill out server and room fields or remove this bookmark.')).get_response()
|
||||||
return False
|
return False
|
||||||
|
@ -2650,7 +2651,7 @@ _('Please be sure to fill out server and room fields or remove this bookmark.'))
|
||||||
|
|
||||||
for bm in account.iterchildren():
|
for bm in account.iterchildren():
|
||||||
#Convert True/False/None to '1' or '0'
|
#Convert True/False/None to '1' or '0'
|
||||||
autojoin = str(int(bm[3]))
|
autojoin = unicode(int(bm[3]))
|
||||||
|
|
||||||
#create the bookmark-dict
|
#create the bookmark-dict
|
||||||
bmdict = { 'name': bm[1], 'jid': bm[2], 'autojoin': autojoin,
|
bmdict = { 'name': bm[1], 'jid': bm[2], 'autojoin': autojoin,
|
||||||
|
@ -2693,7 +2694,7 @@ _('Please be sure to fill out server and room fields or remove this bookmark.'))
|
||||||
|
|
||||||
#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]
|
room_jid = model[iter][2].decode('utf-8')
|
||||||
try:
|
try:
|
||||||
(room, server) = room_jid.split('@')
|
(room, server) = room_jid.split('@')
|
||||||
except ValueError:
|
except ValueError:
|
||||||
|
@ -2722,15 +2723,15 @@ _('Please be sure to fill out server and room fields or remove this bookmark.'))
|
||||||
def on_server_entry_changed(self, widget):
|
def on_server_entry_changed(self, widget):
|
||||||
(model, iter) = self.selection.get_selected()
|
(model, iter) = self.selection.get_selected()
|
||||||
if iter:
|
if iter:
|
||||||
room_jid = self.room_entry.get_text() + '@' + \
|
room_jid = self.room_entry.get_text().decode('utf-8') + '@' + \
|
||||||
self.server_entry.get_text()
|
self.server_entry.get_text().decode('utf-8')
|
||||||
model[iter][2] = room_jid
|
model[iter][2] = room_jid
|
||||||
|
|
||||||
def on_room_entry_changed(self, widget):
|
def on_room_entry_changed(self, widget):
|
||||||
(model, iter) = self.selection.get_selected()
|
(model, iter) = self.selection.get_selected()
|
||||||
if iter:
|
if iter:
|
||||||
room_jid = self.room_entry.get_text() + '@' + \
|
room_jid = self.room_entry.get_text().decode('utf-8') + '@' + \
|
||||||
self.server_entry.get_text()
|
self.server_entry.get_text().decode('utf-8')
|
||||||
model[iter][2] = room_jid
|
model[iter][2] = room_jid
|
||||||
|
|
||||||
def on_pass_entry_changed(self, widget):
|
def on_pass_entry_changed(self, widget):
|
||||||
|
@ -2843,7 +2844,7 @@ class FirstTimeWizardWindow:
|
||||||
self.back_button.set_sensitive(True)
|
self.back_button.set_sensitive(True)
|
||||||
|
|
||||||
elif cur_page == 1:
|
elif cur_page == 1:
|
||||||
user = self.nick_entry.get_text()
|
user = self.nick_entry.get_text().decode('utf-8')
|
||||||
server = self.server_comboboxentry.get_active_text()
|
server = self.server_comboboxentry.get_active_text()
|
||||||
if self.check_data(user, server):
|
if self.check_data(user, server):
|
||||||
#TODO: write account to config file
|
#TODO: write account to config file
|
||||||
|
@ -2854,7 +2855,7 @@ class FirstTimeWizardWindow:
|
||||||
self.go_to_last_page()
|
self.go_to_last_page()
|
||||||
|
|
||||||
elif cur_page == 2:
|
elif cur_page == 2:
|
||||||
user = self.register_nick_entry.get_text()
|
user = self.register_nick_entry.get_text().decode('utf-8')
|
||||||
server = self.register_server_comboboxentry.get_active_text()
|
server = self.register_server_comboboxentry.get_active_text()
|
||||||
if self.check_data(user, server):
|
if self.check_data(user, server):
|
||||||
#TODO: Register account
|
#TODO: Register account
|
||||||
|
@ -2930,7 +2931,7 @@ _('You need to enter a valid server address to add an account.')).get_response()
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def update_jid(self, name_widget, server_widget, jid_widget):
|
def update_jid(self, name_widget, server_widget, jid_widget):
|
||||||
name = name_widget.get_text()
|
name = name_widget.get_text().decode('utf-8')
|
||||||
server = server_widget.get_active_text()
|
server = server_widget.get_active_text()
|
||||||
if len(name) == 0 or len(server) == 0:
|
if len(name) == 0 or len(server) == 0:
|
||||||
jid_widget.set_label('')
|
jid_widget.set_label('')
|
||||||
|
|
|
@ -76,14 +76,14 @@ class EditGroupsDialog:
|
||||||
self.user.name, self.user.groups)
|
self.user.name, self.user.groups)
|
||||||
|
|
||||||
def on_add_button_clicked(self, widget):
|
def on_add_button_clicked(self, widget):
|
||||||
group = self.xml.get_widget('group_entry').get_text()
|
group = self.xml.get_widget('group_entry').get_text().decode('utf-8')
|
||||||
if not group:
|
if not group:
|
||||||
return
|
return
|
||||||
# check if it already exists
|
# check if it already exists
|
||||||
model = self.list.get_model()
|
model = self.list.get_model()
|
||||||
iter = model.get_iter_root()
|
iter = model.get_iter_root()
|
||||||
while iter:
|
while iter:
|
||||||
if model.get_value(iter, 0) == group:
|
if model.get_value(iter, 0).decode('utf-8') == group:
|
||||||
return
|
return
|
||||||
iter = model.iter_next(iter)
|
iter = model.iter_next(iter)
|
||||||
self.changes_made = True
|
self.changes_made = True
|
||||||
|
@ -101,9 +101,9 @@ class EditGroupsDialog:
|
||||||
return
|
return
|
||||||
model[path][1] = not model[path][1]
|
model[path][1] = not model[path][1]
|
||||||
if model[path][1]:
|
if model[path][1]:
|
||||||
self.user.groups.append(model[path][0])
|
self.user.groups.append(model[path][0].decode('utf-8'))
|
||||||
else:
|
else:
|
||||||
self.user.groups.remove(model[path][0])
|
self.user.groups.remove(model[path][0].decode('utf-8'))
|
||||||
self.update_contact()
|
self.update_contact()
|
||||||
|
|
||||||
def init_list(self):
|
def init_list(self):
|
||||||
|
@ -138,7 +138,7 @@ class PassphraseDialog:
|
||||||
'''Wait for OK button to be pressed and return passphrase/password'''
|
'''Wait for OK button to be pressed and return passphrase/password'''
|
||||||
rep = self.window.run()
|
rep = self.window.run()
|
||||||
if rep == gtk.RESPONSE_OK:
|
if rep == gtk.RESPONSE_OK:
|
||||||
passphrase = self.passphrase_entry.get_text()
|
passphrase = self.passphrase_entry.get_text().decode('utf-8')
|
||||||
else:
|
else:
|
||||||
passphrase = -1
|
passphrase = -1
|
||||||
save_passphrase_checkbutton = self.xml.\
|
save_passphrase_checkbutton = self.xml.\
|
||||||
|
@ -185,7 +185,7 @@ class ChooseGPGKeyDialog:
|
||||||
if rep == gtk.RESPONSE_OK:
|
if rep == gtk.RESPONSE_OK:
|
||||||
selection = self.keys_treeview.get_selection()
|
selection = self.keys_treeview.get_selection()
|
||||||
(model, iter) = selection.get_selected()
|
(model, iter) = selection.get_selected()
|
||||||
keyID = [ model[iter][0], model[iter][1] ]
|
keyID = [ model[iter][0].decode('utf-8'), model[iter][1] ]
|
||||||
else:
|
else:
|
||||||
keyID = None
|
keyID = None
|
||||||
self.window.destroy()
|
self.window.destroy()
|
||||||
|
@ -234,7 +234,7 @@ class ChangeStatusMessageDialog:
|
||||||
rep = self.window.run()
|
rep = self.window.run()
|
||||||
if rep == gtk.RESPONSE_OK:
|
if rep == gtk.RESPONSE_OK:
|
||||||
beg, end = self.message_buffer.get_bounds()
|
beg, end = self.message_buffer.get_bounds()
|
||||||
message = self.message_buffer.get_text(beg, end, 0).strip()
|
message = self.message_buffer.get_text(beg, end, 0).decode('utf-8').strip()
|
||||||
msg = helpers.to_one_line(message)
|
msg = helpers.to_one_line(message)
|
||||||
gajim.config.set('last_status_msg_' + self.show, msg)
|
gajim.config.set('last_status_msg_' + self.show, msg)
|
||||||
else:
|
else:
|
||||||
|
@ -247,7 +247,7 @@ class ChangeStatusMessageDialog:
|
||||||
active = widget.get_active()
|
active = widget.get_active()
|
||||||
if active < 0:
|
if active < 0:
|
||||||
return None
|
return None
|
||||||
name = model[active][0]
|
name = model[active][0].decode('utf-8')
|
||||||
self.message_buffer.set_text(self.values[name])
|
self.message_buffer.set_text(self.values[name])
|
||||||
|
|
||||||
def on_change_status_message_dialog_key_press_event(self, widget, event):
|
def on_change_status_message_dialog_key_press_event(self, widget, event):
|
||||||
|
@ -332,8 +332,8 @@ _('Please fill in the data of the contact you want to add in account %s') %accou
|
||||||
|
|
||||||
def on_subscribe_button_clicked(self, widget):
|
def on_subscribe_button_clicked(self, widget):
|
||||||
'''When Subscribe button is clicked'''
|
'''When Subscribe button is clicked'''
|
||||||
jid = self.jid_entry.get_text()
|
jid = self.jid_entry.get_text().decode('utf-8')
|
||||||
nickname = self.nickname_entry.get_text()
|
nickname = self.nickname_entry.get_text().decode('utf-8')
|
||||||
if not jid:
|
if not jid:
|
||||||
return
|
return
|
||||||
if jid.find('@') < 0:
|
if jid.find('@') < 0:
|
||||||
|
@ -343,8 +343,8 @@ _('Contact names must be of the form "user@servername".')).get_response()
|
||||||
message_buffer = self.xml.get_widget('message_textview').get_buffer()
|
message_buffer = self.xml.get_widget('message_textview').get_buffer()
|
||||||
start_iter = message_buffer.get_start_iter()
|
start_iter = message_buffer.get_start_iter()
|
||||||
end_iter = message_buffer.get_end_iter()
|
end_iter = message_buffer.get_end_iter()
|
||||||
message = message_buffer.get_text(start_iter, end_iter, 0)
|
message = message_buffer.get_text(start_iter, end_iter, 0).decode('utf-8')
|
||||||
group = self.group_comboboxentry.child.get_text()
|
group = self.group_comboboxentry.child.get_text().decode('utf-8')
|
||||||
self.plugin.roster.req_sub(self, jid, message, self.account,
|
self.plugin.roster.req_sub(self, jid, message, self.account,
|
||||||
group = group, pseudo = nickname)
|
group = group, pseudo = nickname)
|
||||||
if self.xml.get_widget('auto_authorize_checkbutton').get_active():
|
if self.xml.get_widget('auto_authorize_checkbutton').get_active():
|
||||||
|
@ -354,10 +354,10 @@ _('Contact names must be of the form "user@servername".')).get_response()
|
||||||
def fill_jid(self):
|
def fill_jid(self):
|
||||||
model = self.protocol_combobox.get_model()
|
model = self.protocol_combobox.get_model()
|
||||||
index = self.protocol_combobox.get_active()
|
index = self.protocol_combobox.get_active()
|
||||||
jid = self.uid_entry.get_text().strip()
|
jid = self.uid_entry.get_text().decode('utf-8').strip()
|
||||||
if index > 0: # it's not jabber but a transport
|
if index > 0: # it's not jabber but a transport
|
||||||
jid = jid.replace('@', '%')
|
jid = jid.replace('@', '%')
|
||||||
agent = model[index][1]
|
agent = model[index][1].decode('utf-8')
|
||||||
if agent:
|
if agent:
|
||||||
jid += '@' + agent
|
jid += '@' + agent
|
||||||
self.jid_entry.set_text(jid)
|
self.jid_entry.set_text(jid)
|
||||||
|
@ -366,7 +366,7 @@ _('Contact names must be of the form "user@servername".')).get_response()
|
||||||
self.fill_jid()
|
self.fill_jid()
|
||||||
|
|
||||||
def guess_agent(self):
|
def guess_agent(self):
|
||||||
uid = self.uid_entry.get_text()
|
uid = self.uid_entry.get_text().decode('utf-8')
|
||||||
model = self.protocol_combobox.get_model()
|
model = self.protocol_combobox.get_model()
|
||||||
|
|
||||||
#If login contains only numbers, it's probably an ICQ number
|
#If login contains only numbers, it's probably an ICQ number
|
||||||
|
@ -376,13 +376,13 @@ _('Contact names must be of the form "user@servername".')).get_response()
|
||||||
return
|
return
|
||||||
|
|
||||||
def set_nickname(self):
|
def set_nickname(self):
|
||||||
uid = self.uid_entry.get_text()
|
uid = self.uid_entry.get_text().decode('utf-8')
|
||||||
nickname = self.nickname_entry.get_text()
|
nickname = self.nickname_entry.get_text().decode('utf-8')
|
||||||
if nickname == self.old_uid_value:
|
if nickname == self.old_uid_value:
|
||||||
self.nickname_entry.set_text(uid.split('@')[0])
|
self.nickname_entry.set_text(uid.split('@')[0])
|
||||||
|
|
||||||
def on_uid_entry_changed(self, widget):
|
def on_uid_entry_changed(self, widget):
|
||||||
uid = self.uid_entry.get_text()
|
uid = self.uid_entry.get_text().decode('utf-8')
|
||||||
self.guess_agent()
|
self.guess_agent()
|
||||||
self.set_nickname()
|
self.set_nickname()
|
||||||
self.fill_jid()
|
self.fill_jid()
|
||||||
|
@ -544,7 +544,7 @@ class InputDialog:
|
||||||
self.dialog.show_all()
|
self.dialog.show_all()
|
||||||
|
|
||||||
def on_okbutton_clicked(self, widget):
|
def on_okbutton_clicked(self, widget):
|
||||||
response = self.input_entry.get_text()
|
response = self.input_entry.get_text().decode('utf-8')
|
||||||
self.dialog.destroy()
|
self.dialog.destroy()
|
||||||
self.ok_handler(response)
|
self.ok_handler(response)
|
||||||
|
|
||||||
|
@ -664,7 +664,7 @@ _('You can not join a group chat unless you are connected.')).get_response()
|
||||||
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()
|
||||||
gid = model[iter][0]
|
gid = model[iter][0].decode('utf-8')
|
||||||
self.xml.get_widget('room_entry').set_text(gid.split('@')[0])
|
self.xml.get_widget('room_entry').set_text(gid.split('@')[0])
|
||||||
self.xml.get_widget('server_entry').set_text(gid.split('@')[1])
|
self.xml.get_widget('server_entry').set_text(gid.split('@')[1])
|
||||||
|
|
||||||
|
@ -674,10 +674,10 @@ _('You can not join a group chat unless you are connected.')).get_response()
|
||||||
|
|
||||||
def on_join_button_clicked(self, widget):
|
def on_join_button_clicked(self, widget):
|
||||||
'''When Join button is clicked'''
|
'''When Join button is clicked'''
|
||||||
nickname = self.xml.get_widget('nickname_entry').get_text()
|
nickname = self.xml.get_widget('nickname_entry').get_text().decode('utf-8')
|
||||||
room = self.xml.get_widget('room_entry').get_text()
|
room = self.xml.get_widget('room_entry').get_text().decode('utf-8')
|
||||||
server = self.xml.get_widget('server_entry').get_text()
|
server = self.xml.get_widget('server_entry').get_text().decode('utf-8')
|
||||||
password = self.xml.get_widget('password_entry').get_text()
|
password = self.xml.get_widget('password_entry').get_text().decode('utf-8')
|
||||||
jid = '%s@%s' % (room, server)
|
jid = '%s@%s' % (room, server)
|
||||||
if jid in self.recently_groupchat:
|
if jid in self.recently_groupchat:
|
||||||
self.recently_groupchat.remove(jid)
|
self.recently_groupchat.remove(jid)
|
||||||
|
@ -743,12 +743,12 @@ _('Without a connection, you can not change your password.')).get_response()
|
||||||
while not end:
|
while not end:
|
||||||
rep = self.dialog.run()
|
rep = self.dialog.run()
|
||||||
if rep == gtk.RESPONSE_OK:
|
if rep == gtk.RESPONSE_OK:
|
||||||
password1 = self.password1_entry.get_text()
|
password1 = self.password1_entry.get_text().decode('utf-8')
|
||||||
if not password1:
|
if not password1:
|
||||||
ErrorDialog(_('Invalid password'),
|
ErrorDialog(_('Invalid password'),
|
||||||
_('You must enter a password.')).get_response()
|
_('You must enter a password.')).get_response()
|
||||||
continue
|
continue
|
||||||
password2 = self.password2_entry.get_text()
|
password2 = self.password2_entry.get_text().decode('utf-8')
|
||||||
if password1 != password2:
|
if password1 != password2:
|
||||||
ErrorDialog(_('Passwords do not match'),
|
ErrorDialog(_('Passwords do not match'),
|
||||||
_('The passwords typed in both fields must be identical.')).get_response()
|
_('The passwords typed in both fields must be identical.')).get_response()
|
||||||
|
@ -818,7 +818,7 @@ class PopupNotificationWindow:
|
||||||
if file_props is not None:
|
if file_props is not None:
|
||||||
if file_props['type'] == 'r':
|
if file_props['type'] == 'r':
|
||||||
# get the name of the sender, as it is in the roster
|
# get the name of the sender, as it is in the roster
|
||||||
sender = str(file_props['sender']).split('/')[0]
|
sender = unicode(file_props['sender']).split('/')[0]
|
||||||
name = gajim.get_first_contact_instance_from_jid(
|
name = gajim.get_first_contact_instance_from_jid(
|
||||||
account, sender).name
|
account, sender).name
|
||||||
txt = _('From %s') % name
|
txt = _('From %s') % name
|
||||||
|
@ -1017,7 +1017,7 @@ class SingleMessageWindow:
|
||||||
|
|
||||||
def update_char_counter(self, widget):
|
def update_char_counter(self, widget):
|
||||||
characters_no = self.message_tv_buffer.get_char_count()
|
characters_no = self.message_tv_buffer.get_char_count()
|
||||||
self.count_chars_label.set_text(str(characters_no))
|
self.count_chars_label.set_text(unicode(characters_no))
|
||||||
|
|
||||||
def send_single_message(self):
|
def send_single_message(self):
|
||||||
if gajim.connections[self.account].connected <= 1:
|
if gajim.connections[self.account].connected <= 1:
|
||||||
|
@ -1026,10 +1026,10 @@ class SingleMessageWindow:
|
||||||
_('Please make sure you are connected with "%s".' % self.account)
|
_('Please make sure you are connected with "%s".' % self.account)
|
||||||
).get_response()
|
).get_response()
|
||||||
return
|
return
|
||||||
to_whom_jid = self.to_entry.get_text()
|
to_whom_jid = self.to_entry.get_text().decode('utf-8')
|
||||||
subject = self.subject_entry.get_text()
|
subject = self.subject_entry.get_text().decode('utf-8')
|
||||||
begin, end = self.message_tv_buffer.get_bounds()
|
begin, end = self.message_tv_buffer.get_bounds()
|
||||||
message = self.message_tv_buffer.get_text(begin, end)
|
message = self.message_tv_buffer.get_text(begin, end).decode('utf-8')
|
||||||
|
|
||||||
if to_whom_jid.find('/announce/') != -1:
|
if to_whom_jid.find('/announce/') != -1:
|
||||||
gajim.connections[self.account].send_motd(to_whom_jid, subject,
|
gajim.connections[self.account].send_motd(to_whom_jid, subject,
|
||||||
|
@ -1148,7 +1148,7 @@ class XMLConsoleWindow:
|
||||||
).get_response()
|
).get_response()
|
||||||
return
|
return
|
||||||
begin_iter, end_iter = self.input_tv_buffer.get_bounds()
|
begin_iter, end_iter = self.input_tv_buffer.get_bounds()
|
||||||
stanza = self.input_tv_buffer.get_text(begin_iter, end_iter)
|
stanza = self.input_tv_buffer.get_text(begin_iter, end_iter).decode('utf-8')
|
||||||
if stanza:
|
if stanza:
|
||||||
gajim.connections[self.account].send_stanza(stanza)
|
gajim.connections[self.account].send_stanza(stanza)
|
||||||
self.input_tv_buffer.set_text('') # we sent ok, clear the textview
|
self.input_tv_buffer.set_text('') # we sent ok, clear the textview
|
||||||
|
|
|
@ -117,7 +117,7 @@ class FileTransfersWindow:
|
||||||
# 'account' is the sender
|
# 'account' is the sender
|
||||||
for file_props in self.files_props['s'].values():
|
for file_props in self.files_props['s'].values():
|
||||||
if file_props['tt_account'] == account:
|
if file_props['tt_account'] == account:
|
||||||
receiver_jid = str(file_props['receiver']).split('/')[0]
|
receiver_jid = unicode(file_props['receiver']).split('/')[0]
|
||||||
if jid == receiver_jid:
|
if jid == receiver_jid:
|
||||||
if not self.is_transfer_stoped(file_props):
|
if not self.is_transfer_stoped(file_props):
|
||||||
active_transfers[0].append(file_props)
|
active_transfers[0].append(file_props)
|
||||||
|
@ -125,7 +125,7 @@ class FileTransfersWindow:
|
||||||
# 'account' is the recipient
|
# 'account' is the recipient
|
||||||
for file_props in self.files_props['r'].values():
|
for file_props in self.files_props['r'].values():
|
||||||
if file_props['tt_account'] == account:
|
if file_props['tt_account'] == account:
|
||||||
sender_jid = str(file_props['sender']).split('/')[0]
|
sender_jid = unicode(file_props['sender']).split('/')[0]
|
||||||
if jid == sender_jid:
|
if jid == sender_jid:
|
||||||
if not self.is_transfer_stoped(file_props):
|
if not self.is_transfer_stoped(file_props):
|
||||||
active_transfers[1].append(file_props)
|
active_transfers[1].append(file_props)
|
||||||
|
@ -145,7 +145,7 @@ class FileTransfersWindow:
|
||||||
sectext += '\n\t' + _('Size: %s') % \
|
sectext += '\n\t' + _('Size: %s') % \
|
||||||
helpers.convert_bytes(file_props['size'])
|
helpers.convert_bytes(file_props['size'])
|
||||||
if file_props['type'] == 'r':
|
if file_props['type'] == 'r':
|
||||||
jid = str(file_props['sender']).split('/')[0]
|
jid = unicode(file_props['sender']).split('/')[0]
|
||||||
sender_name = gajim.get_first_contact_instance_from_jid(
|
sender_name = gajim.get_first_contact_instance_from_jid(
|
||||||
file_props['tt_account'], jid).name
|
file_props['tt_account'], jid).name
|
||||||
sender = gtkgui_helpers.escape_for_pango_markup(sender_name)
|
sender = gtkgui_helpers.escape_for_pango_markup(sender_name)
|
||||||
|
@ -155,7 +155,7 @@ class FileTransfersWindow:
|
||||||
sectext += '\n\t' +_('Sender: %s') % sender
|
sectext += '\n\t' +_('Sender: %s') % sender
|
||||||
sectext += '\n\t' +_('Recipient: ')
|
sectext += '\n\t' +_('Recipient: ')
|
||||||
if file_props['type'] == 's':
|
if file_props['type'] == 's':
|
||||||
jid = str(file_props['receiver']).split('/')[0]
|
jid = unicode(file_props['receiver']).split('/')[0]
|
||||||
receiver_name = gajim.get_first_contact_instance_from_jid(
|
receiver_name = gajim.get_first_contact_instance_from_jid(
|
||||||
file_props['tt_account'], jid).name
|
file_props['tt_account'], jid).name
|
||||||
recipient = gtkgui_helpers.escape_for_pango_markup(receiver_name)
|
recipient = gtkgui_helpers.escape_for_pango_markup(receiver_name)
|
||||||
|
@ -342,7 +342,7 @@ _('Connection with peer cannot be established.'))
|
||||||
iter = self.get_iter_by_sid(typ, sid)
|
iter = self.get_iter_by_sid(typ, sid)
|
||||||
if iter is None:
|
if iter is None:
|
||||||
return
|
return
|
||||||
sid = self.model[iter][4]
|
sid = self.model[iter][4].decode('utf-8')
|
||||||
file_props = self.files_props[sid[0]][sid[1:]]
|
file_props = self.files_props[sid[0]][sid[1:]]
|
||||||
if status == 'stop':
|
if status == 'stop':
|
||||||
file_props['stopped'] = True
|
file_props['stopped'] = True
|
||||||
|
@ -363,7 +363,7 @@ _('Connection with peer cannot be established.'))
|
||||||
if iter is None:
|
if iter is None:
|
||||||
iter = self.get_iter_by_sid(typ, sid)
|
iter = self.get_iter_by_sid(typ, sid)
|
||||||
if iter is not None:
|
if iter is not None:
|
||||||
text = str(percent) + '%\n'
|
text = unicode(percent) + '%\n'
|
||||||
if transfered_size == 0:
|
if transfered_size == 0:
|
||||||
text += '0'
|
text += '0'
|
||||||
else:
|
else:
|
||||||
|
@ -389,7 +389,7 @@ _('Connection with peer cannot be established.'))
|
||||||
session id'''
|
session id'''
|
||||||
iter = self.model.get_iter_root()
|
iter = self.model.get_iter_root()
|
||||||
while iter:
|
while iter:
|
||||||
if typ + sid == self.model[iter][4]:
|
if typ + sid == self.model[iter][4].decode('utf-8'):
|
||||||
return iter
|
return iter
|
||||||
iter = self.model.iter_next(iter)
|
iter = self.model.iter_next(iter)
|
||||||
|
|
||||||
|
@ -410,7 +410,7 @@ _('Connection with peer cannot be established.'))
|
||||||
if os.path.exists(file_path) and os.path.isfile(file_path):
|
if os.path.exists(file_path) and os.path.isfile(file_path):
|
||||||
stat = os.stat(file_path)
|
stat = os.stat(file_path)
|
||||||
os.stat(file_path)
|
os.stat(file_path)
|
||||||
file_props['size'] = str(stat[6])
|
file_props['size'] = unicode(stat[6])
|
||||||
file_props['sid'] = self.get_sid()
|
file_props['sid'] = self.get_sid()
|
||||||
file_props['completed'] = False
|
file_props['completed'] = False
|
||||||
file_props['started'] = False
|
file_props['started'] = False
|
||||||
|
@ -467,7 +467,7 @@ _('Connection with peer cannot be established.'))
|
||||||
except:
|
except:
|
||||||
self.tooltip.hide_tooltip()
|
self.tooltip.hide_tooltip()
|
||||||
return
|
return
|
||||||
sid = self.model[iter][4]
|
sid = self.model[iter][4].decode('utf-8')
|
||||||
file_props = self.files_props[sid[0]][sid[1:]]
|
file_props = self.files_props[sid[0]][sid[1:]]
|
||||||
if file_props is not None:
|
if file_props is not None:
|
||||||
if self.tooltip.timeout == 0 or self.tooltip.id != props[0]:
|
if self.tooltip.timeout == 0 or self.tooltip.id != props[0]:
|
||||||
|
@ -539,7 +539,7 @@ _('Connection with peer cannot be established.'))
|
||||||
self.set_all_insensitive()
|
self.set_all_insensitive()
|
||||||
return
|
return
|
||||||
current_iter = self.model.get_iter(path)
|
current_iter = self.model.get_iter(path)
|
||||||
sid = self.model[current_iter][4]
|
sid = self.model[current_iter][4].decode('utf-8')
|
||||||
file_props = self.files_props[sid[0]][sid[1:]]
|
file_props = self.files_props[sid[0]][sid[1:]]
|
||||||
self.remove_button.set_sensitive(is_row_selected)
|
self.remove_button.set_sensitive(is_row_selected)
|
||||||
self.remove_menuitem.set_sensitive(is_row_selected)
|
self.remove_menuitem.set_sensitive(is_row_selected)
|
||||||
|
@ -597,7 +597,7 @@ _('Connection with peer cannot be established.'))
|
||||||
if selected is None or selected[1] is None:
|
if selected is None or selected[1] is None:
|
||||||
return
|
return
|
||||||
s_iter = selected[1]
|
s_iter = selected[1]
|
||||||
sid = self.model[s_iter][4]
|
sid = self.model[s_iter][4].decode('utf-8')
|
||||||
file_props = self.files_props[sid[0]][sid[1:]]
|
file_props = self.files_props[sid[0]][sid[1:]]
|
||||||
if not file_props.has_key('tt_account'):
|
if not file_props.has_key('tt_account'):
|
||||||
# file transfer is not set yet
|
# file transfer is not set yet
|
||||||
|
@ -639,7 +639,7 @@ _('Connection with peer cannot be established.'))
|
||||||
if selected is None or selected[1] is None:
|
if selected is None or selected[1] is None:
|
||||||
return
|
return
|
||||||
s_iter = selected[1]
|
s_iter = selected[1]
|
||||||
sid = self.model[s_iter][4]
|
sid = self.model[s_iter][4].decode('utf-8')
|
||||||
file_props = self.files_props[sid[0]][sid[1:]]
|
file_props = self.files_props[sid[0]][sid[1:]]
|
||||||
if self.is_transfer_paused(file_props):
|
if self.is_transfer_paused(file_props):
|
||||||
file_props['paused'] = False
|
file_props['paused'] = False
|
||||||
|
@ -656,7 +656,7 @@ _('Connection with peer cannot be established.'))
|
||||||
if selected is None or selected[1] is None:
|
if selected is None or selected[1] is None:
|
||||||
return
|
return
|
||||||
s_iter = selected[1]
|
s_iter = selected[1]
|
||||||
sid = self.model[s_iter][4]
|
sid = self.model[s_iter][4].decode('utf-8')
|
||||||
file_props = self.files_props[sid[0]][sid[1:]]
|
file_props = self.files_props[sid[0]][sid[1:]]
|
||||||
if not file_props.has_key('tt_account'):
|
if not file_props.has_key('tt_account'):
|
||||||
return
|
return
|
||||||
|
@ -677,7 +677,7 @@ _('Connection with peer cannot be established.'))
|
||||||
# check if the current pointer is at the same path
|
# check if the current pointer is at the same path
|
||||||
# as it was before setting the timeout
|
# as it was before setting the timeout
|
||||||
iter = self.model.get_iter(props[0])
|
iter = self.model.get_iter(props[0])
|
||||||
sid = self.model[iter][4]
|
sid = self.model[iter][4].decode('utf-8')
|
||||||
file_props = self.files_props[sid[0]][sid[1:]]
|
file_props = self.files_props[sid[0]][sid[1:]]
|
||||||
rect = self.tree.get_cell_area(props[0],props[1])
|
rect = self.tree.get_cell_area(props[0],props[1])
|
||||||
position = widget.window.get_origin()
|
position = widget.window.get_origin()
|
||||||
|
@ -777,7 +777,7 @@ _('Connection with peer cannot be established.'))
|
||||||
i = len(self.model) - 1
|
i = len(self.model) - 1
|
||||||
while i >= 0:
|
while i >= 0:
|
||||||
iter = self.model.get_iter((i))
|
iter = self.model.get_iter((i))
|
||||||
sid = self.model[iter][4]
|
sid = self.model[iter][4].decode('utf-8')
|
||||||
file_props = self.files_props[sid[0]][sid[1:]]
|
file_props = self.files_props[sid[0]][sid[1:]]
|
||||||
if file_props.has_key('completed') and file_props['completed']:
|
if file_props.has_key('completed') and file_props['completed']:
|
||||||
self.model.remove(iter)
|
self.model.remove(iter)
|
||||||
|
@ -792,7 +792,7 @@ _('Connection with peer cannot be established.'))
|
||||||
if selected is None or selected[1] is None:
|
if selected is None or selected[1] is None:
|
||||||
return
|
return
|
||||||
s_iter = selected[1]
|
s_iter = selected[1]
|
||||||
sid = self.model[s_iter][4]
|
sid = self.model[s_iter][4].decode('utf-8')
|
||||||
file_props = self.files_props[sid[0]][sid[1:]]
|
file_props = self.files_props[sid[0]][sid[1:]]
|
||||||
if not file_props.has_key('file-name'):
|
if not file_props.has_key('file-name'):
|
||||||
return
|
return
|
||||||
|
|
|
@ -160,7 +160,7 @@ class Interface:
|
||||||
|
|
||||||
def handle_event_error_answer(self, account, array):
|
def handle_event_error_answer(self, account, array):
|
||||||
id, jid_from, errmsg, errcode = array
|
id, jid_from, errmsg, errcode = array
|
||||||
if str(errcode) in ['403', '406'] and id:
|
if unicode(errcode) in ['403', '406'] and id:
|
||||||
# show the error dialog
|
# show the error dialog
|
||||||
ft = self.windows['file_transfers']
|
ft = self.windows['file_transfers']
|
||||||
sid = id
|
sid = id
|
||||||
|
@ -174,7 +174,7 @@ class Interface:
|
||||||
conn = gajim.connections[account]
|
conn = gajim.connections[account]
|
||||||
conn.disconnect_transfer(file_props)
|
conn.disconnect_transfer(file_props)
|
||||||
return
|
return
|
||||||
elif str(errcode) == '404':
|
elif unicode(errcode) == '404':
|
||||||
conn = gajim.connections[account]
|
conn = gajim.connections[account]
|
||||||
sid = id
|
sid = id
|
||||||
if len(id) > 3 and id[2] == '_':
|
if len(id) > 3 and id[2] == '_':
|
||||||
|
@ -768,7 +768,7 @@ class Interface:
|
||||||
if file_props.has_key('stalled') and file_props['stalled'] or \
|
if file_props.has_key('stalled') and file_props['stalled'] or \
|
||||||
file_props.has_key('paused') and file_props['paused']:
|
file_props.has_key('paused') and file_props['paused']:
|
||||||
return
|
return
|
||||||
jid = str(file_props['sender'])
|
jid = unicode(file_props['sender'])
|
||||||
if gajim.config.get('notify_on_file_complete'):
|
if gajim.config.get('notify_on_file_complete'):
|
||||||
if (gajim.connections[account].connected in (2, 3)
|
if (gajim.connections[account].connected in (2, 3)
|
||||||
and gajim.config.get('autopopup')) or \
|
and gajim.config.get('autopopup')) or \
|
||||||
|
|
|
@ -79,7 +79,7 @@ class GajimThemesWindow:
|
||||||
def on_theme_cell_edited(self, cell, row, new_name):
|
def on_theme_cell_edited(self, cell, row, new_name):
|
||||||
model = self.themes_tree.get_model()
|
model = self.themes_tree.get_model()
|
||||||
iter = model.get_iter_from_string(row)
|
iter = model.get_iter_from_string(row)
|
||||||
old_name = model.get_value(iter, 0)
|
old_name = model.get_value(iter, 0).decode('utf-8')
|
||||||
if old_name == new_name:
|
if old_name == new_name:
|
||||||
return
|
return
|
||||||
if new_name in gajim.config.get_per('themes'):
|
if new_name in gajim.config.get_per('themes'):
|
||||||
|
@ -115,24 +115,24 @@ class GajimThemesWindow:
|
||||||
return
|
return
|
||||||
self.xml.get_widget('remove_button').set_sensitive(True)
|
self.xml.get_widget('remove_button').set_sensitive(True)
|
||||||
self.xml.get_widget('fonts_colors_table').set_sensitive(True)
|
self.xml.get_widget('fonts_colors_table').set_sensitive(True)
|
||||||
self.current_theme = model.get_value(iter, 0)
|
self.current_theme = model.get_value(iter, 0).decode('utf-8')
|
||||||
self.set_widgets(self.current_theme)
|
self.set_widgets(self.current_theme)
|
||||||
|
|
||||||
def on_add_button_clicked(self, widget):
|
def on_add_button_clicked(self, widget):
|
||||||
model = self.themes_tree.get_model()
|
model = self.themes_tree.get_model()
|
||||||
iter = model.append()
|
iter = model.append()
|
||||||
i = 0
|
i = 0
|
||||||
while _('theme name') + str(i) in gajim.config.get_per('themes'):
|
while _('theme name') + unicode(i) in gajim.config.get_per('themes'):
|
||||||
i += 1
|
i += 1
|
||||||
model.set_value(iter, 0, _('theme name') + str(i))
|
model.set_value(iter, 0, _('theme name') + unicode(i))
|
||||||
gajim.config.add_per('themes', _('theme_name') + str(i))
|
gajim.config.add_per('themes', _('theme_name') + unicode(i))
|
||||||
self.plugin.windows['preferences'].update_preferences_window()
|
self.plugin.windows['preferences'].update_preferences_window()
|
||||||
|
|
||||||
def on_remove_button_clicked(self, widget):
|
def on_remove_button_clicked(self, widget):
|
||||||
(model, iter) = self.themes_tree.get_selection().get_selected()
|
(model, iter) = self.themes_tree.get_selection().get_selected()
|
||||||
if not iter:
|
if not iter:
|
||||||
return
|
return
|
||||||
name = model.get_value(iter, 0)
|
name = model.get_value(iter, 0).decode('utf-8')
|
||||||
gajim.config.del_per('themes', name)
|
gajim.config.del_per('themes', name)
|
||||||
model.remove(iter)
|
model.remove(iter)
|
||||||
self.plugin.windows['preferences'].update_preferences_window()
|
self.plugin.windows['preferences'].update_preferences_window()
|
||||||
|
|
|
@ -221,7 +221,7 @@ class GroupchatWindow(chat.Chat):
|
||||||
if not iter:
|
if not iter:
|
||||||
return None
|
return None
|
||||||
while not fin:
|
while not fin:
|
||||||
role_name = model.get_value(iter, 1)
|
role_name = model.get_value(iter, 1).decode('utf-8')
|
||||||
if role == role_name:
|
if role == role_name:
|
||||||
return iter
|
return iter
|
||||||
iter = model.iter_next(iter)
|
iter = model.iter_next(iter)
|
||||||
|
@ -241,7 +241,7 @@ class GroupchatWindow(chat.Chat):
|
||||||
if not user_iter:
|
if not user_iter:
|
||||||
fin2 = True
|
fin2 = True
|
||||||
while not fin2:
|
while not fin2:
|
||||||
if nick == model.get_value(user_iter, 1):
|
if nick == model.get_value(user_iter, 1).decode('utf-8'):
|
||||||
return user_iter
|
return user_iter
|
||||||
user_iter = model.iter_next(user_iter)
|
user_iter = model.iter_next(user_iter)
|
||||||
if not user_iter:
|
if not user_iter:
|
||||||
|
@ -317,7 +317,7 @@ class GroupchatWindow(chat.Chat):
|
||||||
if not user_iter:
|
if not user_iter:
|
||||||
continue
|
continue
|
||||||
while user_iter:
|
while user_iter:
|
||||||
nick = model.get_value(user_iter, 1)
|
nick = model.get_value(user_iter, 1).decode('utf-8')
|
||||||
show = gajim.gc_contacts[self.account][room_jid][nick].show
|
show = gajim.gc_contacts[self.account][room_jid][nick].show
|
||||||
state_images = roster.get_appropriate_state_images(room_jid)
|
state_images = roster.get_appropriate_state_images(room_jid)
|
||||||
image = state_images[show] #FIXME: always Jabber why?
|
image = state_images[show] #FIXME: always Jabber why?
|
||||||
|
@ -412,7 +412,7 @@ class GroupchatWindow(chat.Chat):
|
||||||
_('Please specify the new subject:'), subject)
|
_('Please specify the new subject:'), subject)
|
||||||
response = instance.get_response()
|
response = instance.get_response()
|
||||||
if response == gtk.RESPONSE_OK:
|
if response == gtk.RESPONSE_OK:
|
||||||
subject = instance.input_entry.get_text()
|
subject = instance.input_entry.get_text().decode('utf-8')
|
||||||
gajim.connections[self.account].send_gc_subject(room_jid, subject)
|
gajim.connections[self.account].send_gc_subject(room_jid, subject)
|
||||||
|
|
||||||
def on_change_nick_menuitem_activate(self, widget):
|
def on_change_nick_menuitem_activate(self, widget):
|
||||||
|
@ -422,7 +422,7 @@ class GroupchatWindow(chat.Chat):
|
||||||
_('Please specify the new nickname you want to use:'), nick)
|
_('Please specify the new nickname you want to use:'), nick)
|
||||||
response = instance.get_response()
|
response = instance.get_response()
|
||||||
if response == gtk.RESPONSE_OK:
|
if response == gtk.RESPONSE_OK:
|
||||||
nick = instance.input_entry.get_text()
|
nick = instance.input_entry.get_text().decode('utf-8')
|
||||||
gajim.connections[self.account].change_gc_nick(room_jid, nick)
|
gajim.connections[self.account].change_gc_nick(room_jid, nick)
|
||||||
|
|
||||||
def on_configure_room_menuitem_activate(self, widget):
|
def on_configure_room_menuitem_activate(self, widget):
|
||||||
|
@ -464,7 +464,7 @@ class GroupchatWindow(chat.Chat):
|
||||||
'conversation_textview')
|
'conversation_textview')
|
||||||
message_buffer = widget.get_buffer()
|
message_buffer = widget.get_buffer()
|
||||||
start_iter, end_iter = message_buffer.get_bounds()
|
start_iter, end_iter = message_buffer.get_bounds()
|
||||||
message = message_buffer.get_text(start_iter, end_iter, False)
|
message = message_buffer.get_text(start_iter, end_iter, False).decode('utf-8')
|
||||||
|
|
||||||
if event.keyval == gtk.keysyms.ISO_Left_Tab: # SHIFT + TAB
|
if event.keyval == gtk.keysyms.ISO_Left_Tab: # SHIFT + TAB
|
||||||
if (event.state & gtk.gdk.CONTROL_MASK): # CTRL + SHIFT + TAB
|
if (event.state & gtk.gdk.CONTROL_MASK): # CTRL + SHIFT + TAB
|
||||||
|
@ -475,7 +475,7 @@ class GroupchatWindow(chat.Chat):
|
||||||
else:
|
else:
|
||||||
cursor_position = message_buffer.get_insert()
|
cursor_position = message_buffer.get_insert()
|
||||||
end_iter = message_buffer.get_iter_at_mark(cursor_position)
|
end_iter = message_buffer.get_iter_at_mark(cursor_position)
|
||||||
text = message_buffer.get_text(start_iter, end_iter, False)
|
text = message_buffer.get_text(start_iter, end_iter, False).decode('utf-8')
|
||||||
if not text or text.endswith(' '):
|
if not text or text.endswith(' '):
|
||||||
if not self.last_key_tabs[room_jid]: # if we are nick cycling, last char will always be space
|
if not self.last_key_tabs[room_jid]: # if we are nick cycling, last char will always be space
|
||||||
return False
|
return False
|
||||||
|
@ -577,7 +577,7 @@ class GroupchatWindow(chat.Chat):
|
||||||
message_buffer = message_textview.get_buffer()
|
message_buffer = message_textview.get_buffer()
|
||||||
start_iter = message_buffer.get_start_iter()
|
start_iter = message_buffer.get_start_iter()
|
||||||
end_iter = message_buffer.get_end_iter()
|
end_iter = message_buffer.get_end_iter()
|
||||||
message = message_buffer.get_text(start_iter, end_iter, 0)
|
message = message_buffer.get_text(start_iter, end_iter, 0).decode('utf-8')
|
||||||
|
|
||||||
# send the message
|
# send the message
|
||||||
self.send_gc_message(message)
|
self.send_gc_message(message)
|
||||||
|
@ -702,11 +702,7 @@ class GroupchatWindow(chat.Chat):
|
||||||
else:
|
else:
|
||||||
kind = 'status'
|
kind = 'status'
|
||||||
|
|
||||||
# nick can be unicode or utf-8
|
|
||||||
nick = self.nicks[room_jid]
|
nick = self.nicks[room_jid]
|
||||||
if type(nick) == str:
|
|
||||||
nick = unicode(nick, 'utf-8')
|
|
||||||
|
|
||||||
if kind == 'incoming' and \
|
if kind == 'incoming' and \
|
||||||
text.lower().find(nick.lower()) != -1:
|
text.lower().find(nick.lower()) != -1:
|
||||||
other_tags_for_name.append('bold')
|
other_tags_for_name.append('bold')
|
||||||
|
@ -722,7 +718,7 @@ class GroupchatWindow(chat.Chat):
|
||||||
_('You may specify a reason below:'))
|
_('You may specify a reason below:'))
|
||||||
response = instance.get_response()
|
response = instance.get_response()
|
||||||
if response == gtk.RESPONSE_OK:
|
if response == gtk.RESPONSE_OK:
|
||||||
reason = instance.input_entry.get_text()
|
reason = instance.input_entry.get_text().decode('utf-8')
|
||||||
else:
|
else:
|
||||||
return # stop kicking procedure
|
return # stop kicking procedure
|
||||||
gajim.connections[self.account].gc_set_role(room_jid, nick, 'none',
|
gajim.connections[self.account].gc_set_role(room_jid, nick, 'none',
|
||||||
|
@ -753,7 +749,7 @@ class GroupchatWindow(chat.Chat):
|
||||||
_('You may specify a reason below:'))
|
_('You may specify a reason below:'))
|
||||||
response = instance.get_response()
|
response = instance.get_response()
|
||||||
if response == gtk.RESPONSE_OK:
|
if response == gtk.RESPONSE_OK:
|
||||||
reason = instance.input_entry.get_text()
|
reason = instance.input_entry.get_text().decode('utf-8')
|
||||||
else:
|
else:
|
||||||
return # stop banning procedure
|
return # stop banning procedure
|
||||||
gajim.connections[self.account].gc_set_affiliation(room_jid, jid,
|
gajim.connections[self.account].gc_set_affiliation(room_jid, jid,
|
||||||
|
@ -824,7 +820,7 @@ class GroupchatWindow(chat.Chat):
|
||||||
'''opens a chat window and msg is not None sends private message to a
|
'''opens a chat window and msg is not None sends private message to a
|
||||||
contact in a room'''
|
contact in a room'''
|
||||||
if nick is None:
|
if nick is None:
|
||||||
nick = model[iter][1]
|
nick = model[iter][1].decode('utf-8')
|
||||||
room_jid = self.get_active_jid()
|
room_jid = self.get_active_jid()
|
||||||
fjid = gajim.construct_fjid(room_jid, nick) # 'fake' jid
|
fjid = gajim.construct_fjid(room_jid, nick) # 'fake' jid
|
||||||
if not self.plugin.windows[self.account]['chats'].has_key(fjid):
|
if not self.plugin.windows[self.account]['chats'].has_key(fjid):
|
||||||
|
@ -873,7 +869,7 @@ class GroupchatWindow(chat.Chat):
|
||||||
def mk_menu(self, room_jid, event, iter):
|
def mk_menu(self, room_jid, event, iter):
|
||||||
'''Make contact's popup menu'''
|
'''Make contact's popup menu'''
|
||||||
model = self.list_treeview[room_jid].get_model()
|
model = self.list_treeview[room_jid].get_model()
|
||||||
nick = model[iter][1]
|
nick = model[iter][1].decode('utf-8')
|
||||||
c = gajim.gc_contacts[self.account][room_jid][nick]
|
c = gajim.gc_contacts[self.account][room_jid][nick]
|
||||||
jid = c.jid
|
jid = c.jid
|
||||||
target_affiliation = c.affiliation
|
target_affiliation = c.affiliation
|
||||||
|
@ -1003,7 +999,7 @@ class GroupchatWindow(chat.Chat):
|
||||||
self.xmls[room_jid] = gtk.glade.XML(GTKGUI_GLADE, 'gc_vbox', APP)
|
self.xmls[room_jid] = gtk.glade.XML(GTKGUI_GLADE, 'gc_vbox', APP)
|
||||||
self.childs[room_jid] = self.xmls[room_jid].get_widget('gc_vbox')
|
self.childs[room_jid] = self.xmls[room_jid].get_widget('gc_vbox')
|
||||||
chat.Chat.new_tab(self, room_jid)
|
chat.Chat.new_tab(self, room_jid)
|
||||||
self.nicks[room_jid] = nick.decode('utf-8')
|
self.nicks[room_jid] = nick
|
||||||
self.subjects[room_jid] = ''
|
self.subjects[room_jid] = ''
|
||||||
self.room_creation[room_jid] = time.time()
|
self.room_creation[room_jid] = time.time()
|
||||||
self.nick_hits[room_jid] = []
|
self.nick_hits[room_jid] = []
|
||||||
|
@ -1085,7 +1081,7 @@ class GroupchatWindow(chat.Chat):
|
||||||
self.tooltip.hide_tooltip()
|
self.tooltip.hide_tooltip()
|
||||||
return
|
return
|
||||||
room_jid = self.get_active_jid()
|
room_jid = self.get_active_jid()
|
||||||
nick = model[iter][1]
|
nick = model[iter][1].decode('utf-8')
|
||||||
if nick != 'moderator' and nick != 'participant':
|
if nick != 'moderator' and nick != 'participant':
|
||||||
account = self.account
|
account = self.account
|
||||||
|
|
||||||
|
@ -1163,7 +1159,7 @@ class GroupchatWindow(chat.Chat):
|
||||||
model = widget.get_model()
|
model = widget.get_model()
|
||||||
iter = model.get_iter(path)
|
iter = model.get_iter(path)
|
||||||
if len(path) == 2:
|
if len(path) == 2:
|
||||||
nick = model[iter][1]
|
nick = model[iter][1].decode('utf-8')
|
||||||
fjid = gajim.construct_fjid(room_jid, nick)
|
fjid = gajim.construct_fjid(room_jid, nick)
|
||||||
if not self.plugin.windows[self.account]['chats'].has_key(fjid):
|
if not self.plugin.windows[self.account]['chats'].has_key(fjid):
|
||||||
show = gajim.gc_contacts[self.account][room_jid][nick].show
|
show = gajim.gc_contacts[self.account][room_jid][nick].show
|
||||||
|
@ -1184,7 +1180,7 @@ class GroupchatWindow(chat.Chat):
|
||||||
|
|
||||||
model = widget.get_model()
|
model = widget.get_model()
|
||||||
iter = model.get_iter(path)
|
iter = model.get_iter(path)
|
||||||
nick = model[iter][1]
|
nick = model[iter][1].decode('utf-8')
|
||||||
if not nick in gajim.gc_contacts[self.account][room_jid]: #it's a group
|
if not nick in gajim.gc_contacts[self.account][room_jid]: #it's a group
|
||||||
if x < 20: # first cell in 1st column (the arrow SINGLE clicked)
|
if x < 20: # first cell in 1st column (the arrow SINGLE clicked)
|
||||||
if (widget.row_expanded(path)):
|
if (widget.row_expanded(path)):
|
||||||
|
@ -1207,7 +1203,7 @@ class GroupchatWindow(chat.Chat):
|
||||||
widget.expand_row(path, False)
|
widget.expand_row(path, False)
|
||||||
else: # We want to send a private message
|
else: # We want to send a private message
|
||||||
room_jid = self.get_active_jid()
|
room_jid = self.get_active_jid()
|
||||||
nick = model[iter][1]
|
nick = model[iter][1].decode('utf-8')
|
||||||
fjid = gajim.construct_fjid(room_jid, nick)
|
fjid = gajim.construct_fjid(room_jid, nick)
|
||||||
if not self.plugin.windows[self.account]['chats'].has_key(fjid):
|
if not self.plugin.windows[self.account]['chats'].has_key(fjid):
|
||||||
show = gajim.gc_contacts[self.account][room_jid][nick].show
|
show = gajim.gc_contacts[self.account][room_jid][nick].show
|
||||||
|
|
|
@ -86,8 +86,7 @@ def reduce_chars_newlines(text, max_chars = 0, max_lines = 0,
|
||||||
If any of the params is not present(None or 0) the action
|
If any of the params is not present(None or 0) the action
|
||||||
on it is not performed
|
on it is not performed
|
||||||
'''
|
'''
|
||||||
# make sure that we have only unicode text
|
text = text
|
||||||
text = text.decode('utf-8')
|
|
||||||
|
|
||||||
def _cut_if_long(str):
|
def _cut_if_long(str):
|
||||||
if len(str) > max_chars:
|
if len(str) > max_chars:
|
||||||
|
|
|
@ -57,7 +57,7 @@ class RosterWindow:
|
||||||
return
|
return
|
||||||
account = model.get_iter_root()
|
account = model.get_iter_root()
|
||||||
while account:
|
while account:
|
||||||
account_name = model.get_value(account, 3)
|
account_name = model.get_value(account, 3).decode('utf-8')
|
||||||
if name == account_name:
|
if name == account_name:
|
||||||
break
|
break
|
||||||
account = model.iter_next(account)
|
account = model.iter_next(account)
|
||||||
|
@ -68,7 +68,7 @@ class RosterWindow:
|
||||||
root = self.get_account_iter(account)
|
root = self.get_account_iter(account)
|
||||||
group = model.iter_children(root)
|
group = model.iter_children(root)
|
||||||
while group:
|
while group:
|
||||||
group_name = model.get_value(group, 3)
|
group_name = model.get_value(group, 3).decode('utf-8')
|
||||||
if name == group_name:
|
if name == group_name:
|
||||||
break
|
break
|
||||||
group = model.iter_next(group)
|
group = model.iter_next(group)
|
||||||
|
@ -83,7 +83,7 @@ class RosterWindow:
|
||||||
while group:
|
while group:
|
||||||
user = model.iter_children(group)
|
user = model.iter_children(group)
|
||||||
while user:
|
while user:
|
||||||
if jid == model.get_value(user, 3):
|
if jid == model.get_value(user, 3).decode('utf-8'):
|
||||||
found.append(user)
|
found.append(user)
|
||||||
user = model.iter_next(user)
|
user = model.iter_next(user)
|
||||||
group = model.iter_next(group)
|
group = model.iter_next(group)
|
||||||
|
@ -157,8 +157,7 @@ class RosterWindow:
|
||||||
typestr, user.jid, account, False, None]) # FIXME None --> avatar
|
typestr, user.jid, account, False, None]) # FIXME None --> avatar
|
||||||
|
|
||||||
if gajim.groups[account][g]['expand']:
|
if gajim.groups[account][g]['expand']:
|
||||||
self.tree.expand_row(model.get_path(iterG),
|
self.tree.expand_row(model.get_path(iterG), False)
|
||||||
False)
|
|
||||||
self.draw_contact(jid, account)
|
self.draw_contact(jid, account)
|
||||||
|
|
||||||
def really_remove_contact(self, user, account):
|
def really_remove_contact(self, user, account):
|
||||||
|
@ -180,7 +179,7 @@ class RosterWindow:
|
||||||
model = self.tree.get_model()
|
model = self.tree.get_model()
|
||||||
for i in self.get_contact_iter(user.jid, account):
|
for i in self.get_contact_iter(user.jid, account):
|
||||||
parent_i = model.iter_parent(i)
|
parent_i = model.iter_parent(i)
|
||||||
group = model.get_value(parent_i, 3)
|
group = model.get_value(parent_i, 3).decode('utf-8')
|
||||||
model.remove(i)
|
model.remove(i)
|
||||||
if model.iter_n_children(parent_i) == 0:
|
if model.iter_n_children(parent_i) == 0:
|
||||||
model.remove(parent_i)
|
model.remove(parent_i)
|
||||||
|
@ -235,7 +234,7 @@ class RosterWindow:
|
||||||
contact = gajim.get_highest_prio_contact_from_contacts(contact_instances)
|
contact = gajim.get_highest_prio_contact_from_contacts(contact_instances)
|
||||||
name = contact.name
|
name = contact.name
|
||||||
if len(contact_instances) > 1:
|
if len(contact_instances) > 1:
|
||||||
name += ' (' + str(len(contact_instances)) + ')'
|
name += ' (' + unicode(len(contact_instances)) + ')'
|
||||||
|
|
||||||
state_images = self.get_appropriate_state_images(jid)
|
state_images = self.get_appropriate_state_images(jid)
|
||||||
if gajim.awaiting_messages[account].has_key(jid):
|
if gajim.awaiting_messages[account].has_key(jid):
|
||||||
|
@ -676,8 +675,8 @@ class RosterWindow:
|
||||||
self.tooltip.hide_tooltip()
|
self.tooltip.hide_tooltip()
|
||||||
return
|
return
|
||||||
if model[iter][2] == 'contact':
|
if model[iter][2] == 'contact':
|
||||||
account = model[iter][4]
|
account = model[iter][4].decode('utf-8')
|
||||||
jid = model[iter][3]
|
jid = model[iter][3].decode('utf-8')
|
||||||
img = model[iter][0]
|
img = model[iter][0]
|
||||||
if self.tooltip.timeout == 0 or self.tooltip.id != props[0]:
|
if self.tooltip.timeout == 0 or self.tooltip.id != props[0]:
|
||||||
self.tooltip.id = row
|
self.tooltip.id = row
|
||||||
|
@ -721,8 +720,8 @@ class RosterWindow:
|
||||||
model = self.tree.get_model()
|
model = self.tree.get_model()
|
||||||
|
|
||||||
row_type = model[iter][2]
|
row_type = model[iter][2]
|
||||||
jid = model[iter][3]
|
jid = model[iter][3].decode('utf-8')
|
||||||
account = model[iter][4]
|
account = model[iter][4].decode('utf-8')
|
||||||
if row_type == 'contact':
|
if row_type == 'contact':
|
||||||
# it's jid
|
# it's jid
|
||||||
#Remove resource indicator (Name (2))
|
#Remove resource indicator (Name (2))
|
||||||
|
@ -789,9 +788,9 @@ class RosterWindow:
|
||||||
def mk_menu_user(self, event, iter):
|
def mk_menu_user(self, event, iter):
|
||||||
'''Make contact's popup menu'''
|
'''Make contact's popup menu'''
|
||||||
model = self.tree.get_model()
|
model = self.tree.get_model()
|
||||||
jid = model[iter][3]
|
jid = model[iter][3].decode('utf-8')
|
||||||
path = model.get_path(iter)
|
path = model.get_path(iter)
|
||||||
account = model[iter][4]
|
account = model[iter][4].decode('utf-8')
|
||||||
contact = gajim.contacts[account][jid][0]
|
contact = gajim.contacts[account][jid][0]
|
||||||
|
|
||||||
xml = gtk.glade.XML(GTKGUI_GLADE, 'roster_contact_context_menu',
|
xml = gtk.glade.XML(GTKGUI_GLADE, 'roster_contact_context_menu',
|
||||||
|
@ -891,9 +890,9 @@ class RosterWindow:
|
||||||
def mk_menu_agent(self, event, iter):
|
def mk_menu_agent(self, event, iter):
|
||||||
'''Make agent's popup menu'''
|
'''Make agent's popup menu'''
|
||||||
model = self.tree.get_model()
|
model = self.tree.get_model()
|
||||||
jid = model[iter][3]
|
jid = model[iter][3].decode('utf-8')
|
||||||
path = model.get_path(iter)
|
path = model.get_path(iter)
|
||||||
account = model[iter][4]
|
account = model[iter][4].decode('utf-8')
|
||||||
user = gajim.contacts[account][jid][0]
|
user = gajim.contacts[account][jid][0]
|
||||||
menu = gtk.Menu()
|
menu = gtk.Menu()
|
||||||
|
|
||||||
|
@ -955,7 +954,7 @@ class RosterWindow:
|
||||||
def mk_menu_account(self, event, iter):
|
def mk_menu_account(self, event, iter):
|
||||||
'''Make account's popup menu'''
|
'''Make account's popup menu'''
|
||||||
model = self.tree.get_model()
|
model = self.tree.get_model()
|
||||||
account = model[iter][3]
|
account = model[iter][3].decode('utf-8')
|
||||||
|
|
||||||
#FIXME: make most menuitems of this menu insensitive if account is offline
|
#FIXME: make most menuitems of this menu insensitive if account is offline
|
||||||
|
|
||||||
|
@ -1083,8 +1082,8 @@ _('If "%s" accepts this request you will know his status.') %jid)
|
||||||
model, iter = treeselection.get_selected()
|
model, iter = treeselection.get_selected()
|
||||||
if not iter:
|
if not iter:
|
||||||
return
|
return
|
||||||
jid = model[iter][3]
|
jid = model[iter][3].decode('utf-8')
|
||||||
account = model[iter][4]
|
account = model[iter][4].decode('utf-8')
|
||||||
type = model[iter][2]
|
type = model[iter][2]
|
||||||
user = gajim.contacts[account][jid][0]
|
user = gajim.contacts[account][jid][0]
|
||||||
if type == 'contact':
|
if type == 'contact':
|
||||||
|
@ -1146,8 +1145,8 @@ _('If "%s" accepts this request you will know his status.') %jid)
|
||||||
iter = model.get_iter(path)
|
iter = model.get_iter(path)
|
||||||
type = model[iter][2]
|
type = model[iter][2]
|
||||||
if type in ('agent', 'contact'):
|
if type in ('agent', 'contact'):
|
||||||
account = model[iter][4]
|
account = model[iter][4].decode('utf-8')
|
||||||
jid = model[iter][3]
|
jid = model[iter][3].decode('utf-8')
|
||||||
if self.plugin.windows[account]['chats'].has_key(jid):
|
if self.plugin.windows[account]['chats'].has_key(jid):
|
||||||
self.plugin.windows[account]['chats'][jid].set_active_tab(jid)
|
self.plugin.windows[account]['chats'][jid].set_active_tab(jid)
|
||||||
elif gajim.contacts[account].has_key(jid):
|
elif gajim.contacts[account].has_key(jid):
|
||||||
|
@ -1296,7 +1295,7 @@ _('If "%s" accepts this request you will know his status.') %jid)
|
||||||
).get_response()
|
).get_response()
|
||||||
self.update_status_comboxbox()
|
self.update_status_comboxbox()
|
||||||
return
|
return
|
||||||
status = model[active][2]
|
status = model[active][2].decode('utf-8')
|
||||||
message = self.get_status_message(status)
|
message = self.get_status_message(status)
|
||||||
if message == -1:
|
if message == -1:
|
||||||
self.update_status_comboxbox()
|
self.update_status_comboxbox()
|
||||||
|
@ -1615,9 +1614,9 @@ _('If "%s" accepts this request you will know his status.') %jid)
|
||||||
'''When an iter is double clicked: open the chat window'''
|
'''When an iter is double clicked: open the chat window'''
|
||||||
model = self.tree.get_model()
|
model = self.tree.get_model()
|
||||||
iter = model.get_iter(path)
|
iter = model.get_iter(path)
|
||||||
account = model[iter][4]
|
account = model[iter][4].decode('utf-8')
|
||||||
type = model[iter][2]
|
type = model[iter][2]
|
||||||
jid = model[iter][3]
|
jid = model[iter][3].decode('utf-8')
|
||||||
if type in ('group', 'account'):
|
if type in ('group', 'account'):
|
||||||
if self.tree.row_expanded(path):
|
if self.tree.row_expanded(path):
|
||||||
self.tree.collapse_row(path)
|
self.tree.collapse_row(path)
|
||||||
|
@ -1638,11 +1637,11 @@ _('If "%s" accepts this request you will know his status.') %jid)
|
||||||
if gajim.config.get('mergeaccounts') or len(gajim.connections) == 1:
|
if gajim.config.get('mergeaccounts') or len(gajim.connections) == 1:
|
||||||
accounts = gajim.connections.keys()
|
accounts = gajim.connections.keys()
|
||||||
else:
|
else:
|
||||||
accounts = [model[iter][4]]
|
accounts = [model[iter][4].decode('utf-8')]
|
||||||
type = model[iter][2]
|
type = model[iter][2]
|
||||||
if type == 'group':
|
if type == 'group':
|
||||||
model.set_value(iter, 0, self.jabber_state_images['opened'])
|
model.set_value(iter, 0, self.jabber_state_images['opened'])
|
||||||
jid = model[iter][3]
|
jid = model[iter][3].decode('utf-8')
|
||||||
for account in accounts:
|
for account in accounts:
|
||||||
if gajim.groups[account].has_key(jid): # This account has this group
|
if gajim.groups[account].has_key(jid): # This account has this group
|
||||||
gajim.groups[account][jid]['expand'] = True
|
gajim.groups[account][jid]['expand'] = True
|
||||||
|
@ -1665,11 +1664,11 @@ _('If "%s" accepts this request you will know his status.') %jid)
|
||||||
if gajim.config.get('mergeaccounts') or len(gajim.connections) == 1:
|
if gajim.config.get('mergeaccounts') or len(gajim.connections) == 1:
|
||||||
accounts = gajim.connections.keys()
|
accounts = gajim.connections.keys()
|
||||||
else:
|
else:
|
||||||
accounts = [model[iter][4]]
|
accounts = [model[iter][4].decode('utf-8')]
|
||||||
type = model[iter][2]
|
type = model[iter][2]
|
||||||
if type == 'group':
|
if type == 'group':
|
||||||
model.set_value(iter, 0, self.jabber_state_images['closed'])
|
model.set_value(iter, 0, self.jabber_state_images['closed'])
|
||||||
jid = model[iter][3]
|
jid = model[iter][3].decode('utf-8')
|
||||||
for account in accounts:
|
for account in accounts:
|
||||||
if gajim.groups[account].has_key(jid): # This account has this group
|
if gajim.groups[account].has_key(jid): # This account has this group
|
||||||
gajim.groups[account][jid]['expand'] = False
|
gajim.groups[account][jid]['expand'] = False
|
||||||
|
@ -1695,8 +1694,8 @@ _('If "%s" accepts this request you will know his status.') %jid)
|
||||||
self.editing_path = None
|
self.editing_path = None
|
||||||
model = self.tree.get_model()
|
model = self.tree.get_model()
|
||||||
iter = model.get_iter(path)
|
iter = model.get_iter(path)
|
||||||
account = model[iter][4]
|
account = model[iter][4].decode('utf-8')
|
||||||
jid = model[iter][3]
|
jid = model[iter][3].decode('utf-8')
|
||||||
type = model[iter][2]
|
type = model[iter][2]
|
||||||
# restore the number of resources string at the end of contact name
|
# restore the number of resources string at the end of contact name
|
||||||
if type == 'contact' and len(gajim.contacts[account][jid]) > 1:
|
if type == 'contact' and len(gajim.contacts[account][jid]) > 1:
|
||||||
|
@ -1720,8 +1719,8 @@ _('If "%s" accepts this request you will know his status.') %jid)
|
||||||
self.editing_path = None
|
self.editing_path = None
|
||||||
return
|
return
|
||||||
self.editing_path = None
|
self.editing_path = None
|
||||||
account = model[iter][4]
|
account = model[iter][4].decode('utf-8')
|
||||||
jid = model[iter][3]
|
jid = model[iter][3].decode('utf-8')
|
||||||
type = model[iter][2]
|
type = model[iter][2]
|
||||||
if type == 'contact':
|
if type == 'contact':
|
||||||
old_text = gajim.contacts[account][jid][0].name
|
old_text = gajim.contacts[account][jid][0].name
|
||||||
|
@ -1731,7 +1730,7 @@ _('If "%s" accepts this request you will know his status.') %jid)
|
||||||
gajim.connections[account].update_contact(jid, new_text, u.groups)
|
gajim.connections[account].update_contact(jid, new_text, u.groups)
|
||||||
self.draw_contact(jid, account)
|
self.draw_contact(jid, account)
|
||||||
elif type == 'group':
|
elif type == 'group':
|
||||||
old_name = model[iter][1]
|
old_name = model[iter][1].decode('utf-8')
|
||||||
# Groups maynot change name from or to 'not in the roster'
|
# Groups maynot change name from or to 'not in the roster'
|
||||||
if _('not in the roster') in (new_text, old_name):
|
if _('not in the roster') in (new_text, old_name):
|
||||||
return
|
return
|
||||||
|
@ -1838,8 +1837,8 @@ _('If "%s" accepts this request you will know his status.') %jid)
|
||||||
gajim.config.get_per('themes', theme, 'groupbgcolor'))
|
gajim.config.get_per('themes', theme, 'groupbgcolor'))
|
||||||
renderer.set_property('xalign', 0.5)
|
renderer.set_property('xalign', 0.5)
|
||||||
else:
|
else:
|
||||||
jid = model[iter][3]
|
jid = model[iter][3].decode('utf-8')
|
||||||
account = model[iter][4]
|
account = model[iter][4].decode('utf-8')
|
||||||
if jid in gajim.newly_added[account]:
|
if jid in gajim.newly_added[account]:
|
||||||
renderer.set_property('cell-background', '#adc3c6')
|
renderer.set_property('cell-background', '#adc3c6')
|
||||||
elif jid in gajim.to_be_removed[account]:
|
elif jid in gajim.to_be_removed[account]:
|
||||||
|
@ -1871,8 +1870,8 @@ _('If "%s" accepts this request you will know his status.') %jid)
|
||||||
gajim.config.get_per('themes', theme, 'groupfont'))
|
gajim.config.get_per('themes', theme, 'groupfont'))
|
||||||
renderer.set_property('xpad', 4)
|
renderer.set_property('xpad', 4)
|
||||||
else:
|
else:
|
||||||
jid = model[iter][3]
|
jid = model[iter][3].decode('utf-8')
|
||||||
account = model[iter][4]
|
account = model[iter][4].decode('utf-8')
|
||||||
renderer.set_property('foreground',
|
renderer.set_property('foreground',
|
||||||
gajim.config.get_per('themes', theme, 'contacttextcolor'))
|
gajim.config.get_per('themes', theme, 'contacttextcolor'))
|
||||||
if jid in gajim.newly_added[account]:
|
if jid in gajim.newly_added[account]:
|
||||||
|
@ -1896,8 +1895,8 @@ _('If "%s" accepts this request you will know his status.') %jid)
|
||||||
renderer.set_property('cell-background',
|
renderer.set_property('cell-background',
|
||||||
gajim.config.get_per('themes', theme, 'groupbgcolor'))
|
gajim.config.get_per('themes', theme, 'groupbgcolor'))
|
||||||
else:
|
else:
|
||||||
jid = model[iter][3]
|
jid = model[iter][3].decode('utf-8')
|
||||||
account = model[iter][4]
|
account = model[iter][4].decode('utf-8')
|
||||||
if jid in gajim.newly_added[account]:
|
if jid in gajim.newly_added[account]:
|
||||||
renderer.set_property('cell-background', '#adc3c6')
|
renderer.set_property('cell-background', '#adc3c6')
|
||||||
elif jid in gajim.to_be_removed[account]:
|
elif jid in gajim.to_be_removed[account]:
|
||||||
|
@ -1923,6 +1922,9 @@ _('If "%s" accepts this request you will know his status.') %jid)
|
||||||
name2 = model.get_value(iter2, 1)
|
name2 = model.get_value(iter2, 1)
|
||||||
if not name1 or not name2:
|
if not name1 or not name2:
|
||||||
return 0
|
return 0
|
||||||
|
else:
|
||||||
|
name1 = name1.decode('utf-8')
|
||||||
|
name2 = name2.decode('utf-8')
|
||||||
type1 = model.get_value(iter1, 2)
|
type1 = model.get_value(iter1, 2)
|
||||||
type2 = model.get_value(iter2, 2)
|
type2 = model.get_value(iter2, 2)
|
||||||
if type1 == 'group':
|
if type1 == 'group':
|
||||||
|
@ -1938,8 +1940,9 @@ _('If "%s" accepts this request you will know his status.') %jid)
|
||||||
gajim.config.get('sort_by_show'):
|
gajim.config.get('sort_by_show'):
|
||||||
account = model.get_value(iter1, 4)
|
account = model.get_value(iter1, 4)
|
||||||
if account and model.get_value(iter2, 4) == account:
|
if account and model.get_value(iter2, 4) == account:
|
||||||
jid1 = model.get_value(iter1, 3)
|
account = account.decode('utf-8')
|
||||||
jid2 = model.get_value(iter2, 3)
|
jid1 = model.get_value(iter1, 3).decode('utf-8')
|
||||||
|
jid2 = model.get_value(iter2, 3).decode('utf-8')
|
||||||
luser1 = gajim.contacts[account][jid1]
|
luser1 = gajim.contacts[account][jid1]
|
||||||
luser2 = gajim.contacts[account][jid2]
|
luser2 = gajim.contacts[account][jid2]
|
||||||
cshow = {'online':0, 'chat': 1, 'away': 2, 'xa': 3, 'dnd': 4,
|
cshow = {'online':0, 'chat': 1, 'away': 2, 'xa': 3, 'dnd': 4,
|
||||||
|
@ -2004,15 +2007,16 @@ _('If "%s" accepts this request you will know his status.') %jid)
|
||||||
#droped in another account
|
#droped in another account
|
||||||
return
|
return
|
||||||
iter_group_source = model.iter_parent(iter_source)
|
iter_group_source = model.iter_parent(iter_source)
|
||||||
grp_source = model.get_value(iter_group_source, 3)
|
grp_source = model.get_value(iter_group_source, 3).decode('utf-8')
|
||||||
if grp_source == _('Transports') or grp_source == _('not in the roster'):
|
if grp_source == _('Transports') or grp_source == _('not in the roster'):
|
||||||
return
|
return
|
||||||
account = model.get_value(iter_dest, 4)
|
account = model.get_value(iter_dest, 4).decode('utf-8')
|
||||||
type_dest = model.get_value(iter_dest, 2)
|
type_dest = model.get_value(iter_dest, 2)
|
||||||
if type_dest == 'group':
|
if type_dest == 'group':
|
||||||
grp_dest = model.get_value(iter_dest, 3)
|
grp_dest = model.get_value(iter_dest, 3).decode('utf-8')
|
||||||
else:
|
else:
|
||||||
grp_dest = model.get_value(model.iter_parent(iter_dest), 3)
|
grp_dest = model.get_value(model.iter_parent(iter_dest), 3).\
|
||||||
|
decode('utf-8')
|
||||||
if grp_source == grp_dest:
|
if grp_source == grp_dest:
|
||||||
return
|
return
|
||||||
# We upgrade only the first user because user2.groups is a pointer to
|
# We upgrade only the first user because user2.groups is a pointer to
|
||||||
|
@ -2042,7 +2046,7 @@ _('If "%s" accepts this request you will know his status.') %jid)
|
||||||
if change_title_allowed:
|
if change_title_allowed:
|
||||||
start = ''
|
start = ''
|
||||||
if self.nb_unread > 1:
|
if self.nb_unread > 1:
|
||||||
start = '[' + str(self.nb_unread) + '] '
|
start = '[' + unicode(self.nb_unread) + '] '
|
||||||
elif self.nb_unread == 1:
|
elif self.nb_unread == 1:
|
||||||
start = '* '
|
start = '* '
|
||||||
self.window.set_title(start + 'Gajim')
|
self.window.set_title(start + 'Gajim')
|
||||||
|
|
|
@ -329,7 +329,7 @@ timestamp, contact):
|
||||||
message_buffer = message_textview.get_buffer()
|
message_buffer = message_textview.get_buffer()
|
||||||
start_iter = message_buffer.get_start_iter()
|
start_iter = message_buffer.get_start_iter()
|
||||||
end_iter = message_buffer.get_end_iter()
|
end_iter = message_buffer.get_end_iter()
|
||||||
message = message_buffer.get_text(start_iter, end_iter, 0)
|
message = message_buffer.get_text(start_iter, end_iter, 0).decode('utf-8')
|
||||||
|
|
||||||
# send the message
|
# send the message
|
||||||
self.send_message(message)
|
self.send_message(message)
|
||||||
|
@ -478,7 +478,7 @@ timestamp, contact):
|
||||||
conversation_textview = widget
|
conversation_textview = widget
|
||||||
message_buffer = conversation_textview.get_buffer()
|
message_buffer = conversation_textview.get_buffer()
|
||||||
start_iter, end_iter = message_buffer.get_bounds()
|
start_iter, end_iter = message_buffer.get_bounds()
|
||||||
message = message_buffer.get_text(start_iter, end_iter, False)
|
message = message_buffer.get_text(start_iter, end_iter, False).decode('utf-8')
|
||||||
|
|
||||||
if event.keyval == gtk.keysyms.ISO_Left_Tab: # SHIFT + TAB
|
if event.keyval == gtk.keysyms.ISO_Left_Tab: # SHIFT + TAB
|
||||||
if event.state & gtk.gdk.CONTROL_MASK: # CTRL + SHIFT + TAB
|
if event.state & gtk.gdk.CONTROL_MASK: # CTRL + SHIFT + TAB
|
||||||
|
|
|
@ -134,7 +134,7 @@ class StatusTable:
|
||||||
self.table.attach(self.text_lable, 1, 4, 1, 2)
|
self.table.attach(self.text_lable, 1, 4, 1, 2)
|
||||||
|
|
||||||
def get_status_info(self, resource, priority, show, status):
|
def get_status_info(self, resource, priority, show, status):
|
||||||
str_status = resource + ' (' + str(priority) + ')'
|
str_status = resource + ' (' + unicode(priority) + ')'
|
||||||
if status:
|
if status:
|
||||||
status = status.strip()
|
status = status.strip()
|
||||||
if status != '':
|
if status != '':
|
||||||
|
@ -359,7 +359,7 @@ class RosterTooltip(BaseTooltip, StatusTable):
|
||||||
if contact.resource:
|
if contact.resource:
|
||||||
info += '\n<span weight="bold">' + _('Resource: ') + \
|
info += '\n<span weight="bold">' + _('Resource: ') + \
|
||||||
'</span>' + gtkgui_helpers.escape_for_pango_markup(
|
'</span>' + gtkgui_helpers.escape_for_pango_markup(
|
||||||
contact.resource) + ' (' + str(contact.priority) + ')'
|
contact.resource) + ' (' + unicode(contact.priority) + ')'
|
||||||
if contact.show:
|
if contact.show:
|
||||||
info += '\n<span weight="bold">' + _('Status: ') + \
|
info += '\n<span weight="bold">' + _('Status: ') + \
|
||||||
'</span>' + helpers.get_uf_show(contact.show)
|
'</span>' + helpers.get_uf_show(contact.show)
|
||||||
|
@ -402,7 +402,7 @@ class FileTransfersTooltip(BaseTooltip):
|
||||||
text += _('Upload')
|
text += _('Upload')
|
||||||
if file_props['type'] == 'r':
|
if file_props['type'] == 'r':
|
||||||
text += '\n<b>' + _('Sender: ') + '</b>'
|
text += '\n<b>' + _('Sender: ') + '</b>'
|
||||||
sender = str(file_props['sender']).split('/')[0]
|
sender = unicode(file_props['sender']).split('/')[0]
|
||||||
name = gajim.get_first_contact_instance_from_jid(
|
name = gajim.get_first_contact_instance_from_jid(
|
||||||
file_props['tt_account'], sender).name
|
file_props['tt_account'], sender).name
|
||||||
else:
|
else:
|
||||||
|
|
15
src/vcard.py
15
src/vcard.py
|
@ -84,7 +84,7 @@ class VcardWindow:
|
||||||
return
|
return
|
||||||
#update contact.name if it's not ''
|
#update contact.name if it's not ''
|
||||||
name_entry = self.xml.get_widget('nickname_entry')
|
name_entry = self.xml.get_widget('nickname_entry')
|
||||||
new_name = name_entry.get_text()
|
new_name = name_entry.get_text().decode('utf-8')
|
||||||
if new_name != self.contact.name and new_name != '':
|
if new_name != self.contact.name and new_name != '':
|
||||||
self.contact.name = new_name
|
self.contact.name = new_name
|
||||||
for i in self.plugin.roster.get_contact_iter(self.contact.jid, self.account):
|
for i in self.plugin.roster.get_contact_iter(self.contact.jid, self.account):
|
||||||
|
@ -268,10 +268,10 @@ class VcardWindow:
|
||||||
'no_log_for').split(' '):
|
'no_log_for').split(' '):
|
||||||
log = 0
|
log = 0
|
||||||
self.xml.get_widget('log_checkbutton').set_active(log)
|
self.xml.get_widget('log_checkbutton').set_active(log)
|
||||||
resources = '%s (%s)' % (self.contact.resource, str(
|
resources = '%s (%s)' % (self.contact.resource, unicode(
|
||||||
self.contact.priority))
|
self.contact.priority))
|
||||||
uf_resources = self.contact.resource + _(' resource with priority ')\
|
uf_resources = self.contact.resource + _(' resource with priority ')\
|
||||||
+ str(self.contact.priority)
|
+ unicode(self.contact.priority)
|
||||||
if not self.contact.status:
|
if not self.contact.status:
|
||||||
self.contact.status = ''
|
self.contact.status = ''
|
||||||
|
|
||||||
|
@ -287,9 +287,10 @@ class VcardWindow:
|
||||||
if gajim.contacts[self.account].has_key(self.contact.jid):
|
if gajim.contacts[self.account].has_key(self.contact.jid):
|
||||||
for c in gajim.contacts[self.account][self.contact.jid]:
|
for c in gajim.contacts[self.account][self.contact.jid]:
|
||||||
if c.resource != self.contact.resource:
|
if c.resource != self.contact.resource:
|
||||||
resources += '\n%s (%s)' % (c.resource, str(c.priority))
|
resources += '\n%s (%s)' % (c.resource,
|
||||||
|
unicode(c.priority))
|
||||||
uf_resources += '\n' + c.resource + _(' resource with priority ')\
|
uf_resources += '\n' + c.resource + _(' resource with priority ')\
|
||||||
+ str(c.priority)
|
+ unicode(c.priority)
|
||||||
if not c.status:
|
if not c.status:
|
||||||
c.status = ''
|
c.status = ''
|
||||||
stats += '\n' + c.show + ': ' + c.status
|
stats += '\n' + c.show + ': ' + c.status
|
||||||
|
@ -352,7 +353,7 @@ class VcardWindow:
|
||||||
'ADR_WORK_REGION', 'ADR_WORK_PCODE', 'ADR_WORK_CTRY']
|
'ADR_WORK_REGION', 'ADR_WORK_PCODE', 'ADR_WORK_CTRY']
|
||||||
vcard = {}
|
vcard = {}
|
||||||
for e in entries:
|
for e in entries:
|
||||||
txt = self.xml.get_widget(e + '_entry').get_text()
|
txt = self.xml.get_widget(e + '_entry').get_text().decode('utf-8')
|
||||||
if txt != '':
|
if txt != '':
|
||||||
vcard = self.add_to_vcard(vcard, e, txt)
|
vcard = self.add_to_vcard(vcard, e, txt)
|
||||||
|
|
||||||
|
@ -362,7 +363,7 @@ class VcardWindow:
|
||||||
end_iter = buff.get_end_iter()
|
end_iter = buff.get_end_iter()
|
||||||
txt = buff.get_text(start_iter, end_iter, 0)
|
txt = buff.get_text(start_iter, end_iter, 0)
|
||||||
if txt != '':
|
if txt != '':
|
||||||
vcard['DESC'] = txt
|
vcard['DESC'] = txt.decode('utf-8')
|
||||||
|
|
||||||
# Avatar
|
# Avatar
|
||||||
if self.avatar_encoded:
|
if self.avatar_encoded:
|
||||||
|
|
Loading…
Add table
Reference in a new issue