X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Frecode-dialog.c;h=0bb82eb335a9a6d3c75a13f6c1cf34e47863c8a3;hb=66153a44d861ccddf6a176ec5a94ffb959232ad6;hp=9d1ad79d6efcc4e29ef87e27bcc24b2d1be0d225;hpb=a992bf1121d3e1eef76fd6184b95fe079bb91558;p=pspp-builds.git diff --git a/src/ui/gui/recode-dialog.c b/src/ui/gui/recode-dialog.c index 9d1ad79d..0bb82eb3 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,16 +24,19 @@ #include "recode-dialog.h" +#include "executor.h" + #include +#include #include -#include +#include #include #include #include #include #include -#include + #include #include "psppire-acr.h" @@ -71,7 +74,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; } @@ -470,14 +473,14 @@ toggle_sensitivity (GtkToggleButton *button, GtkWidget *target) gtk_widget_set_sensitive (target, state); } -static void recode_dialog (struct data_editor *de, gboolean diff); +static void recode_dialog (PsppireDataWindow *de, gboolean diff); /* Pops up the Recode Same version of the dialog box */ void recode_same_dialog (GObject *o, gpointer data) { - struct data_editor *de = data; + PsppireDataWindow *de = PSPPIRE_DATA_WINDOW (data); recode_dialog (de, FALSE); } @@ -486,7 +489,7 @@ recode_same_dialog (GObject *o, gpointer data) void recode_different_dialog (GObject *o, gpointer data) { - struct data_editor *de = data; + PsppireDataWindow *de = PSPPIRE_DATA_WINDOW (data); recode_dialog (de, TRUE); } @@ -836,7 +839,7 @@ set_acr (struct recode_dialog *rd) } static void -recode_dialog (struct data_editor *de, gboolean diff) +recode_dialog (PsppireDataWindow *de, gboolean diff) { gint response; @@ -864,7 +867,7 @@ recode_dialog (struct data_editor *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 (), @@ -882,17 +885,14 @@ recode_dialog (struct data_editor *de, gboolean diff) rd.different = diff; - gtk_window_set_transient_for (GTK_WINDOW (rd.dialog), de->parent.window); - + gtk_window_set_transient_for (GTK_WINDOW (rd.dialog), GTK_WINDOW (de)); - attach_dictionary_to_treeview (GTK_TREE_VIEW (rd.dict_treeview), - vs->dict, - GTK_SELECTION_MULTIPLE, NULL); + g_object_set (rd.dict_treeview, "dictionary", rd.dict, NULL); if ( ! rd.different ) { - set_dest_model (GTK_TREE_VIEW (rd.variable_treeview), vs->dict); + set_dest_model (GTK_TREE_VIEW (rd.variable_treeview), rd.dict); } else { @@ -916,7 +916,7 @@ recode_dialog (struct data_editor *de, gboolean diff) gtk_tree_view_column_set_cell_data_func (col, renderer, cell_var_name, - vs->dict, 0); + rd.dict, 0); gtk_tree_view_append_column (GTK_TREE_VIEW (rd.variable_treeview), col); @@ -993,7 +993,7 @@ recode_dialog (struct data_editor *de, gboolean diff) PSPPIRE_DIALOG (get_widget_assert (builder, "old-new-values-dialog")); gtk_window_set_transient_for (GTK_WINDOW (rd.old_and_new_dialog), - de->parent.window); + GTK_WINDOW (de)); rd.acr = PSPPIRE_ACR (get_widget_assert (builder, "psppire-acr1")); @@ -1084,6 +1084,7 @@ recode_dialog (struct data_editor *de, gboolean diff) case GTK_RESPONSE_OK: { gchar *syntax = generate_syntax (&rd); + struct getl_interface *sss = create_syntax_string_source (syntax); execute_syntax (sss); @@ -1093,11 +1094,7 @@ recode_dialog (struct data_editor *de, gboolean diff) case PSPPIRE_RESPONSE_PASTE: { gchar *syntax = generate_syntax (&rd); - - struct syntax_editor *se = - (struct syntax_editor *) window_create (WINDOW_SYNTAX, NULL); - - gtk_text_buffer_insert_at_cursor (se->buffer, syntax, -1); + paste_syntax_in_new_window (syntax); g_free (syntax); }