diff options
-rw-r--r-- | data/empathy-log-window.html | 26 | ||||
-rw-r--r-- | libempathy-gtk/empathy-log-window.c | 22 |
2 files changed, 42 insertions, 6 deletions
diff --git a/data/empathy-log-window.html b/data/empathy-log-window.html index d466c9117..034c9301d 100644 --- a/data/empathy-log-window.html +++ b/data/empathy-log-window.html @@ -34,6 +34,11 @@ span.date { float: right; color: gray; } + +img.icon { + vertical-align: middle; + padding-right: 1px; +} </style> <script type="text/javascript"> function filterNodes (node, tagName) @@ -108,7 +113,20 @@ function expandAll() expandAllRecurse(treeview); } -function insertRow (path, text, date_) +function setContent (contents, text, icon, date_) +{ + contents.innerHTML = ""; + + if (icon != "") + { + contents.innerHTML += '<img class="icon" src="' + icon + '"/>'; + } + + contents.innerHTML += text; + contents.innerHTML += '<span class="date">' + date_ + '</span>'; +} + +function insertRow (path, text, icon, date_) { var treeview = document.getElementById('treeview'); var parentnode = treeview; @@ -150,14 +168,14 @@ function insertRow (path, text, date_) var contents = document.createElement('p'); newnode.appendChild(contents); - contents.innerHTML = text + '<span class="date">' + date_ + '</span>'; + setContent(contents, text, icon, date_); // if the node is not a top-level node, hide it if (parentnode != treeview) newnode.style.display = 'none'; } -function changeRow (path, text, date_) +function changeRow (path, text, icon, date_) { var treeview = document.getElementById('treeview'); var node = treeview; @@ -170,7 +188,7 @@ function changeRow (path, text, date_) // set the contents var contents = getContent(node); - contents.innerHTML = text + '<span class="date">' + date_ + '</span>'; + setContent(contents, text, icon, date_); } function deleteRow (path) diff --git a/libempathy-gtk/empathy-log-window.c b/libempathy-gtk/empathy-log-window.c index f2aafda31..ba634205b 100644 --- a/libempathy-gtk/empathy-log-window.c +++ b/libempathy-gtk/empathy-log-window.c @@ -375,17 +375,33 @@ insert_or_change_row (EmpathyLogWindow *self, GtkTreeIter *iter) { char *str = gtk_tree_path_to_string (path); - char *script, *text, *date; + char *script, *text, *date, *stock_icon; + char *icon = NULL; gtk_tree_model_get (model, iter, COL_EVENTS_TEXT, &text, COL_EVENTS_PRETTY_DATE, &date, + COL_EVENTS_ICON, &stock_icon, -1); - script = g_strdup_printf ("javascript:%s([%s], '%s', '%s');", + if (!tp_str_empty (stock_icon)) + { + GtkIconInfo *icon_info = gtk_icon_theme_lookup_icon ( + gtk_icon_theme_get_default (), + stock_icon, + GTK_ICON_SIZE_MENU, 0); + + if (icon_info != NULL) + icon = g_strdup (gtk_icon_info_get_filename (icon_info)); + + gtk_icon_info_free (icon_info); + } + + script = g_strdup_printf ("javascript:%s([%s], '%s', '%s', '%s');", method, g_strdelimit (str, ":", ','), text, + icon != NULL ? icon: "", date); // g_print ("%s\n", script); @@ -395,6 +411,8 @@ insert_or_change_row (EmpathyLogWindow *self, g_free (str); g_free (text); g_free (date); + g_free (stock_icon); + g_free (icon); g_free (script); } |