diff options
-rw-r--r-- | hardinfo2/arch/common/blowfish.h | 2 | ||||
-rw-r--r-- | hardinfo2/arch/common/fib.h | 2 | ||||
-rw-r--r-- | hardinfo2/arch/common/md5.h | 2 | ||||
-rw-r--r-- | hardinfo2/arch/common/sha1.h | 2 | ||||
-rw-r--r-- | hardinfo2/arch/common/zlib.h | 2 | ||||
-rw-r--r-- | hardinfo2/arch/linux/ppc/processor.h | 5 | ||||
-rw-r--r-- | hardinfo2/benchmark.c | 5 | ||||
-rw-r--r-- | hardinfo2/shell.c | 83 | ||||
-rw-r--r-- | hardinfo2/shell.h | 4 |
9 files changed, 88 insertions, 19 deletions
diff --git a/hardinfo2/arch/common/blowfish.h b/hardinfo2/arch/common/blowfish.h index 4d496553..4a1667ee 100644 --- a/hardinfo2/arch/common/blowfish.h +++ b/hardinfo2/arch/common/blowfish.h @@ -63,6 +63,6 @@ benchmark_fish(void) g_free(bdata_path); gchar *retval = g_strdup_printf("[Results <i>(in seconds; lower is better)</i>]\n" - "<b>This Machine</b>=<b>%.2f</b>\n", elapsed); + "<b>This Machine</b>=%.2f\n", elapsed); return benchmark_include_results(retval, "Blowfish"); } diff --git a/hardinfo2/arch/common/fib.h b/hardinfo2/arch/common/fib.h index 7dd4279e..e5d28783 100644 --- a/hardinfo2/arch/common/fib.h +++ b/hardinfo2/arch/common/fib.h @@ -45,6 +45,6 @@ benchmark_fib(void) g_timer_destroy(timer); gchar *retval = g_strdup_printf("[Results <i>(in seconds; lower is better)</i>]\n" - "<b>This Machine</b>=<b>%.3f</b>\n", elapsed); + "<b>This Machine</b>=%.3f\n", elapsed); return benchmark_include_results(retval, "Fibonacci"); } diff --git a/hardinfo2/arch/common/md5.h b/hardinfo2/arch/common/md5.h index 0cf30705..3e6248eb 100644 --- a/hardinfo2/arch/common/md5.h +++ b/hardinfo2/arch/common/md5.h @@ -60,7 +60,7 @@ benchmark_md5(void) g_free(bdata_path); gchar *retval = g_strdup_printf("[Results <i>(in seconds; lower is better)</i>]\n" - "<b>This Machine</b>=<b>%.2f</b>\n", elapsed); + "<b>This Machine</b>=%.2f\n", elapsed); return benchmark_include_results(retval, "MD5"); } diff --git a/hardinfo2/arch/common/sha1.h b/hardinfo2/arch/common/sha1.h index 2468869e..4b5bed5a 100644 --- a/hardinfo2/arch/common/sha1.h +++ b/hardinfo2/arch/common/sha1.h @@ -59,7 +59,7 @@ benchmark_sha1(void) g_free(bdata_path); gchar *retval = g_strdup_printf("[Results <i>(in seconds; lower is better)</i>]\n" - "<b>This Machine</b>=<b>%.2f</b>\n", elapsed); + "<b>This Machine</b>=%.2f\n", elapsed); return benchmark_include_results(retval, "SHA1"); } diff --git a/hardinfo2/arch/common/zlib.h b/hardinfo2/arch/common/zlib.h index 3f76aabb..f30cf82c 100644 --- a/hardinfo2/arch/common/zlib.h +++ b/hardinfo2/arch/common/zlib.h @@ -82,7 +82,7 @@ benchmark_zlib(void) g_free(bdata_path); gchar *retval = g_strdup_printf("[Results <i>(in seconds; lower is better)</i>]\n" - "<b>This Machine</b>=<b>%.2f</b>\n", elapsed); + "<b>This Machine</b>=%.2f\n", elapsed); return benchmark_include_results(retval, "ZLib"); } diff --git a/hardinfo2/arch/linux/ppc/processor.h b/hardinfo2/arch/linux/ppc/processor.h index b494ee4b..80372893 100644 --- a/hardinfo2/arch/linux/ppc/processor.h +++ b/hardinfo2/arch/linux/ppc/processor.h @@ -45,7 +45,10 @@ computer_get_processors(void) g_strfreev(tmp); } - gchar *tmp = g_strconcat("PowerPC ", processor->model_name, NULL); + gchar *tmp = g_strdup_printf("PowerPC %s (%.2fMHz)", + processor->model_name, + processor->cpu_mhz, + NULL); g_free(processor->model_name); processor->model_name = tmp; diff --git a/hardinfo2/benchmark.c b/hardinfo2/benchmark.c index f5492bf7..3743f4a0 100644 --- a/hardinfo2/benchmark.c +++ b/hardinfo2/benchmark.c @@ -59,8 +59,9 @@ benchmark_include_results(gchar *results, const gchar *benchmark) g_key_file_free(conf); g_free(bconf_path); - return g_strconcat(results, "[$ShellParam$]\n" - "Zebra=1\n", NULL); + return g_strconcat("[$ShellParam$]\n" + "Zebra=1\n" + "ViewType=3\n", results, NULL); } #include <arch/common/fib.h> diff --git a/hardinfo2/shell.c b/hardinfo2/shell.c index 8b19801c..2f1dd82f 100644 --- a/hardinfo2/shell.c +++ b/hardinfo2/shell.c @@ -212,7 +212,7 @@ shell_status_set_percentage(gint percentage) { if (params.gui_running) { gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(shell->progress), - (float)percentage/100.0); + (float)percentage / 100.0); while (gtk_events_pending()) gtk_main_iteration(); } else { @@ -607,6 +607,10 @@ reload_section(gpointer data) static void set_view_type(ShellViewType viewtype) { + + gtk_tree_view_column_set_visible(shell->info->col_progress, FALSE); + gtk_tree_view_column_set_visible(shell->info->col_value, TRUE); + gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(shell->info->view), FALSE); if (viewtype == shell->view_type) @@ -636,6 +640,13 @@ set_view_type(ShellViewType viewtype) shell->view_type = SHELL_VIEW_LOAD_GRAPH; break; + case SHELL_VIEW_PROGRESS: + gtk_tree_view_column_set_visible(shell->info->col_progress, TRUE); + gtk_tree_view_column_set_visible(shell->info->col_value, FALSE); + gtk_widget_hide(shell->notebook); + + shell->view_type = SHELL_VIEW_PROGRESS; + break; } } @@ -718,11 +729,13 @@ group_handle_normal(GKeyFile * key_file, ShellModuleEntry * entry, gchar *tmp = g_strdup(group); gint i; - gtk_tree_store_append(store, &parent, NULL); + if (shell->view_type != SHELL_VIEW_PROGRESS) { + gtk_tree_store_append(store, &parent, NULL); - strend(tmp, '#'); - gtk_tree_store_set(store, &parent, INFO_TREE_COL_NAME, tmp, -1); - g_free(tmp); + strend(tmp, '#'); + gtk_tree_store_set(store, &parent, INFO_TREE_COL_NAME, tmp, -1); + g_free(tmp); + } for (i = 0; keys[i]; i++) { gchar *key = keys[i]; @@ -736,7 +749,11 @@ group_handle_normal(GKeyFile * key_file, ShellModuleEntry * entry, } if (g_utf8_validate(key, -1, NULL) && g_utf8_validate(value, -1, NULL)) { - gtk_tree_store_append(store, &child, &parent); + if (shell->view_type == SHELL_VIEW_PROGRESS) { + 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); strend(key, '#'); @@ -794,6 +811,36 @@ moreinfo_handle_normal(GKeyFile * key_file, gchar * group, gchar ** keys) } static void +update_progress() +{ + GtkTreeModel *model = shell->info->model; + GtkTreeStore *store = GTK_TREE_STORE(model); + GtkTreeIter iter; + gchar *tmp; + gdouble max = 0, cur; + + gtk_tree_model_get_iter_first(model, &iter); + + while (gtk_tree_model_iter_next(model, &iter)) { + gtk_tree_model_get(model, &iter, INFO_TREE_COL_VALUE, &tmp, -1); + cur = atof(tmp); + if (cur > max) + max = cur; + + g_free(tmp); + } + + gtk_tree_model_get_iter_first(model, &iter); + while (gtk_tree_model_iter_next(model, &iter)) { + gtk_tree_model_get(model, &iter, INFO_TREE_COL_VALUE, &tmp, -1); + gtk_tree_store_set(store, &iter, + INFO_TREE_COL_PROGRESS, 100 * (atof(tmp) / max), -1); + + g_free(tmp); + } +} + +static void module_selected_show_info(ShellModuleEntry * entry, gboolean reload) { GKeyFile *key_file = g_key_file_new(); @@ -836,8 +883,12 @@ module_selected_show_info(ShellModuleEntry * entry, gboolean reload) group_handle_normal(key_file, entry, group, keys); } } - + gtk_tree_view_expand_all(GTK_TREE_VIEW(shell->info->view)); + + if (shell->view_type == SHELL_VIEW_PROGRESS) { + update_progress(); + } g_strfreev(groups); g_key_file_free(key_file); @@ -889,7 +940,7 @@ module_selected(GtkTreeSelection * ts, gpointer data) GtkTreeIter parent; ShellModuleEntry *entry; static ShellModuleEntry *current = NULL; - static gboolean updating = FALSE; + static gboolean updating = FALSE; if (updating) return; @@ -972,7 +1023,7 @@ info_tree_new(gboolean extra) GtkTreeModel *model; GtkTreeStore *store; GtkTreeViewColumn *column; - GtkCellRenderer *cr_text, *cr_pbuf; + GtkCellRenderer *cr_text, *cr_pbuf, *cr_progress; info = g_new0(ShellInfoTree, 1); @@ -984,7 +1035,8 @@ info_tree_new(gboolean extra) GTK_POLICY_AUTOMATIC); store = gtk_tree_store_new(INFO_TREE_NCOL, G_TYPE_STRING, G_TYPE_STRING, - G_TYPE_STRING, GDK_TYPE_PIXBUF); + G_TYPE_STRING, GDK_TYPE_PIXBUF, + G_TYPE_FLOAT); model = GTK_TREE_MODEL(store); treeview = gtk_tree_view_new_with_model(model); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE); @@ -1002,7 +1054,7 @@ info_tree_new(gboolean extra) gtk_tree_view_column_add_attribute(column, cr_text, "markup", INFO_TREE_COL_NAME); - column = gtk_tree_view_column_new(); + info->col_value = column = gtk_tree_view_column_new(); gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); cr_text = gtk_cell_renderer_text_new(); @@ -1010,6 +1062,15 @@ info_tree_new(gboolean extra) gtk_tree_view_column_add_attribute(column, cr_text, "markup", INFO_TREE_COL_VALUE); + info->col_progress = column = gtk_tree_view_column_new(); + gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column); + + cr_progress = gtk_cell_renderer_progress_new(); + gtk_tree_view_column_pack_start(column, cr_progress, TRUE); + gtk_tree_view_column_add_attribute(column, cr_progress, "value", + INFO_TREE_COL_PROGRESS); + gtk_tree_view_column_set_visible(column, FALSE); + if (!extra) { GtkTreeSelection *sel; diff --git a/hardinfo2/shell.h b/hardinfo2/shell.h index 726ec3e9..b9ba7aa8 100644 --- a/hardinfo2/shell.h +++ b/hardinfo2/shell.h @@ -39,6 +39,7 @@ typedef enum { SHELL_VIEW_NORMAL, SHELL_VIEW_DUAL, SHELL_VIEW_LOAD_GRAPH, + SHELL_VIEW_PROGRESS, } ShellViewType; typedef enum { @@ -54,6 +55,7 @@ typedef enum { INFO_TREE_COL_VALUE, INFO_TREE_COL_DATA, INFO_TREE_COL_PBUF, + INFO_TREE_COL_PROGRESS, INFO_TREE_NCOL } ShellInfoTreeColumns; @@ -88,6 +90,8 @@ struct _ShellInfoTree { GtkWidget *scroll; GtkWidget *view; GtkTreeModel *model; + + GtkTreeViewColumn *col_progress, *col_value; }; struct _ShellModule { |