[shivan] don't trat emoticons created with parenthesis arround status message. fixes #3368
This commit is contained in:
parent
62f8937fae
commit
cb51401903
|
@ -643,9 +643,8 @@ class ChatControlBase(MessageControl):
|
||||||
self.orig_msg = None
|
self.orig_msg = None
|
||||||
|
|
||||||
def print_conversation_line(self, text, kind, name, tim,
|
def print_conversation_line(self, text, kind, name, tim,
|
||||||
other_tags_for_name = [], other_tags_for_time = [],
|
other_tags_for_name=[], other_tags_for_time=[], other_tags_for_text=[],
|
||||||
other_tags_for_text = [], count_as_new = True,
|
count_as_new=True, subject=None, old_kind=None, xhtml=None, simple=False):
|
||||||
subject = None, old_kind = None, xhtml = None):
|
|
||||||
'''prints 'chat' type messages'''
|
'''prints 'chat' type messages'''
|
||||||
jid = self.contact.jid
|
jid = self.contact.jid
|
||||||
full_jid = self.get_full_jid()
|
full_jid = self.get_full_jid()
|
||||||
|
@ -655,7 +654,7 @@ class ChatControlBase(MessageControl):
|
||||||
end = True
|
end = True
|
||||||
textview.print_conversation_line(text, jid, kind, name, tim,
|
textview.print_conversation_line(text, jid, kind, name, tim,
|
||||||
other_tags_for_name, other_tags_for_time, other_tags_for_text,
|
other_tags_for_name, other_tags_for_time, other_tags_for_text,
|
||||||
subject, old_kind, xhtml)
|
subject, old_kind, xhtml, simple=simple)
|
||||||
|
|
||||||
if not count_as_new:
|
if not count_as_new:
|
||||||
return
|
return
|
||||||
|
@ -1518,8 +1517,8 @@ class ChatControl(ChatControlBase):
|
||||||
self._show_lock_image(e2e_is_active, 'E2E', e2e_is_active, self.session and \
|
self._show_lock_image(e2e_is_active, 'E2E', e2e_is_active, self.session and \
|
||||||
self.session.is_loggable())
|
self.session.is_loggable())
|
||||||
|
|
||||||
def print_conversation(self, text, frm = '', tim = None,
|
def print_conversation(self, text, frm='', tim=None, encrypted=False,
|
||||||
encrypted = False, subject = None, xhtml = None):
|
subject=None, xhtml=None, simple=False):
|
||||||
'''Print a line in the conversation:
|
'''Print a line in the conversation:
|
||||||
if contact is set to status: it's a status message
|
if contact is set to status: it's a status message
|
||||||
if contact is set to another value: it's an outgoing message
|
if contact is set to another value: it's an outgoing message
|
||||||
|
@ -1567,7 +1566,8 @@ class ChatControl(ChatControlBase):
|
||||||
if xhtml:
|
if xhtml:
|
||||||
xhtml = '<body xmlns="%s">%s</body>' % (NS_XHTML, xhtml)
|
xhtml = '<body xmlns="%s">%s</body>' % (NS_XHTML, xhtml)
|
||||||
ChatControlBase.print_conversation_line(self, text, kind, name, tim,
|
ChatControlBase.print_conversation_line(self, text, kind, name, tim,
|
||||||
subject = subject, old_kind = self.old_msg_kind, xhtml = xhtml)
|
subject=subject, old_kind=self.old_msg_kind, xhtml=xhtml,
|
||||||
|
simple=simple)
|
||||||
if text.startswith('/me ') or text.startswith('/me\n'):
|
if text.startswith('/me ') or text.startswith('/me\n'):
|
||||||
self.old_msg_kind = None
|
self.old_msg_kind = None
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -982,8 +982,8 @@ class ConversationTextview:
|
||||||
buffer.insert_with_tags_by_name(end_iter, '\n', 'eol')
|
buffer.insert_with_tags_by_name(end_iter, '\n', 'eol')
|
||||||
|
|
||||||
def print_conversation_line(self, text, jid, kind, name, tim,
|
def print_conversation_line(self, text, jid, kind, name, tim,
|
||||||
other_tags_for_name = [], other_tags_for_time = [], other_tags_for_text = [],
|
other_tags_for_name=[], other_tags_for_time=[], other_tags_for_text=[],
|
||||||
subject = None, old_kind = None, xhtml = None):
|
subject=None, old_kind=None, xhtml=None, simple=False):
|
||||||
'''prints 'chat' type messages'''
|
'''prints 'chat' type messages'''
|
||||||
buffer = self.tv.get_buffer()
|
buffer = self.tv.get_buffer()
|
||||||
buffer.begin_user_action()
|
buffer.begin_user_action()
|
||||||
|
@ -1004,7 +1004,8 @@ class ConversationTextview:
|
||||||
# else twice (one for end bound, one for start bound)
|
# else twice (one for end bound, one for start bound)
|
||||||
mark = None
|
mark = None
|
||||||
if buffer.get_char_count() > 0:
|
if buffer.get_char_count() > 0:
|
||||||
buffer.insert_with_tags_by_name(end_iter, '\n', 'eol')
|
if not simple:
|
||||||
|
buffer.insert_with_tags_by_name(end_iter, '\n', 'eol')
|
||||||
mark = buffer.create_mark(None, end_iter, left_gravity=True)
|
mark = buffer.create_mark(None, end_iter, left_gravity=True)
|
||||||
self.marks_queue.put(mark)
|
self.marks_queue.put(mark)
|
||||||
if not mark:
|
if not mark:
|
||||||
|
@ -1019,12 +1020,12 @@ class ConversationTextview:
|
||||||
# We don't have tim for outgoing messages...
|
# We don't have tim for outgoing messages...
|
||||||
tim = time.localtime()
|
tim = time.localtime()
|
||||||
current_print_time = gajim.config.get('print_time')
|
current_print_time = gajim.config.get('print_time')
|
||||||
if current_print_time == 'always' and kind != 'info':
|
if current_print_time == 'always' and kind != 'info' and not simple:
|
||||||
timestamp_str = self.get_time_to_show(tim)
|
timestamp_str = self.get_time_to_show(tim)
|
||||||
timestamp = time.strftime(timestamp_str, tim)
|
timestamp = time.strftime(timestamp_str, tim)
|
||||||
buffer.insert_with_tags_by_name(end_iter, timestamp,
|
buffer.insert_with_tags_by_name(end_iter, timestamp,
|
||||||
*other_tags_for_time)
|
*other_tags_for_time)
|
||||||
elif current_print_time == 'sometimes' and kind != 'info':
|
elif current_print_time == 'sometimes' and kind != 'info' and not simple:
|
||||||
every_foo_seconds = 60 * gajim.config.get(
|
every_foo_seconds = 60 * gajim.config.get(
|
||||||
'print_ichat_every_foo_minutes')
|
'print_ichat_every_foo_minutes')
|
||||||
seconds_passed = time.mktime(tim) - self.last_time_printout
|
seconds_passed = time.mktime(tim) - self.last_time_printout
|
||||||
|
|
|
@ -1198,12 +1198,13 @@ class Interface:
|
||||||
contact.show = show
|
contact.show = show
|
||||||
contact.status = status
|
contact.status = status
|
||||||
uf_show = helpers.get_uf_show(show)
|
uf_show = helpers.get_uf_show(show)
|
||||||
|
ctrl.print_conversation(_('%s is now %s') % (nick, uf_show),
|
||||||
|
'status')
|
||||||
if status:
|
if status:
|
||||||
ctrl.print_conversation(_('%s is now %s (%s)') % (nick, uf_show,
|
ctrl.print_conversation(' (', 'status', simple=True)
|
||||||
status), 'status')
|
ctrl.print_conversation('%s' % (status), 'status', simple=True)
|
||||||
|
ctrl.print_conversation(')', 'status', simple=True)
|
||||||
else:
|
else:
|
||||||
ctrl.print_conversation(_('%s is now %s') % (nick, uf_show),
|
|
||||||
'status')
|
|
||||||
ctrl.parent_win.redraw_tab(ctrl)
|
ctrl.parent_win.redraw_tab(ctrl)
|
||||||
ctrl.update_ui()
|
ctrl.update_ui()
|
||||||
if self.remote_ctrl:
|
if self.remote_ctrl:
|
||||||
|
|
|
@ -1402,12 +1402,12 @@ class RosterWindow:
|
||||||
win.redraw_tab(ctrl)
|
win.redraw_tab(ctrl)
|
||||||
|
|
||||||
uf_show = helpers.get_uf_show(show)
|
uf_show = helpers.get_uf_show(show)
|
||||||
|
ctrl.print_conversation(_('%s is now %s') % (name, uf_show),
|
||||||
|
'status')
|
||||||
if status:
|
if status:
|
||||||
ctrl.print_conversation(_('%s is now %s (%s)') % (name, uf_show,
|
ctrl.print_conversation(' (', 'status', simple=True)
|
||||||
status), 'status')
|
ctrl.print_conversation('%s' % (status), 'status', simple=True)
|
||||||
else: # No status message
|
ctrl.print_conversation(')', 'status', simple=True)
|
||||||
ctrl.print_conversation(_('%s is now %s') % (name, uf_show),
|
|
||||||
'status')
|
|
||||||
|
|
||||||
# unset custom status
|
# unset custom status
|
||||||
if gajim.interface.status_sent_to_users.has_key(account) and \
|
if gajim.interface.status_sent_to_users.has_key(account) and \
|
||||||
|
|
Loading…
Reference in New Issue