X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Frecode-dialog.c;h=314367462e6f403d691f2c9896972086b610075f;hb=62215e63f11b18112899541b29b3151e25f7eb6e;hp=b233f116d88e14092682e875e5722f8aaa74a115;hpb=0bd0098aec2ee31d9460c8d4c1263d0b5ccc4324;p=pspp-builds.git diff --git a/src/ui/gui/recode-dialog.c b/src/ui/gui/recode-dialog.c index b233f116..31436746 100644 --- a/src/ui/gui/recode-dialog.c +++ b/src/ui/gui/recode-dialog.c @@ -25,7 +25,6 @@ #include "recode-dialog.h" #include -#include #include #include @@ -35,7 +34,7 @@ #include #include #include -#include +#include #include "psppire-acr.h" @@ -326,7 +325,6 @@ struct recode_dialog GtkWidget *ov_high_down_entry; GtkListStore *value_map; - GtkListStore *local_store; /* Indicates that the INTO {new variables} form of the dialog is being used */ @@ -375,7 +373,7 @@ enum { COL_OLD, COL_NEW_NAME, COL_NEW_LABEL, - n_COLS + n_COL_VARS }; enum { @@ -854,11 +852,10 @@ recode_dialog (struct data_editor *de, gboolean diff) GtkWidget *output_variable_box = get_widget_assert (xml,"frame4"); - GtkSheet *var_sheet = - GTK_SHEET (get_widget_assert (de->xml, "variable_sheet")); + PsppireVarStore *vs = NULL; - PsppireVarStore *vs = PSPPIRE_VAR_STORE (gtk_sheet_get_model (var_sheet)); + g_object_get (de->data_editor, "var-store", &vs, NULL); rd.change_button = get_widget_assert (xml, "change-button"); @@ -904,7 +901,7 @@ recode_dialog (struct data_editor *de, gboolean diff) GtkTreeViewColumn *col; GtkCellRenderer *renderer = gtk_cell_renderer_text_new (); - rd.var_map = gtk_list_store_new (n_COLS, G_TYPE_INT, + rd.var_map = gtk_list_store_new (n_COL_VARS, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING); @@ -1110,6 +1107,10 @@ recode_dialog (struct data_editor *de, gboolean diff) break; } + + gtk_list_store_clear (GTK_LIST_STORE (rd.value_map)); + g_object_unref (rd.value_map); + g_object_unref (xml); } @@ -1263,11 +1264,9 @@ static void run_old_and_new_dialog (struct recode_dialog *rd) { gint response; - rd->local_store = clone_list_store (rd->value_map); - - g_object_ref (rd->local_store); + GtkListStore *local_store = clone_list_store (rd->value_map); - psppire_acr_set_model (rd->acr, rd->local_store); + psppire_acr_set_model (rd->acr, local_store); psppire_acr_set_get_value_func (rd->acr, set_value, rd); gtk_window_set_title (GTK_WINDOW (rd->old_and_new_dialog), @@ -1316,7 +1315,12 @@ run_old_and_new_dialog (struct recode_dialog *rd) if ( response == PSPPIRE_RESPONSE_CONTINUE ) - rd->value_map = clone_list_store (rd->local_store); + { + g_object_unref (rd->value_map); + rd->value_map = clone_list_store (local_store); + } + else + g_object_unref (local_store); psppire_dialog_notify_change (PSPPIRE_DIALOG (rd->dialog)); @@ -1334,9 +1338,8 @@ new_value_append_syntax (GString *str, const struct new_value *nv) break; case NV_STRING: { - struct string ds; - ds_init_cstr (&ds, nv->v.s); - gen_quoted_string (&ds); + struct string ds = DS_EMPTY_INITIALIZER; + syntax_gen_string (&ds, ss_cstr (nv->v.s)); g_string_append (str, ds_cstr (&ds)); ds_destroy (&ds); } @@ -1367,9 +1370,8 @@ old_value_append_syntax (GString *str, const struct old_value *ov) break; case OV_STRING: { - struct string ds; - ds_init_cstr (&ds, ov->v.s); - gen_quoted_string (&ds); + struct string ds = DS_EMPTY_INITIALIZER; + syntax_gen_string (&ds, ss_cstr (ov->v.s)); g_string_append (str, ds_cstr (&ds)); ds_destroy (&ds); } @@ -1533,9 +1535,9 @@ generate_syntax (const struct recode_dialog *rd) continue; } - ds_init_cstr (&ls, label); + ds_init_empty (&ls); + syntax_gen_string (&ls, ss_cstr (label)); g_free (label); - gen_quoted_string (&ls); g_string_append_printf (str, "\nVARIABLE LABELS %s %s.", name, ds_cstr (&ls));