aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--data/empathy-log-window.html26
-rw-r--r--libempathy-gtk/empathy-log-window.c22
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);
}