summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--src/panels/log.c24
-rw-r--r--src/panels/log.h2
3 files changed, 32 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 799389c..1e4a956 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+11-01-05 Cyrille Bagard <nocbos@gmail.com>
+
+ * src/panels/log.c:
+ * src/panels/log.h:
+ Extend the logging system.
+
11-01-03 Cyrille Bagard <nocbos@gmail.com>
* configure.ac:
diff --git a/src/panels/log.c b/src/panels/log.c
index b13119a..175c185 100644
--- a/src/panels/log.c
+++ b/src/panels/log.c
@@ -78,6 +78,7 @@ GtkWidget *build_log_panel(void)
g_object_set_data(G_OBJECT(result), "store", store);
treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
+ g_object_set_data(G_OBJECT(result), "treeview", treeview);
gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE);
gtk_widget_show(treeview);
gtk_container_add(GTK_CONTAINER(result), treeview);
@@ -124,6 +125,8 @@ void log_simple_message(LogMessageType type, const char *msg)
GtkWidget *panel; /* Panneau à traiter */
GtkTreeStore *store; /* Modèle de gestion */
GtkTreeIter iter; /* Point d'insertion */
+ GtkTreeView *treeview; /* Affichage de la liste */
+ GtkTreePath *path; /* Chemin d'accès à la ligne */
panel = get_panel(PNT_LOG);
store = g_object_get_data(G_OBJECT(panel), "store");
@@ -153,6 +156,20 @@ void log_simple_message(LogMessageType type, const char *msg)
-1);
break;
+ case LMT_ERROR:
+ gtk_tree_store_set(store, &iter,
+ LGC_PICTURE, "gtk-dialog-error",
+ LGC_STRING, msg,
+ -1);
+ break;
+
+ case LMT_WARNING:
+ gtk_tree_store_set(store, &iter,
+ LGC_PICTURE, "gtk-dialog-warning",
+ LGC_STRING, msg,
+ -1);
+ break;
+
default:
gtk_tree_store_set(store, &iter,
LGC_STRING, msg,
@@ -161,6 +178,13 @@ void log_simple_message(LogMessageType type, const char *msg)
}
+ treeview = GTK_TREE_VIEW(g_object_get_data(G_OBJECT(panel), "treeview"));
+ path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iter);
+
+ gtk_tree_view_scroll_to_cell(treeview, path, NULL, FALSE, 0.0, 0.0);
+
+ gtk_tree_path_free(path);
+
}
diff --git a/src/panels/log.h b/src/panels/log.h
index 5ea95cc..b0fc3e9 100644
--- a/src/panels/log.h
+++ b/src/panels/log.h
@@ -36,6 +36,8 @@ typedef enum _LogMessageType
LMT_INFO, /* Information sur l'exécution */
LMT_BAD_BINARY, /* Binaire malformé */
LMT_PROCESS, /* Début de tâche quelconque */
+ LMT_ERROR, /* Erreur de traitement */
+ LMT_WARNING, /* Avertissment à remonter */
LMT_COUNT