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;  }; | 
