Reliability dialog: Add checkbox for summary subcommand
[pspp] / src / ui / gui / reliability-dialog.c
index 4db99d978e34d8bffc9a5b7c808eeea4b94d2174..957d9e11ca2da65d6bf439e24a398f7d09518a62 100644 (file)
@@ -24,6 +24,7 @@
 #include "psppire-dialog.h"
 
 #include "psppire-data-window.h"
+#include "psppire-var-view.h"
 
 #include "executor.h"
 #include "helper.h"
@@ -42,6 +43,7 @@ struct reliability
   GtkWidget *variables;
   GtkWidget *split_point_hbox;
   GtkWidget *split_spinbutton;
+  GtkWidget *scale_if_item_deleted_checkbutton;
 };
 
 
@@ -92,6 +94,9 @@ refresh (PsppireDialog *dialog, struct reliability *rd)
 
   gtk_spin_button_set_range (GTK_SPIN_BUTTON (rd->split_spinbutton),
                             0, 0);
+
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (rd->scale_if_item_deleted_checkbutton),
+                               FALSE);
 }
 
 
@@ -109,20 +114,17 @@ dialog_state_valid (gpointer data)
 
 /* Pops up the Reliability dialog box */
 void
-reliability_dialog (GObject *o, gpointer data)
+reliability_dialog (PsppireDataWindow *de)
 {
   struct reliability rd;
   gint response;
 
   GtkBuilder *xml = builder_new ("reliability.ui");
-  PsppireDataWindow *de = PSPPIRE_DATA_WINDOW (data);
   PsppireVarStore *vs;
 
   GtkWidget *dialog = get_widget_assert   (xml, "reliability-dialog");
   GtkWidget *source = get_widget_assert   (xml, "dict-view");
 
-  GtkWidget *selector = get_widget_assert (xml, "psppire-selector1");
-
   rd.split_point_hbox = get_widget_assert (xml, "split-point-hbox");
 
   rd.variables = get_widget_assert   (xml, "treeview2");
@@ -130,6 +132,8 @@ reliability_dialog (GObject *o, gpointer data)
   rd.model_combo = get_widget_assert   (xml, "combobox1");
   rd.split_spinbutton = get_widget_assert (xml, "spinbutton1");
 
+  rd.scale_if_item_deleted_checkbutton = get_widget_assert (xml, "totals-checkbutton");
+
   g_signal_connect_swapped (rd.model_combo, "changed",
                            G_CALLBACK (on_method_change), &rd);
 
@@ -137,18 +141,8 @@ reliability_dialog (GObject *o, gpointer data)
 
   gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de));
 
-  g_object_set (source, "dictionary", vs->dict, NULL);
-
-  rd.dict = vs->dict;
-
-  set_dest_model (GTK_TREE_VIEW (rd.variables), vs->dict);
-
-  psppire_selector_set_subjects (PSPPIRE_SELECTOR (selector),
-                                source,
-                                rd.variables,
-                                insert_source_row_into_tree_view,
-                                NULL,
-                                NULL);
+  g_object_get (vs, "dictionary", &rd.dict, NULL);
+  g_object_set (source, "model", rd.dict, NULL);
 
   {
     GtkTreeModel *tm =
@@ -185,7 +179,7 @@ reliability_dialog (GObject *o, gpointer data)
     case PSPPIRE_RESPONSE_PASTE:
       {
        gchar *syntax = generate_syntax (&rd);
-        paste_syntax_in_new_window (syntax);
+        paste_syntax_to_window (syntax);
 
        g_free (syntax);
       }
@@ -207,7 +201,7 @@ generate_syntax (const struct reliability *rd)
   GString *string = g_string_new ("RELIABILITY");
 
   g_string_append (string, "\n\t/VARIABLES=");
-  append_variable_names (string, rd->dict, GTK_TREE_VIEW (rd->variables), 0);
+  psppire_var_view_append_names (PSPPIRE_VAR_VIEW (rd->variables), 0, string);
 
 
   g_string_append (string, "\n\t/MODEL=");
@@ -219,6 +213,9 @@ generate_syntax (const struct reliability *rd)
                            gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (rd->split_spinbutton))
                            );
 
+  if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rd->scale_if_item_deleted_checkbutton)))
+    g_string_append (string, "\n\t/SUMMARY = TOTAL");
+
   g_string_append (string, ".\n");
 
   text = string->str;