enum shell_reply shell_exec_set(struct gnutella_shell *sh, int argc, const char *argv[]) { const char *verbose; const option_t options[] = { { "v", &verbose }, }; property_t prop; int parsed; shell_check(sh); g_assert(argv); g_assert(argc > 0); parsed = shell_options_parse(sh, argv, options, G_N_ELEMENTS(options)); if (parsed < 0) return REPLY_ERROR; argv += parsed; /* args[0] is first command argument */ argc -= parsed; /* counts only command arguments now */ if (argc < 1) { shell_set_msg(sh, _("Property missing")); goto error; } prop = gnet_prop_get_by_name(argv[0]); if (prop == NO_PROP) { shell_set_msg(sh, _("Unknown property")); goto error; } if (argc < 2) { shell_set_msg(sh, _("Value missing")); goto error; } if (verbose) { shell_write(sh, "100-Previous value was "); shell_write(sh, gnet_prop_to_string(prop)); shell_write(sh, "\n"); } gnet_prop_set_from_string(prop, argv[1]); if (verbose) { shell_write(sh, "100-New value is "); shell_write(sh, gnet_prop_to_string(prop)); shell_write(sh, "\n"); } shell_set_msg(sh, _("Value found and set")); return REPLY_READY; error: return REPLY_ERROR; }
static void dbg_property_set_row(GtkCList *clist, gint row, property_t prop) { gint i; g_assert(clist); g_assert(row != -1); for (i = 0; i < (gint) num_dbg_cols; i++) { const gchar *text; switch ((enum dbg_cols) i) { case dbg_col_saved: text = gnet_prop_is_saved(prop) ? _("Yes") : _("No"); break; case dbg_col_type: text = gnet_prop_type_to_string(prop); break; case dbg_col_name: text = gnet_prop_name(prop); break; case dbg_col_value: text = gnet_prop_to_string(prop); break; default: g_assert_not_reached(); text = "(null)"; } gtk_clist_set_text(clist, row, i, text); } gtk_clist_set_row_data(clist, row, GUINT_TO_POINTER(prop)); }
static void on_cell_edited(GtkCellRendererText *unused_renderer, const gchar *path_str, const gchar *text, gpointer unused_data) { GtkTreeView *tv; GtkTreeModel *model; GtkTreePath *path; GtkTreeIter iter; property_t prop; guint u; (void) unused_renderer; (void) unused_data; tv = GTK_TREE_VIEW(gui_dlg_prefs_lookup("treeview_dbg_property")); g_return_if_fail(NULL != tv); model = gtk_tree_view_get_model(tv); g_return_if_fail(NULL != model); path = gtk_tree_path_new_from_string(path_str); gtk_tree_model_get_iter(model, &iter, path); u = 0; gtk_tree_model_get(model, &iter, dbg_col_property, &u, (-1)); prop = (property_t) u; gnet_prop_set_from_string(prop, text); gtk_list_store_set(GTK_LIST_STORE(model), &iter, dbg_col_value, gnet_prop_to_string(prop), (-1)); gtk_tree_path_free(path); }
void dbg_property_show_list(const GSList *props) { const GSList *sl; GtkTreeView *tv; GtkListStore *store; tv = GTK_TREE_VIEW(gui_dlg_prefs_lookup("treeview_dbg_property")); if (!gtk_tree_view_get_model(tv)) dbg_tree_init(); store = GTK_LIST_STORE(gtk_tree_view_get_model(tv)); gtk_list_store_clear(store); if (!props) { const gchar *text = _("<no property selected>"); GtkWidget *widget; widget = gui_dlg_prefs_lookup("label_dbg_property_limits"); gtk_label_set_text(GTK_LABEL(widget), text); /* Gtk+ 2.x has editable column cells */ #ifdef USE_GTK1 widget = gui_dlg_prefs_lookup("label_dbg_property_name"); gtk_label_set_text(GTK_LABEL(widget), text); widget = gui_dlg_prefs_lookup("entry_dbg_property_value"); gtk_entry_set_text(GTK_ENTRY(widget), text); widget = gui_dlg_prefs_lookup("entry_dbg_property_default"); gtk_entry_set_text(GTK_ENTRY(widget), text); #endif /* USE_GTK1 */ #ifdef USE_GTK2 widget = gui_dlg_prefs_lookup("label_dbg_property_default"); gtk_label_set_text(GTK_LABEL(widget), text); #endif /* USE_GTK2 */ } for (sl = props; NULL != sl; sl = g_slist_next(sl)) { GtkTreeIter iter; property_t prop; prop = GPOINTER_TO_UINT(sl->data); gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, dbg_col_saved, gnet_prop_is_saved(prop) ? _("Yes") : _("No"), dbg_col_type, gnet_prop_type_to_string(prop), dbg_col_name, gnet_prop_name(prop), dbg_col_value, gnet_prop_to_string(prop), dbg_col_property, (guint) prop, (-1)); } }
static gboolean refresh_property(GtkTreeModel *model, GtkTreePath *unused_path, GtkTreeIter *iter, gpointer unused_data) { property_t prop; guint u; (void) unused_data; (void) unused_path; u = 0; gtk_tree_model_get(model, iter, dbg_col_property, &u, (-1)); prop = (property_t) u; gtk_list_store_set(GTK_LIST_STORE(model), iter, dbg_col_value, gnet_prop_to_string(prop), (-1)); return FALSE; }
static void dbg_property_update_selection(void) { const gchar *tip, *label_text, *def_text, *value_text; GtkCList *clist; GtkLabel *label; GtkEntry *value, *def; gpointer data; gint row; clist = GTK_CLIST(gui_dlg_prefs_lookup("clist_dbg_property")); label = GTK_LABEL(gui_dlg_prefs_lookup("label_dbg_property_name")); value = GTK_ENTRY(gui_dlg_prefs_lookup("entry_dbg_property_value")); def = GTK_ENTRY(gui_dlg_prefs_lookup("entry_dbg_property_default")); if ( clist->selection && -1 != (row = GPOINTER_TO_INT(clist->selection->data)) && NULL != (data = gtk_clist_get_row_data(clist, row)) ) { property_t prop = GPOINTER_TO_UINT(data); label_text = gnet_prop_name(prop); value_text = gnet_prop_to_string(prop); def_text = gnet_prop_default_to_string(prop); tip = gnet_prop_description(prop); } else { const gchar *none = _("<no property selected>"); label_text = none; def_text = none; value_text = none; tip = _("Select a property to see its description."); } gtk_label_set_text(label, label_text); gtk_entry_set_text(def, def_text); gtk_entry_set_text(value, value_text); gtk_tooltips_set_tip(settings_gui_tooltips(), GTK_WIDGET(value), tip, NULL); }