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=af6cbfa0b6043bfab0bb77259ffef3d2f29431e0;hpb=d43a876351d94acce0e8d565ad2cb4d690727fe9;p=pspp-builds.git diff --git a/src/ui/gui/recode-dialog.c b/src/ui/gui/recode-dialog.c index af6cbfa0..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,36 +839,35 @@ set_acr (struct recode_dialog *rd) } static void -recode_dialog (struct data_editor *de, gboolean diff) +recode_dialog (PsppireDataWindow *de, gboolean diff) { gint response; struct recode_dialog rd; - GladeXML *xml = XML_NEW ("recode.glade"); + GtkBuilder *builder = builder_new ("recode.ui"); + GtkWidget *selector = get_widget_assert (builder, "psppire-selector1"); - GtkWidget *selector = get_widget_assert (xml, "psppire-selector1"); + GtkWidget *oldandnew = get_widget_assert (builder, "button1"); - GtkWidget *oldandnew = get_widget_assert (xml, "button1"); - - GtkWidget *output_variable_box = get_widget_assert (xml,"frame4"); + GtkWidget *output_variable_box = get_widget_assert (builder,"frame4"); PsppireVarStore *vs = NULL; g_object_get (de->data_editor, "var-store", &vs, NULL); - rd.change_button = get_widget_assert (xml, "change-button"); + rd.change_button = get_widget_assert (builder, "change-button"); - rd.dialog = get_widget_assert (xml, "recode-dialog"); - rd.dict_treeview = get_widget_assert (xml, "treeview1"); - rd.variable_treeview = get_widget_assert (xml, "treeview2"); - rd.new_name_entry = get_widget_assert (xml, "dest-name-entry"); - rd.new_label_entry = get_widget_assert (xml, "dest-label-entry"); + rd.dialog = get_widget_assert (builder, "recode-dialog"); + rd.dict_treeview = get_widget_assert (builder, "treeview1"); + rd.variable_treeview = get_widget_assert (builder, "treeview2"); + 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 (), @@ -883,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 { @@ -917,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); @@ -963,40 +962,40 @@ recode_dialog (struct data_editor *de, gboolean diff) /* Set up the Old & New Values subdialog */ { - rd.string_button = get_widget_assert (xml, "checkbutton1"); - rd.width_entry = get_widget_assert (xml, "spinbutton1"); + rd.string_button = get_widget_assert (builder, "checkbutton1"); + rd.width_entry = get_widget_assert (builder, "spinbutton1"); - rd.convert_button = get_widget_assert (xml, "checkbutton2"); + rd.convert_button = get_widget_assert (builder, "checkbutton2"); - rd.ov_range_lower_entry = get_widget_assert (xml, "entry5"); - rd.ov_range_upper_entry = get_widget_assert (xml, "entry3"); - rd.ov_low_up_entry = get_widget_assert (xml, "entry6"); - rd.ov_high_down_entry = get_widget_assert (xml, "entry7"); + rd.ov_range_lower_entry = get_widget_assert (builder, "entry5"); + rd.ov_range_upper_entry = get_widget_assert (builder, "entry3"); + rd.ov_low_up_entry = get_widget_assert (builder, "entry6"); + rd.ov_high_down_entry = get_widget_assert (builder, "entry7"); - rd.new_value_entry = get_widget_assert (xml, "entry1"); - rd.ov_value_entry = get_widget_assert (xml, "entry2"); + rd.new_value_entry = get_widget_assert (builder, "entry1"); + rd.ov_value_entry = get_widget_assert (builder, "entry2"); - rd.toggle[BUTTON_NEW_VALUE] = get_widget_assert (xml, "radiobutton1"); - rd.toggle[BUTTON_NEW_SYSMIS] = get_widget_assert (xml, "radiobutton2"); - rd.toggle[BUTTON_NEW_COPY] = get_widget_assert (xml, "radiobutton3"); - rd.toggle[BUTTON_OLD_VALUE] = get_widget_assert (xml, "radiobutton4"); - rd.toggle[BUTTON_OLD_SYSMIS] = get_widget_assert (xml, "radiobutton6"); - rd.toggle[BUTTON_OLD_MISSING]= get_widget_assert (xml, "radiobutton7"); - rd.toggle[BUTTON_OLD_RANGE] = get_widget_assert (xml, "radiobutton8"); - rd.toggle[BUTTON_OLD_LOW_UP] = get_widget_assert (xml, "radiobutton10"); - rd.toggle[BUTTON_OLD_HIGH_DOWN] = get_widget_assert (xml, "radiobutton5"); - rd.toggle[BUTTON_OLD_ELSE] = get_widget_assert (xml, "radiobutton11"); + rd.toggle[BUTTON_NEW_VALUE] = get_widget_assert (builder, "radiobutton1"); + rd.toggle[BUTTON_NEW_SYSMIS] = get_widget_assert (builder, "radiobutton2"); + rd.toggle[BUTTON_NEW_COPY] = get_widget_assert (builder, "radiobutton3"); + rd.toggle[BUTTON_OLD_VALUE] = get_widget_assert (builder, "radiobutton4"); + rd.toggle[BUTTON_OLD_SYSMIS] = get_widget_assert (builder, "radiobutton6"); + rd.toggle[BUTTON_OLD_MISSING]= get_widget_assert (builder, "radiobutton7"); + rd.toggle[BUTTON_OLD_RANGE] = get_widget_assert (builder, "radiobutton8"); + rd.toggle[BUTTON_OLD_LOW_UP] = get_widget_assert (builder, "radiobutton10"); + rd.toggle[BUTTON_OLD_HIGH_DOWN] = get_widget_assert (builder, "radiobutton5"); + rd.toggle[BUTTON_OLD_ELSE] = get_widget_assert (builder, "radiobutton11"); - rd.new_copy_label = get_widget_assert (xml, "label3"); - rd.strings_box = get_widget_assert (xml, "table3"); + rd.new_copy_label = get_widget_assert (builder, "label3"); + rd.strings_box = get_widget_assert (builder, "table3"); rd.old_and_new_dialog = - PSPPIRE_DIALOG (get_widget_assert (xml, "old-new-values-dialog")); + 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 (xml, "psppire-acr1")); + rd.acr = PSPPIRE_ACR (get_widget_assert (builder, "psppire-acr1")); g_signal_connect_swapped (rd.toggle[BUTTON_NEW_VALUE], "toggled", G_CALLBACK (set_acr), &rd); @@ -1047,11 +1046,11 @@ recode_dialog (struct data_editor *de, gboolean diff) g_signal_connect (rd.toggle[BUTTON_OLD_RANGE], "toggled", G_CALLBACK (toggle_sensitivity), - get_widget_assert (xml, "entry3")); + get_widget_assert (builder, "entry3")); g_signal_connect (rd.toggle[BUTTON_OLD_RANGE], "toggled", G_CALLBACK (toggle_sensitivity), - get_widget_assert (xml, "entry5")); + get_widget_assert (builder, "entry5")); g_signal_connect (rd.toggle[BUTTON_OLD_LOW_UP], "toggled", G_CALLBACK (toggle_sensitivity), rd.ov_low_up_entry); @@ -1085,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); @@ -1094,12 +1094,7 @@ recode_dialog (struct data_editor *de, gboolean diff) case PSPPIRE_RESPONSE_PASTE: { gchar *syntax = generate_syntax (&rd); - - GtkWidget *se = psppire_syntax_window_new (); - - gtk_text_buffer_insert_at_cursor (PSPPIRE_SYNTAX_WINDOW (se)->buffer, syntax, -1); - - gtk_widget_show (se); + paste_syntax_in_new_window (syntax); g_free (syntax); } @@ -1112,7 +1107,7 @@ recode_dialog (struct data_editor *de, gboolean diff) gtk_list_store_clear (GTK_LIST_STORE (rd.value_map)); g_object_unref (rd.value_map); - g_object_unref (xml); + g_object_unref (builder); } /* Initialise VAL to reflect the current status of RD */