From 43beaebf14754e201f3089da39e5092d27801e00 Mon Sep 17 00:00:00 2001 From: Morgan Collett Date: Fri, 19 Oct 2007 15:47:48 +0000 Subject: #4320: Better URL support --- diff --git a/NEWS b/NEWS index 0776e2e..baf0d61 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,5 @@ +* #4320 Better URL support (morgs) + 25 * #3417 Resuming shows chat history (morgs) diff --git a/chat.py b/chat.py index 0d66ed6..c9ee48a 100644 --- a/chat.py +++ b/chat.py @@ -207,17 +207,6 @@ class Chat(Activity): color_fill = COLOR_WHITE.get_int() text_color = COLOR_BLACK.get_int() - if text.startswith('http://'): - message = hippo.CanvasLink(text=text) - message.connect('activated', self._link_activated_cb) - else: - message = hippo.CanvasText( - text=text, - size_mode=hippo.CANVAS_SIZE_WRAP_WORD, - color=text_color, - font_desc=FONT_NORMAL.get_pango_desc(), - xalign=hippo.ALIGNMENT_START) - rb = CanvasRoundBox(background_color=color_fill, border_color=color_stroke, padding=4) @@ -228,7 +217,36 @@ class Chat(Activity): color=text_color, font_desc=FONT_BOLD.get_pango_desc()) rb.append(name) - rb.append(message) + + urlstart = text.find('http') + while urlstart >= 0: + # there is a URL in the text + starttext = text[:urlstart] + if starttext: + message = hippo.CanvasText( + text=starttext, + size_mode=hippo.CANVAS_SIZE_WRAP_WORD, + color=text_color, + font_desc=FONT_NORMAL.get_pango_desc(), + xalign=hippo.ALIGNMENT_START) + rb.append(message) + urlend = text.find(' ', urlstart) + if urlend == -1: + urlend = len(text) + url = text[urlstart:urlend] + message = hippo.CanvasLink(text=url) + message.connect('activated', self._link_activated_cb) + rb.append(message) + text = text[urlend:] + urlstart = text.find('http') + if text: + message = hippo.CanvasText( + text=text, + size_mode=hippo.CANVAS_SIZE_WRAP_WORD, + color=text_color, + font_desc=FONT_NORMAL.get_pango_desc(), + xalign=hippo.ALIGNMENT_START) + rb.append(message) box = hippo.CanvasBox(padding=4) box.append(rb) -- cgit v0.9.1