diff options
author | Leandro Pereira <leandro@hardinfo.org> | 2010-01-04 01:08:00 -0200 |
---|---|---|
committer | Leandro Pereira <leandro@hardinfo.org> | 2010-01-04 01:08:00 -0200 |
commit | a2309cd30ce4378c6255d32db76cfe0d2a79e836 (patch) | |
tree | 47ece23b30de75624316aa330853d4085e537524 | |
parent | 1e1a647f6fb643163b34604d35e15a1341be007e (diff) |
Add a ShellModule pointer to the Shell that points to the currently-selected module.
-rw-r--r-- | hardinfo2/callbacks.c | 22 | ||||
-rw-r--r-- | hardinfo2/remote.c | 12 | ||||
-rw-r--r-- | hardinfo2/report.c | 2 | ||||
-rw-r--r-- | hardinfo2/shell.c | 21 | ||||
-rw-r--r-- | hardinfo2/shell.h | 6 |
5 files changed, 39 insertions, 24 deletions
diff --git a/hardinfo2/callbacks.c b/hardinfo2/callbacks.c index 42a9c642..a3e49ad9 100644 --- a/hardinfo2/callbacks.c +++ b/hardinfo2/callbacks.c @@ -195,11 +195,22 @@ void cb_open_online_docs_context() if (shell->selected->flags & MODULE_FLAG_HAS_HELP) { gchar *temp; - /* FIXME: better naming for context-help files */ - temp = g_strdup_printf("context-help-%s-%d.hlp", - shell->selected_module_name, - shell->selected->number); - + if (shell->selected_module->dll) { + gchar *name_temp; + + name_temp = g_module_name(shell->selected_module->dll); + name_temp = g_path_get_basename(name_temp); + strend(name_temp, '.'); + + temp = g_strdup_printf("context-help-%s-%d.hlp", + name_temp, + shell->selected->number); + + g_free(name_temp); + } else { + goto no_context_help; + } + if (shell->help_viewer) { help_viewer_open_page(shell->help_viewer, temp); } else { @@ -214,6 +225,7 @@ void cb_open_online_docs_context() } else { GtkWidget *dialog; +no_context_help: dialog = gtk_message_dialog_new(GTK_WINDOW(shell->window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, diff --git a/hardinfo2/remote.c b/hardinfo2/remote.c index da039f0c..f75e9b07 100644 --- a/hardinfo2/remote.c +++ b/hardinfo2/remote.c @@ -198,7 +198,7 @@ static gchar *remote_module_entry_func() ret = xmlrpc_get_string(xmlrpc_server_uri, "module.entryFunction", "%s%i", - shell->selected_module_name, + shell->selected_module->name, shell->selected->number); if (!ret) { @@ -216,12 +216,12 @@ static void remote_module_entry_scan_func(gboolean reload) if (reload) { xmlrpc_get_string(xmlrpc_server_uri, "module.entryReload", "%s%i", - shell->selected_module_name, + shell->selected_module->name, shell->selected->number); } else { xmlrpc_get_string(xmlrpc_server_uri, "module.entryScan", "%s%i", - shell->selected_module_name, + shell->selected_module->name, shell->selected->number); } } @@ -234,7 +234,7 @@ static gchar *remote_module_entry_field_func(gchar * entry) ret = xmlrpc_get_string(xmlrpc_server_uri, "module.entryGetField", "%s%i%s", - shell->selected_module_name, + shell->selected_module->name, shell->selected->number, entry); if (!ret) { @@ -252,7 +252,7 @@ static gchar *remote_module_entry_more_func(gchar * entry) ret = xmlrpc_get_string(xmlrpc_server_uri, "module.entryGetMoreInfo", "%s%i%s", - shell->selected_module_name, + shell->selected_module->name, shell->selected->number, entry); if (!ret) { @@ -270,7 +270,7 @@ static gchar *remote_module_entry_note_func(gint entry) note = xmlrpc_get_string(xmlrpc_server_uri, "module.entryGetNote", "%s%i", - shell->selected_module_name, + shell->selected_module->name, shell->selected->number); if (note && *note == '\0') { diff --git a/hardinfo2/report.c b/hardinfo2/report.c index 1c97a686..fb87ee23 100644 --- a/hardinfo2/report.c +++ b/hardinfo2/report.c @@ -426,7 +426,7 @@ static GSList *report_create_module_list_from_dialog(ReportDialog * rd) if (!selected) continue; - gtk_tree_model_get(model, &child, TREE_COL_DATA, &entry, + gtk_tree_model_get(model, &child, TREE_COL_MODULE_ENTRY, &entry, -1); module->entries = g_slist_append(module->entries, entry); } diff --git a/hardinfo2/shell.c b/hardinfo2/shell.c index 00c5d63c..ab270632 100644 --- a/hardinfo2/shell.c +++ b/hardinfo2/shell.c @@ -639,8 +639,12 @@ void shell_add_modules_to_gui(gpointer _shell_module, gpointer _shell_tree) } gtk_tree_store_append(store, &parent, NULL); - gtk_tree_store_set(store, &parent, TREE_COL_NAME, module->name, - TREE_COL_DATA, NULL, TREE_COL_SEL, FALSE, -1); + gtk_tree_store_set(store, &parent, + TREE_COL_NAME, module->name, + TREE_COL_MODULE, module, + TREE_COL_MODULE_ENTRY, NULL, + TREE_COL_SEL, FALSE, + -1); if (module->icon) { gtk_tree_store_set(store, &parent, TREE_COL_PBUF, module->icon, @@ -659,7 +663,7 @@ void shell_add_modules_to_gui(gpointer _shell_module, gpointer _shell_tree) gtk_tree_store_append(store, &child, &parent); gtk_tree_store_set(store, &child, TREE_COL_NAME, entry->name, - TREE_COL_DATA, entry, + TREE_COL_MODULE_ENTRY, entry, TREE_COL_SEL, FALSE, -1); if (entry->icon) { @@ -1480,7 +1484,7 @@ static void module_selected(gpointer data) } /* Get the current selection and shows its related info */ - gtk_tree_model_get(model, &iter, TREE_COL_DATA, &entry, -1); + gtk_tree_model_get(model, &iter, TREE_COL_MODULE_ENTRY, &entry, -1); if (entry && !entry->selected) { GtkTreeIter parent; gchar *title; @@ -1488,9 +1492,8 @@ static void module_selected(gpointer data) shell_status_set_enabled(TRUE); shell_status_update("Updating..."); - g_free(shell->selected_module_name); gtk_tree_model_iter_parent(model, &parent, &iter); - gtk_tree_model_get(model, &parent, TREE_COL_NAME, &shell->selected_module_name, -1); + gtk_tree_model_get(model, &parent, TREE_COL_MODULE, &shell->selected_module, -1); entry->selected = TRUE; shell->selected = entry; @@ -1505,7 +1508,7 @@ static void module_selected(gpointer data) RANGE_SET_VALUE(moreinfo, vscrollbar, 0.0); RANGE_SET_VALUE(moreinfo, hscrollbar, 0.0); - title = g_strdup_printf("%s - %s", shell->selected_module_name, entry->name); + title = g_strdup_printf("%s - %s", shell->selected_module->name, entry->name); shell_set_title(shell, title); g_free(title); @@ -1515,7 +1518,7 @@ static void module_selected(gpointer data) shell_action_set_enabled("ContextHelpAction", TRUE); temp = g_strdup_printf("Help on %s \342\206\222 %s", - shell->selected_module_name, + shell->selected_module->name, entry->name); shell_action_set_label("ContextHelpAction", temp); @@ -1690,7 +1693,7 @@ static ShellTree *tree_new() GTK_POLICY_AUTOMATIC); store = gtk_tree_store_new(TREE_NCOL, GDK_TYPE_PIXBUF, G_TYPE_STRING, - G_TYPE_POINTER, G_TYPE_BOOLEAN); + G_TYPE_POINTER, G_TYPE_POINTER, G_TYPE_BOOLEAN); model = GTK_TREE_MODEL(store); treeview = gtk_tree_view_new_with_model(model); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE); diff --git a/hardinfo2/shell.h b/hardinfo2/shell.h index 7f31c14c..a3bb6033 100644 --- a/hardinfo2/shell.h +++ b/hardinfo2/shell.h @@ -57,7 +57,8 @@ typedef enum { typedef enum { TREE_COL_PBUF, TREE_COL_NAME, - TREE_COL_DATA, + TREE_COL_MODULE_ENTRY, + TREE_COL_MODULE, TREE_COL_SEL, TREE_NCOL } ShellTreeColumns; @@ -82,6 +83,7 @@ struct _Shell { ShellTree *tree; ShellInfoTree *info, *moreinfo; + ShellModule *selected_module; ShellModuleEntry *selected; ShellNote *note; LoadGraph *loadgraph; @@ -96,8 +98,6 @@ struct _Shell { gint _pulses; ShellOrderType _order_type; - gchar *selected_module_name; - GKeyFile *hosts; HelpViewer *help_viewer; }; |