From 437e43308bc69e6d40d8252bd932276e2ba68a8e Mon Sep 17 00:00:00 2001 From: 05356787 <05356787@localhost.localdomain> Date: Thu, 30 Oct 2008 08:48:41 -0200 Subject: Allow adding more information per column --- hardinfo2/shell.c | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) (limited to 'hardinfo2/shell.c') diff --git a/hardinfo2/shell.c b/hardinfo2/shell.c index 7487bf13..01b56fa5 100644 --- a/hardinfo2/shell.c +++ b/hardinfo2/shell.c @@ -907,16 +907,28 @@ group_handle_normal(GKeyFile * key_file, ShellModuleEntry * entry, value = entry->fieldfunc(key); } - if ((key && value) && - g_utf8_validate(key, -1, NULL) - && g_utf8_validate(value, -1, NULL)) { + if ((key && value) && g_utf8_validate(key, -1, NULL) && g_utf8_validate(value, -1, NULL)) { if (ngroups == 1) { gtk_tree_store_append(store, &child, NULL); } else { gtk_tree_store_append(store, &child, &parent); } - gtk_tree_store_set(store, &child, INFO_TREE_COL_VALUE, value, - -1); + + if (strchr(value, '|')) { + gchar **columns = g_strsplit(value, "|", 0); + + gtk_tree_store_set(store, &child, INFO_TREE_COL_VALUE, columns[0], -1); + if (columns[1]) { + gtk_tree_store_set(store, &child, INFO_TREE_COL_EXTRA1, columns[1], -1); + if (columns[2]) { + gtk_tree_store_set(store, &child, INFO_TREE_COL_EXTRA2, columns[2], -1); + } + } + + g_strfreev(columns); + } else { + gtk_tree_store_set(store, &child, INFO_TREE_COL_VALUE, value, -1); + } strend(key, '#'); @@ -1094,6 +1106,10 @@ module_selected_show_info(ShellModuleEntry * entry, gboolean reload) } store = GTK_TREE_STORE(shell->info->model); + + g_object_ref(shell->info->model); + gtk_tree_view_set_model(GTK_TREE_VIEW(shell->info->view), NULL); + gtk_tree_store_clear(store); g_key_file_load_from_data(key_file, key_data, strlen(key_data), 0, @@ -1117,6 +1133,8 @@ module_selected_show_info(ShellModuleEntry * entry, gboolean reload) g_strfreev(keys); } + g_object_unref(shell->info->model); + gtk_tree_view_set_model(GTK_TREE_VIEW(shell->info->view), shell->info->model); gtk_tree_view_expand_all(GTK_TREE_VIEW(shell->info->view)); if (shell->view_type == SHELL_VIEW_PROGRESS) { -- cgit v1.2.3