[empathy: 5/19] [theme-adium] wrap the messages in <span id=...> so we can find them again
- From: Danielle Madeley <daniellem src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [empathy: 5/19] [theme-adium] wrap the messages in <span id=...> so we can find them again
- Date: Mon, 20 Jun 2011 10:08:20 +0000 (UTC)
commit 0569ded29dbab08462670e4780fb17ec5e4950ff
Author: Danielle Madeley <danielle madeley collabora co uk>
Date: Wed May 18 15:57:55 2011 +1000
[theme-adium] wrap the messages in <span id=...> so we can find them again
This will enable our DOM manipulation
libempathy-gtk/empathy-theme-adium.c | 20 ++++++++++++++++----
1 files changed, 16 insertions(+), 4 deletions(-)
---
diff --git a/libempathy-gtk/empathy-theme-adium.c b/libempathy-gtk/empathy-theme-adium.c
index 0370b90..6c5ae79 100644
--- a/libempathy-gtk/empathy-theme-adium.c
+++ b/libempathy-gtk/empathy-theme-adium.c
@@ -315,7 +315,8 @@ static EmpathyStringParser string_parsers_with_smiley[] = {
static gchar *
theme_adium_parse_body (EmpathyThemeAdium *self,
- const gchar *text)
+ const gchar *text,
+ const gchar *token)
{
EmpathyThemeAdiumPriv *priv = GET_PRIV (self);
EmpathyStringParser *parsers;
@@ -332,8 +333,19 @@ theme_adium_parse_body (EmpathyThemeAdium *self,
* by html tags. Also escape text to make sure html code is
* displayed verbatim. */
string = g_string_sized_new (strlen (text));
+
+ /* wrap this in HTML that allows us to find the message for later
+ * editing */
+ if (!tp_str_empty (token))
+ g_string_append_printf (string,
+ "<span id=\"message-token-%s\">",
+ token);
+
empathy_string_parser_substr (text, -1, parsers, string);
+ if (!tp_str_empty (token))
+ g_string_append (string, "</span>");
+
/* Wrap body in order to make tabs and multiple spaces displayed
* properly. See bug #625745. */
g_string_prepend (string, "<div style=\"display: inline; "
@@ -817,7 +829,6 @@ theme_adium_append_message (EmpathyChatView *view,
TpMessage *tp_msg;
TpAccount *account;
gchar *body_escaped;
- const gchar *body;
const gchar *name;
const gchar *contact_id;
EmpathyAvatar *avatar;
@@ -846,8 +857,9 @@ theme_adium_append_message (EmpathyChatView *view,
if (service_name == NULL)
service_name = tp_account_get_protocol (account);
timestamp = empathy_message_get_timestamp (msg);
- body = empathy_message_get_body (msg);
- body_escaped = theme_adium_parse_body (theme, body);
+ body_escaped = theme_adium_parse_body (theme,
+ empathy_message_get_body (msg),
+ empathy_message_get_token (msg));
name = empathy_contact_get_alias (sender);
contact_id = empathy_contact_get_id (sender);
action = (empathy_message_get_tptype (msg) == TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]