X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Frecode-dialog.c;h=2f0c332dbcea47cbbbbe7bc75b2dcc07b3fc2738;hb=fd0c595927a23ea0373551a1eed4570388ea0fc5;hp=e480f3c70de75d05fef3be419a4a4b5819f17ac9;hpb=df83cf8a655317445e3237457658bd827282f970;p=pspp-builds.git diff --git a/src/ui/gui/recode-dialog.c b/src/ui/gui/recode-dialog.c index e480f3c7..2f0c332d 100644 --- a/src/ui/gui/recode-dialog.c +++ b/src/ui/gui/recode-dialog.c @@ -1,5 +1,5 @@ /* PSPPIRE - a graphical user interface for PSPP. - Copyright (C) 2007 Free Software Foundation + Copyright (C) 2007, 2009 Free Software Foundation This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -24,8 +24,13 @@ #include "recode-dialog.h" +#include "executor.h" + +#include "psppire-var-view.h" + #include +#include #include #include #include @@ -33,7 +38,7 @@ #include #include #include -#include + #include #include "psppire-acr.h" @@ -71,7 +76,7 @@ new_value_copy (struct new_value *nv) struct new_value *copy = g_memdup (nv, sizeof (*copy)); if ( nv->type == NV_STRING ) - copy->v.s = strdup (nv->v.s); + copy->v.s = xstrdup (nv->v.s); return copy; } @@ -864,7 +869,7 @@ recode_dialog (PsppireDataWindow *de, gboolean diff) rd.new_name_entry = get_widget_assert (builder, "dest-name-entry"); rd.new_label_entry = get_widget_assert (builder, "dest-label-entry"); - rd.dict = vs->dict; + g_object_get (vs, "dictionary", &rd.dict, NULL); rd.value_map = gtk_list_store_new (2, old_value_get_type (), @@ -884,14 +889,9 @@ recode_dialog (PsppireDataWindow *de, gboolean diff) gtk_window_set_transient_for (GTK_WINDOW (rd.dialog), GTK_WINDOW (de)); + g_object_set (rd.dict_treeview, "model", rd.dict, NULL); - g_object_set (rd.dict_treeview, "dictionary", vs->dict, NULL); - - if ( ! rd.different ) - { - set_dest_model (GTK_TREE_VIEW (rd.variable_treeview), vs->dict); - } - else + if (rd.different) { GtkTreeSelection *sel; GtkTreeViewColumn *col; @@ -902,7 +902,6 @@ recode_dialog (PsppireDataWindow *de, gboolean diff) G_TYPE_STRING); - gtk_tree_view_set_model (GTK_TREE_VIEW (rd.variable_treeview), GTK_TREE_MODEL (rd.var_map)); @@ -912,8 +911,8 @@ recode_dialog (PsppireDataWindow *de, gboolean diff) NULL); gtk_tree_view_column_set_cell_data_func (col, renderer, - cell_var_name, - vs->dict, 0); + XXX_cell_var_name, + rd.dict, 0); gtk_tree_view_append_column (GTK_TREE_VIEW (rd.variable_treeview), col); @@ -946,15 +945,6 @@ recode_dialog (PsppireDataWindow *de, gboolean diff) G_CALLBACK (select_something), &rd); } - - - psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector), - rd.dict_treeview, - rd.variable_treeview, - insert_source_row_into_tree_view, - NULL, - NULL); - psppire_selector_set_allow (PSPPIRE_SELECTOR (selector), homogeneous_types); /* Set up the Old & New Values subdialog */ @@ -1273,7 +1263,6 @@ run_old_and_new_dialog (struct recode_dialog *rd) /* Find the type of the first variable (it's invariant that all variables are of the same type) */ const struct variable *v; - gint idx; GtkTreeIter iter; GtkTreeModel *model = gtk_tree_view_get_model (GTK_TREE_VIEW (rd->variable_treeview)); @@ -1282,9 +1271,7 @@ run_old_and_new_dialog (struct recode_dialog *rd) g_return_if_fail (not_empty); - gtk_tree_model_get (model, &iter, 0, &idx, -1); - - v = psppire_dict_get_variable (rd->dict, idx); + gtk_tree_model_get (model, &iter, 0, &v, -1); rd->input_var_is_string = var_is_alpha (v); @@ -1439,7 +1426,7 @@ generate_syntax (const struct recode_dialog *rd) g_string_append (str, "\nRECODE "); - append_variable_names (str, rd->dict, GTK_TREE_VIEW (rd->variable_treeview), 0); + psppire_var_view_append_names (PSPPIRE_VAR_VIEW (rd->variable_treeview), 0, str); g_string_append (str, "\n\t");