better xhtml-gui code

This commit is contained in:
Julien Pivotto 2009-01-22 20:43:15 +00:00
parent 674924889f
commit 1738247d12
2 changed files with 14 additions and 21 deletions

View File

@ -2494,6 +2494,9 @@ class Interface:
# basic matches that may occur earlier # basic matches that may occur earlier
self.emot_and_basic = basic_pattern + emoticons_pattern self.emot_and_basic = basic_pattern + emoticons_pattern
# needed for xhtml display
self.emot_only = emoticons_pattern
# at least one character in 3 parts (before @, after @, after .) # at least one character in 3 parts (before @, after @, after .)
self.sth_at_sth_dot_sth = r'\S+@\S+\.\S*[^\s)?]' self.sth_at_sth_dot_sth = r'\S+@\S+\.\S*[^\s)?]'

View File

@ -4,6 +4,7 @@
## Copyright (C) 2003-2007 Yann Leboulanger <asterix AT lagaule.org> ## Copyright (C) 2003-2007 Yann Leboulanger <asterix AT lagaule.org>
## Copyright (C) 2005-2007 Nikos Kouremenos <kourem AT gmail.com> ## Copyright (C) 2005-2007 Nikos Kouremenos <kourem AT gmail.com>
## Copyright (C) 2006 Dimitur Kirov <dkirov AT gmail.com> ## Copyright (C) 2006 Dimitur Kirov <dkirov AT gmail.com>
## Copyright (C) 2008-2009 Julien Pivotto <roidelapluie AT gmail.com>
## ##
## This file is part of Gajim. ## This file is part of Gajim.
## ##
@ -104,23 +105,24 @@ class MessageTextView(gtk.TextView):
def get_active_tags(self): def get_active_tags(self):
buffer = self.get_buffer() buffer = self.get_buffer()
return_val = buffer.get_selection_bounds() start, finish = self.get_active_iters()
if return_val: # if sth was selected
start, finish = return_val[0], return_val[1]
else:
start, finish = buffer.get_bounds()
active_tags = [] active_tags = []
for tag in start.get_tags(): for tag in start.get_tags():
active_tags.append(tag.get_property('name')) active_tags.append(tag.get_property('name'))
return active_tags return active_tags
def set_tag(self, widget, tag): def get_active_iters(self):
buffer = self.get_buffer() buffer = self.get_buffer()
return_val = buffer.get_selection_bounds() return_val = buffer.get_selection_bounds()
if return_val: # if sth was selected if return_val: # if sth was selected
start, finish = return_val[0], return_val[1] start, finish = return_val[0], return_val[1]
else: else:
start, finish = buffer.get_bounds() start, finish = buffer.get_bounds()
return (start, finish)
def set_tag(self, widget, tag):
buffer = self.get_buffer()
start, finish = self.get_active_iters()
if start.has_tag(self.other_tags[tag]): if start.has_tag(self.other_tags[tag]):
buffer.remove_tag_by_name(tag, start, finish) buffer.remove_tag_by_name(tag, start, finish)
else: else:
@ -132,11 +134,7 @@ class MessageTextView(gtk.TextView):
def clear_tags(self, widget): def clear_tags(self, widget):
buffer = self.get_buffer() buffer = self.get_buffer()
return_val = buffer.get_selection_bounds() start, finish = self.get_active_iters()
if return_val: # if sth was selected
start, finish = return_val[0], return_val[1]
else:
start, finish = buffer.get_bounds()
buffer.remove_all_tags(start, finish) buffer.remove_all_tags(start, finish)
def color_set(self, widget, response, color): def color_set(self, widget, response, color):
@ -155,11 +153,7 @@ class MessageTextView(gtk.TextView):
self.end_tags[tag_name] = '</span>' self.end_tags[tag_name] = '</span>'
self.color_tags.append(tag_name) self.color_tags.append(tag_name)
return_val = buffer.get_selection_bounds() start, finish = self.get_active_iters()
if return_val: # if sth was selected
start, finish = return_val[0], return_val[1]
else:
start, finish = buffer.get_bounds()
for tag in self.color_tags: for tag in self.color_tags:
buffer.remove_tag_by_name(tag, start, finish) buffer.remove_tag_by_name(tag, start, finish)
@ -193,11 +187,7 @@ class MessageTextView(gtk.TextView):
self.end_tags[tag_name] = '</span>' self.end_tags[tag_name] = '</span>'
self.fonts_tags.append(tag_name) self.fonts_tags.append(tag_name)
return_val = buffer.get_selection_bounds() start, finish = self.get_active_iters()
if return_val: # if sth was selected
start, finish = return_val[0], return_val[1]
else:
start, finish = buffer.get_bounds()
for tag in self.fonts_tags: for tag in self.fonts_tags:
buffer.remove_tag_by_name(tag, start, finish) buffer.remove_tag_by_name(tag, start, finish)