X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fvariable-info-dialog.c;h=3b3367f75c7b6dafe7309ec1e1c31f7efc27cad3;hb=eb57e0a1240f2b528d27e9662b8b4e2310b7bcb7;hp=9cafd9b80e5613b74d4b675881502fbea05cd414;hpb=84fbb877ec23bfab78876cd90aa7a29175495144;p=pspp-builds.git diff --git a/src/ui/gui/variable-info-dialog.c b/src/ui/gui/variable-info-dialog.c index 9cafd9b8..3b3367f7 100644 --- a/src/ui/gui/variable-info-dialog.c +++ b/src/ui/gui/variable-info-dialog.c @@ -28,6 +28,7 @@ #include "helper.h" #include +#include #include "helper.h" @@ -36,28 +37,58 @@ #define N_(msgid) msgid +static const gchar none[] = N_("None"); + + +static gchar * +name_to_string (const struct variable *var, PsppireDict *dict) +{ + const char *name = var_get_name (var); + g_assert (name); + + return recode_string (UTF8, psppire_dict_encoding (dict), + name, -1); +} + + +static gchar * +label_to_string (const struct variable *var, PsppireDict *dict) +{ + const char *label = var_get_label (var); + + if (! label) return g_strdup (none); + + return recode_string (UTF8, psppire_dict_encoding (dict), + label, -1); +} + static void populate_text (PsppireDictView *treeview, gpointer data) { gchar *text = 0; GString *gstring; + PsppireDict *dict; - GtkTextBuffer *textbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(data)); + GtkTextBuffer *textbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (data)); const struct variable *var = psppire_dict_view_get_selected_variable (treeview); if ( var == NULL) return; + g_object_get (treeview, + "dictionary", &dict, + NULL); + gstring = g_string_sized_new (200); - text = name_to_string (var, NULL); + text = name_to_string (var, dict); g_string_assign (gstring, text); g_free (text); g_string_append (gstring, "\n"); - text = label_to_string (var, NULL); + text = label_to_string (var, dict); g_string_append_printf (gstring, _("Label: %s\n"), text); g_free (text); @@ -70,7 +101,7 @@ populate_text (PsppireDictView *treeview, gpointer data) g_string_append_printf (gstring, _("Type: %s\n"), buffer); } - text = missing_values_to_string (var, NULL); + text = missing_values_to_string (dict, var, NULL); g_string_append_printf (gstring, _("Missing Values: %s\n"), text); g_free (text); @@ -92,7 +123,6 @@ populate_text (PsppireDictView *treeview, gpointer data) g_string_append (gstring, "\n"); g_string_append (gstring, _("Value Labels:\n")); -#if 1 for (vl = val_labs_first_sorted (labs, &vli); vl; vl = val_labs_next (labs, &vli)) @@ -100,14 +130,15 @@ populate_text (PsppireDictView *treeview, gpointer data) gchar *const vstr = value_to_text (vl->value, *var_get_print_format (var)); - text = pspp_locale_to_utf8 (vl->label, -1, NULL); + + text = recode_string (UTF8, psppire_dict_encoding (dict), + vl->label, -1); g_string_append_printf (gstring, _("%s %s\n"), vstr, text); g_free (text); g_free (vstr); } -#endif } gtk_text_buffer_set_text (textbuffer, gstring->str, gstring->len); @@ -153,7 +184,7 @@ variable_info_dialog (GObject *o, gpointer data) gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de)); g_object_set (treeview, - "model", vs->dict, + "dictionary", vs->dict, "selection-mode", GTK_SELECTION_SINGLE, NULL);