X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fregression-dialog.c;h=062d69e4546573a39afd45d8756c38ba95a3a2f7;hb=086322fd8c85a303ba6f552950d6f057f2867add;hp=2036fa7c2dbbb8a36117a44de569afff52606f16;hpb=4d688b2e05945b3e3c733a005fb2775110ebb78b;p=pspp-builds.git diff --git a/src/ui/gui/regression-dialog.c b/src/ui/gui/regression-dialog.c index 2036fa7c..062d69e4 100644 --- a/src/ui/gui/regression-dialog.c +++ b/src/ui/gui/regression-dialog.c @@ -1,5 +1,5 @@ /* PSPPIRE - a graphical user interface for PSPP. - Copyright (C) 2008 Free Software Foundation + Copyright (C) 2008, 2010 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 @@ -18,19 +18,19 @@ #include "checkbox-treeview.h" #include "regression-dialog.h" +#include "executor.h" #include -#include #include -#include -#include +#include #include #include #include #include #include -#include +#include + #include "gettext.h" #define _(msgid) gettext (msgid) @@ -93,7 +93,7 @@ refresh (PsppireDialog *dialog, struct regression_dialog *rd) { GtkTreeModel *liststore = gtk_tree_view_get_model (rd->dep_vars); gtk_list_store_clear (GTK_LIST_STORE (liststore)); - + liststore = gtk_tree_view_get_model (rd->indep_vars); gtk_list_store_clear (GTK_LIST_STORE (liststore)); } @@ -157,9 +157,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; @@ -215,38 +215,33 @@ 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)); } /* Pops up the Regression dialog box */ void -regression_dialog (GObject *o, gpointer data) +regression_dialog (PsppireDataWindow *de) { gint response; - struct data_editor *de = data; - struct regression_dialog rd; - GladeXML *xml = XML_NEW ("regression.glade"); - GtkSheet *var_sheet; + GtkBuilder *xml = builder_new ("regression.ui"); 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"); - var_sheet = GTK_SHEET (get_widget_assert (de->xml, "variable_sheet")); + g_object_get (de->data_editor, "var-store", &vs, NULL); - vs = PSPPIRE_VAR_STORE (gtk_sheet_get_model (var_sheet)); put_checkbox_items_in_treeview (GTK_TREE_VIEW(rd.stat_view), B_RG_STATS_DEFAULT, @@ -254,32 +249,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")); @@ -289,8 +268,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); @@ -308,25 +287,10 @@ regression_dialog (GObject *o, gpointer data) switch (response) { case GTK_RESPONSE_OK: - { - gchar *syntax = generate_syntax (&rd); - struct getl_interface *sss = create_syntax_string_source (syntax); - execute_syntax (sss); - - g_free (syntax); - } + g_free (execute_syntax_string (generate_syntax (&rd))); break; 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); - - g_free (syntax); - } + g_free (paste_syntax_to_window (generate_syntax (&rd))); break; default: break;