aboutsummaryrefslogtreecommitdiff
path: root/hardinfo2
diff options
context:
space:
mode:
authorLeandro Pereira <leandro@hardinfo.org>2010-01-04 01:08:00 -0200
committerLeandro Pereira <leandro@hardinfo.org>2010-01-04 01:08:00 -0200
commita2309cd30ce4378c6255d32db76cfe0d2a79e836 (patch)
tree47ece23b30de75624316aa330853d4085e537524 /hardinfo2
parent1e1a647f6fb643163b34604d35e15a1341be007e (diff)
Add a ShellModule pointer to the Shell that points to the currently-selected module.
Diffstat (limited to 'hardinfo2')
-rw-r--r--hardinfo2/callbacks.c22
-rw-r--r--hardinfo2/remote.c12
-rw-r--r--hardinfo2/report.c2
-rw-r--r--hardinfo2/shell.c21
-rw-r--r--hardinfo2/shell.h6
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;
};