X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fregression-dialog.c;h=53010c3ffdc47d342afb5adfc0e2cf025a349103;hb=cded1cb84dcf229aa26fa474e52e69109557d83a;hp=3e0e0fbc1d226d5815a57b6ea1d6845757661020;hpb=a992bf1121d3e1eef76fd6184b95fe079bb91558;p=pspp-builds.git diff --git a/src/ui/gui/regression-dialog.c b/src/ui/gui/regression-dialog.c index 3e0e0fbc..53010c3f 100644 --- a/src/ui/gui/regression-dialog.c +++ b/src/ui/gui/regression-dialog.c @@ -18,18 +18,20 @@ #include "checkbox-treeview.h" #include "regression-dialog.h" +#include "executor.h" #include #include #include -#include +#include #include #include #include #include #include -#include +#include + #include "gettext.h" #define _(msgid) gettext (msgid) @@ -156,9 +158,9 @@ generate_syntax (const struct regression_dialog *rd) GString *string = g_string_new ("REGRESSION"); g_string_append (string, "\n\t/VARIABLES="); - append_variable_names (string, rd->dict, GTK_TREE_VIEW (rd->indep_vars), 0); + psppire_var_view_append_names (PSPPIRE_VAR_VIEW (rd->indep_vars), 0, string); g_string_append (string, "\n\t/DEPENDENT=\t"); - append_variable_names (string, rd->dict, GTK_TREE_VIEW (rd->dep_vars), 0); + psppire_var_view_append_names (PSPPIRE_VAR_VIEW (rd->dep_vars), 0, string); selected = 0; for (i = 0, ok = gtk_tree_model_get_iter_first (rd->stat, &iter); ok; @@ -214,7 +216,7 @@ dialog_state_valid (gpointer data) GtkTreeIter notused; - return (gtk_tree_model_get_iter_first (dep_vars, ¬used) + return (gtk_tree_model_get_iter_first (dep_vars, ¬used) && gtk_tree_model_get_iter_first (indep_vars, ¬used)); } @@ -223,22 +225,20 @@ void regression_dialog (GObject *o, gpointer data) { gint response; - struct data_editor *de = data; - struct regression_dialog rd; GtkBuilder *xml = builder_new ("regression.ui"); + PsppireDataWindow *de = PSPPIRE_DATA_WINDOW (data); PsppireVarStore *vs; GtkWidget *dialog = get_widget_assert (xml, "regression-dialog"); GtkWidget *source = get_widget_assert (xml, "dict-view"); GtkWidget *dest_dep = get_widget_assert (xml, "dep-view"); GtkWidget *dest_indep = get_widget_assert (xml, "indep-view"); - GtkWidget *dep_selector = get_widget_assert (xml, "dep-selector"); - GtkWidget *indep_selector = get_widget_assert (xml, "indep-selector"); GtkWidget *stat_button = get_widget_assert (xml, "stat-button"); GtkWidget *save_button = get_widget_assert (xml, "save-button"); + GtkWidget *dep_selector = get_widget_assert (xml, "dep-selector"); rd.stat_view = get_widget_assert (xml, "stat-view"); @@ -251,32 +251,16 @@ regression_dialog (GObject *o, gpointer data) stats ); - gtk_window_set_transient_for (GTK_WINDOW (dialog), de->parent.window); - - attach_dictionary_to_treeview (GTK_TREE_VIEW (source), - vs->dict, - GTK_SELECTION_MULTIPLE, NULL); - - set_dest_model (GTK_TREE_VIEW (dest_dep), vs->dict); - set_dest_model (GTK_TREE_VIEW (dest_indep), vs->dict); + gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de)); - psppire_selector_set_subjects (PSPPIRE_SELECTOR (dep_selector), - source, - dest_dep, - insert_source_row_into_tree_view, - NULL, - NULL); - - psppire_selector_set_subjects (PSPPIRE_SELECTOR (indep_selector), - source, - dest_indep, - insert_source_row_into_tree_view, - NULL, - NULL); + g_object_get (vs, "dictionary", &rd.dict, NULL); + g_object_set (source, "model", rd.dict, NULL); rd.dep_vars = GTK_TREE_VIEW (dest_dep); rd.indep_vars = GTK_TREE_VIEW (dest_indep); - rd.dict = vs->dict; + + psppire_selector_set_allow (PSPPIRE_SELECTOR (dep_selector), numeric_only); + rd.save_dialog = get_widget_assert (xml, "save-dialog"); rd.pred_button = GTK_TOGGLE_BUTTON (get_widget_assert (xml, "pred-button")); rd.resid_button = GTK_TOGGLE_BUTTON (get_widget_assert (xml, "resid-button")); @@ -286,8 +270,8 @@ regression_dialog (GObject *o, gpointer data) rd.current_opts.pred = FALSE; rd.current_opts.resid = FALSE; - gtk_window_set_transient_for (GTK_WINDOW (rd.save_dialog), de->parent.window); - gtk_window_set_transient_for (GTK_WINDOW (rd.stat_dialog), de->parent.window); + gtk_window_set_transient_for (GTK_WINDOW (rd.save_dialog), GTK_WINDOW (de)); + gtk_window_set_transient_for (GTK_WINDOW (rd.stat_dialog), GTK_WINDOW (de)); g_signal_connect (dialog, "refresh", G_CALLBACK (refresh), &rd); @@ -307,6 +291,7 @@ regression_dialog (GObject *o, gpointer data) case GTK_RESPONSE_OK: { gchar *syntax = generate_syntax (&rd); + struct getl_interface *sss = create_syntax_string_source (syntax); execute_syntax (sss); @@ -316,11 +301,7 @@ regression_dialog (GObject *o, gpointer data) 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); }