Remove the xhtml-im that was inserted for debug, add the start of a method to enter attributes in Inputs, convert \n to <br /> in xhtml_im bodies and put that body in a <p> element

This commit is contained in:
Florent Le Coz 2011-03-29 21:07:53 +02:00
parent 42f4d55512
commit 51cebe7bdc
4 changed files with 17 additions and 4 deletions

View file

@ -665,6 +665,7 @@ class Core(object):
curses.curs_set(1)
curses.noecho()
curses.nonl()
curses.raw()
theme.init_colors()
stdscr.keypad(True)
curses.ungetch(" ") # H4X: without this, the screen is

View file

@ -557,7 +557,6 @@ class MucTab(ChatTab):
msg = self.core.xmpp.make_message(self.get_name())
msg['type'] = 'groupchat'
msg['body'] = line
msg['xhtml_im'] = "<body><p>coucou</p></body>"
if config.get('send_chat_states', 'true') == 'true' and self.remote_wants_chatstates is not False:
msg['chat_state'] = 'active'
msg.send()

View file

@ -50,6 +50,8 @@ import wcwidth
import singleton
import collections
from keyboard import read_char
Line = collections.namedtuple('Line', 'text text_offset nickname_color time nickname')
g_lock = Lock()
@ -1065,8 +1067,10 @@ class MessageInput(Input):
"""
The input featuring history and that is being used in
Conversation, Muc and Private tabs
Also letting the user enter colors or other text markups
"""
history = list() # The history is common to all MessageInput
text_attributes = set(('b', 'o', 'u'))
def __init__(self):
Input.__init__(self)
@ -1076,6 +1080,7 @@ class MessageInput(Input):
self.key_func["M-A"] = self.key_up
self.key_func["KEY_DOWN"] = self.key_down
self.key_func["M-B"] = self.key_down
self.key_func['^C'] = self.enter_attrib
def key_up(self):
"""
@ -1092,6 +1097,14 @@ class MessageInput(Input):
self.text = MessageInput.history[self.histo_pos]
self.key_end()
def enter_attrib(self):
"""
Read one more char (c) and add \x19c to the string
"""
attr_char = read_char(self.core.stdscr)
if attr_char in self.text_attributes or attr_char.isdigit():
self.do_command('\x19%s' % attr_char)
def key_down(self):
"""
Get the next line in the history

View file

@ -64,7 +64,7 @@ def poezio_colors_to_html(string):
# a list of all opened elements, e.g. ['strong', 'span']
# So that we know what we need to close
opened_elements = []
res = "<body xmlns='http://www.w3.org/1999/html'>"
res = "<body xmlns='http://www.w3.org/1999/html'><p>"
next_attr_char = string.find('\x19')
while next_attr_char != -1:
attr_char = string[next_attr_char+1].lower()
@ -90,8 +90,8 @@ def poezio_colors_to_html(string):
res += string
for elem in opened_elements[::-1]:
res += '</%s>' % (elem,)
res += "</body>"
return res
res += "</p></body>"
return res.replace('\n', '<br />')
def shell_colors_to_poezio_colors(string):
"""