X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fui%2Fgui%2Fval-labs-dialog.c;h=ff78347c5a5426cf0e686386ead008d1bbb2066f;hb=338fb2a2e84df6427a2fdee6769421f57d5666d8;hp=070a4f50da0aa93db7ea00f294bbce785a025b47;hpb=a19b858e0ac3c69e4a28c0ca6d8674427268a863;p=pspp-builds.git diff --git a/src/ui/gui/val-labs-dialog.c b/src/ui/gui/val-labs-dialog.c index 070a4f50..ff78347c 100644 --- a/src/ui/gui/val-labs-dialog.c +++ b/src/ui/gui/val-labs-dialog.c @@ -22,6 +22,8 @@ /* This module describes the behaviour of the Value Labels dialog box, used for input of the value labels in the variable sheet */ +#include + #include #include "helper.h" @@ -34,11 +36,12 @@ static void on_label_entry_change(GtkEntry *entry, gpointer data) { + union value v; + const gchar *text ; struct val_labs_dialog *dialog = data; g_assert(dialog->labs); - union value v; - const gchar *text = gtk_entry_get_text(GTK_ENTRY(dialog->value_entry)); + text = gtk_entry_get_text(GTK_ENTRY(dialog->value_entry)); text_to_value(text, &v, *psppire_variable_get_write_spec(dialog->pv)); @@ -61,6 +64,8 @@ on_label_entry_change(GtkEntry *entry, gpointer data) static void select_treeview_from_value(GtkTreeView *treeview, union value *val) { + GtkTreePath *path ; + /* We do this with a linear search through the model --- hardly efficient, but the list is short ... */ @@ -73,11 +78,11 @@ select_treeview_from_value(GtkTreeView *treeview, union value *val) success; success = gtk_tree_model_iter_next(model, &iter)) { + union value v; GValue gvalue = {0}; gtk_tree_model_get_value(model, &iter, 1, &gvalue); - union value v; v.f = g_value_get_double(&gvalue); if ( 0 == memcmp(&v, val, sizeof (union value))) @@ -86,7 +91,7 @@ select_treeview_from_value(GtkTreeView *treeview, union value *val) } } - GtkTreePath *path = gtk_tree_model_get_path(model, &iter); + path = gtk_tree_model_get_path(model, &iter); if ( path ) { gtk_tree_view_set_cursor(treeview, path, 0, 0); @@ -101,6 +106,8 @@ select_treeview_from_value(GtkTreeView *treeview, union value *val) static void on_value_entry_change(GtkEntry *entry, gpointer data) { + char *s; + struct val_labs_dialog *dialog = data; const gchar *text = gtk_entry_get_text(GTK_ENTRY(dialog->value_entry)); @@ -116,7 +123,6 @@ on_value_entry_change(GtkEntry *entry, gpointer data) gtk_entry_set_text(GTK_ENTRY(dialog->label_entry),""); - char *s; if ( (s = val_labs_find (dialog->labs, v)) ) { gtk_entry_set_text(GTK_ENTRY(dialog->label_entry), s); @@ -267,6 +273,7 @@ static void on_select_row (GtkTreeView *treeview, gpointer data) { + gchar *labeltext; struct val_labs_dialog *dialog = data; struct val_lab * vl = get_selected_tuple(dialog); @@ -286,8 +293,10 @@ on_select_row (GtkTreeView *treeview, g_signal_handler_block(GTK_ENTRY(dialog->label_entry), dialog->change_handler_id); + labeltext = pspp_locale_to_utf8(vl->label, -1, 0); gtk_entry_set_text(GTK_ENTRY(dialog->label_entry), - vl->label); + labeltext); + g_free(labeltext); g_signal_handler_unblock(GTK_ENTRY(dialog->label_entry), dialog->change_handler_id); @@ -302,6 +311,10 @@ on_select_row (GtkTreeView *treeview, struct val_labs_dialog * val_labs_dialog_create(GladeXML *xml) { + GtkTreeViewColumn *column; + + GtkCellRenderer *renderer ; + struct val_labs_dialog *dialog = g_malloc(sizeof(*dialog)); dialog->window = get_widget_assert(xml,"val_labs_dialog"); @@ -321,9 +334,7 @@ val_labs_dialog_create(GladeXML *xml) gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(dialog->treeview), FALSE); - GtkTreeViewColumn *column; - - GtkCellRenderer *renderer = gtk_cell_renderer_text_new(); + renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes ("Title", renderer, @@ -406,21 +417,25 @@ repopulate_dialog(struct val_labs_dialog *dialog) vl; vl = val_labs_next(dialog->labs, &vli)) { + gchar *const vstr = value_to_text(vl->value, *psppire_variable_get_write_spec(dialog->pv)); + gchar *labeltext = + pspp_locale_to_utf8(vl->label, -1, 0); - gchar *const text = g_strdup_printf("%s = \"%s\"", - vstr, vl->label); - + vstr, labeltext); + + gtk_list_store_append (list_store, &iter); gtk_list_store_set (list_store, &iter, 0, text, 1, vl->value.f, -1); + g_free(labeltext); g_free(text); g_free(vstr); }