Select Cases Dialog: minor refactor.
authorJohn Darrington <john@darrington.wattle.id.au>
Wed, 30 Dec 2015 07:38:40 +0000 (08:38 +0100)
committerJohn Darrington <john@darrington.wattle.id.au>
Wed, 30 Dec 2015 07:38:40 +0000 (08:38 +0100)
Encapsulate pointers to widgets in the dialog structure instead of retreiving
them from the GtkBuilder on each usage.

src/ui/gui/select-cases-dialog.c

index e7e8f004abea3de627bd1cac41979062ebf56095..ea906c2299a10e0fd98742388340b63c56b60161 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPPIRE - a graphical user interface for PSPP.
-   Copyright (C) 2007, 2008, 2009, 2010, 2011, 2014 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2008, 2009, 2010, 2011, 2014, 2015 Free Software Foundation, Inc.
 
    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
@@ -45,9 +45,6 @@
 
 struct select_cases_dialog
 {
-  /* The XML that created the dialog */
-  GtkBuilder *xml;
-
   GtkWidget *spinbutton ;
   GtkWidget *spinbutton1 ;
   GtkWidget *spinbutton2 ;
@@ -56,6 +53,22 @@ struct select_cases_dialog
   GtkWidget *hbox2;
 
   PsppireDataStore *data_store;
+  GtkWidget *parent_dialog  ; 
+  GtkWidget *dialog         ; 
+  GtkWidget *percent        ; 
+  GtkWidget *sample_n_cases ; 
+  GtkWidget *table          ;
+  GtkWidget *l0 ;
+  GtkWidget *l1 ;
+  GtkWidget *radiobutton_range ;
+  GtkWidget *first ;
+  GtkWidget *last ;
+  GtkWidget *radiobutton_sample;
+  GtkWidget *radiobutton_all;
+  GtkWidget *entry;
+  GtkWidget *radiobutton_filter;
+  GtkWidget *radiobutton_delete;
+  GtkWidget *range_subdialog;
 };
 
 static gchar * generate_syntax (const struct select_cases_dialog *scd);
@@ -73,32 +86,21 @@ sample_subdialog (GtkButton *b, gpointer data)
 
   gint case_count = psppire_data_store_get_case_count (scd->data_store);
 
-  GtkWidget *parent_dialog = get_widget_assert (scd->xml,
-                                               "select-cases-dialog");
-  GtkWidget *dialog = get_widget_assert (scd->xml,
-                                        "select-cases-random-sample-dialog");
-  GtkWidget *percent = get_widget_assert (scd->xml,
-                                         "radiobutton-sample-percent");
-  GtkWidget *sample_n_cases = get_widget_assert (scd->xml,
-                                                "radiobutton-sample-n-cases");
-  GtkWidget *table = get_widget_assert (scd->xml,
-                                       "select-cases-random-sample-table");
-
   if ( ! scd->hbox1 )
     {
       scd->hbox1 = psppire_scanf_new (gettext (label1), &scd->spinbutton);
 
       gtk_widget_show (scd->hbox1);
 
-      gtk_grid_attach (GTK_GRID (table),
-                                scd->hbox1, 
-       1, 0, 
-       1, 1);
+      gtk_grid_attach (GTK_GRID (scd->table),
+                      scd->hbox1,
+                      1, 0,
+                      1, 1);
 
-      g_signal_connect (percent, "toggled",
+      g_signal_connect (scd->percent, "toggled",
                        G_CALLBACK (set_sensitivity_from_toggle), scd->hbox1);
 
-      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (percent), TRUE);
+      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (scd->percent), TRUE);
     }
 
 
@@ -116,31 +118,31 @@ sample_subdialog (GtkButton *b, gpointer data)
       gtk_widget_show (scd->hbox2);
       gtk_widget_set_sensitive (scd->hbox2, FALSE);
 
-      gtk_grid_attach (GTK_GRID (table),
-                                scd->hbox2, 
-       1, 1, 1, 1);
+      gtk_grid_attach (GTK_GRID (scd->table),
+                      scd->hbox2,
+                      1, 1, 1, 1);
 
-      g_signal_connect (sample_n_cases, "toggled",
+      g_signal_connect (scd->sample_n_cases, "toggled",
                        G_CALLBACK (set_sensitivity_from_toggle), scd->hbox2);
 
-      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sample_n_cases), FALSE);
+      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (scd->sample_n_cases), FALSE);
     }
 
 
-  gtk_window_set_transient_for (GTK_WINDOW (dialog),
-                               GTK_WINDOW (parent_dialog));
+  gtk_window_set_transient_for (GTK_WINDOW (scd->dialog),
+                               GTK_WINDOW (scd->parent_dialog));
 
-  response = psppire_dialog_run (PSPPIRE_DIALOG (dialog));
+  response = psppire_dialog_run (PSPPIRE_DIALOG (scd->dialog));
 
   if ( response != PSPPIRE_RESPONSE_CONTINUE)
     {
       g_signal_handlers_disconnect_by_func
-       (G_OBJECT (percent),
+       (G_OBJECT (scd->percent),
         G_CALLBACK (set_sensitivity_from_toggle),
         scd->hbox1);
 
       g_signal_handlers_disconnect_by_func
-       (G_OBJECT (sample_n_cases),
+       (G_OBJECT (scd->sample_n_cases),
         G_CALLBACK (set_sensitivity_from_toggle),
         scd->hbox2);
 
@@ -151,22 +153,20 @@ sample_subdialog (GtkButton *b, gpointer data)
   else
     {
       gchar *text;
-      GtkWidget *l0 = get_widget_assert (scd->xml, "random-sample-label");
 
-      if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (percent)))
+      if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (scd->percent)))
        {
          text = widget_printf (gettext(label1), scd->spinbutton);
-         gtk_label_set_text (GTK_LABEL (l0), text);
+         gtk_label_set_text (GTK_LABEL (scd->l0), text);
        }
       else
        {
          text =
            widget_printf (gettext(label2), scd->spinbutton1, scd->spinbutton2);
-         gtk_label_set_text (GTK_LABEL (l0), text);
+         gtk_label_set_text (GTK_LABEL (scd->l0), text);
 
        }
       g_free (text);
-
     }
 }
 
@@ -178,36 +178,17 @@ range_subdialog (GtkButton *b, gpointer data)
 
   gint n_cases = psppire_data_store_get_case_count (scd->data_store);
 
-  GtkWidget *parent_dialog = get_widget_assert (scd->xml,
-                                               "select-cases-dialog");
-
-  GtkWidget *dialog = get_widget_assert (scd->xml,
-                                        "select-cases-range-dialog");
-
-  GtkWidget *first = get_widget_assert (scd->xml,
-                                       "range-dialog-first");
-
-  GtkWidget *last = get_widget_assert (scd->xml,
-                                       "range-dialog-last");
+  gtk_spin_button_set_range (GTK_SPIN_BUTTON (scd->last),  1,  n_cases);
+  gtk_spin_button_set_range (GTK_SPIN_BUTTON (scd->first), 1,  n_cases);
 
+  gtk_window_set_transient_for (GTK_WINDOW (scd->range_subdialog),
+                               GTK_WINDOW (scd->parent_dialog));
 
-  gtk_spin_button_set_range (GTK_SPIN_BUTTON (last),  1,  n_cases);
-  gtk_spin_button_set_range (GTK_SPIN_BUTTON (first), 1,  n_cases);
-
-  gtk_window_set_transient_for (GTK_WINDOW (dialog),
-                               GTK_WINDOW (parent_dialog));
-
-
-  response = psppire_dialog_run (PSPPIRE_DIALOG (dialog));
+  response = psppire_dialog_run (PSPPIRE_DIALOG (scd->range_subdialog));
   if ( response == PSPPIRE_RESPONSE_CONTINUE)
     {
-      GtkWidget *first = get_widget_assert (scd->xml, "range-dialog-first");
-      GtkWidget *last = get_widget_assert (scd->xml, "range-dialog-last");
-      GtkWidget *l1 = get_widget_assert (scd->xml, "range-sample-label");
-      gchar *text = widget_printf (_("%d thru %d"), first, last);
-
-      gtk_label_set_text (GTK_LABEL (l1), text);
-
+      gchar *text = widget_printf (_("%d thru %d"), scd->first, scd->last);
+      gtk_label_set_text (GTK_LABEL (scd->l1), text);
       g_free (text);
     }
 }
@@ -225,89 +206,91 @@ select_cases_dialog (PsppireDataWindow *de)
 {
   gint response;
   struct select_cases_dialog scd = {0,0,0,0,0,0};
-  GtkWidget *dialog   ;
   GtkWidget *entry = NULL;
   GtkWidget *selector ;
-  GtkWidget *button_range;
-  GtkWidget *button_sample;
 
-  scd.xml = builder_new ("select-cases.ui");
+  GtkBuilder *xml = builder_new ("select-cases.ui");
 
   g_object_get (de->data_editor, "data-store", &scd.data_store, NULL);
 
-  button_range = get_widget_assert (scd.xml, "button-range");
-  button_sample = get_widget_assert (scd.xml, "button-sample");
-  entry = get_widget_assert (scd.xml, "filter-variable-entry");
-  selector = get_widget_assert (scd.xml, "psppire-selector-filter");
-
+  GtkWidget
+    *button_range = get_widget_assert (xml, "button-range");
+  GtkWidget *
+    button_sample = get_widget_assert (xml, "button-sample");
+  scd.entry = get_widget_assert (xml, "filter-variable-entry");
+  selector = get_widget_assert (xml, "psppire-selector-filter");
+  
+  scd.parent_dialog = get_widget_assert (xml, "select-cases-dialog");
+  scd.dialog = get_widget_assert (xml, "select-cases-random-sample-dialog");
+  scd.percent = get_widget_assert (xml, "radiobutton-sample-percent");
+  scd.sample_n_cases = get_widget_assert (xml, "radiobutton-sample-n-cases");
+  scd.table = get_widget_assert (xml, "select-cases-random-sample-table");
+
+  scd.l0 = get_widget_assert (xml, "random-sample-label");;
+
+  scd.radiobutton_range = get_widget_assert (xml, "radiobutton-range");
+  scd.range_subdialog = get_widget_assert (xml, "select-cases-range-dialog");
+
+  scd.first = get_widget_assert (xml, "range-dialog-first");
+  scd.last = get_widget_assert (xml, "range-dialog-last");
+
+  scd.l1 = get_widget_assert (xml, "range-sample-label");
+  scd.radiobutton_sample =  get_widget_assert (xml, "radiobutton-sample");
+
+  scd.radiobutton_all = get_widget_assert (xml, "radiobutton-all");
+  scd.radiobutton_filter =  get_widget_assert (xml, "radiobutton-filter-variable");
+  scd.radiobutton_delete = get_widget_assert (xml,   "radiobutton-delete");
+  
   {
     GtkWidget *button_if =
-      get_widget_assert (scd.xml, "button-if");
+      get_widget_assert (xml, "button-if");
 
     GtkWidget *radiobutton_if =
-      get_widget_assert (scd.xml, "radiobutton-if");
-
-    GtkWidget *radiobutton_all =
-      get_widget_assert (scd.xml, "radiobutton-all");
-
-    GtkWidget *radiobutton_sample =
-      get_widget_assert (scd.xml, "radiobutton-sample");
-
-    GtkWidget *radiobutton_range =
-      get_widget_assert (scd.xml, "radiobutton-range");
-
-    GtkWidget *radiobutton_filter =
-      get_widget_assert (scd.xml, "radiobutton-filter-variable");
-
-    GtkWidget *range_label =
-      get_widget_assert (scd.xml, "range-sample-label");
+      get_widget_assert (xml, "radiobutton-if");
 
     GtkWidget *sample_label =
-      get_widget_assert (scd.xml, "random-sample-label");
+      get_widget_assert (xml, "random-sample-label");
 
-    g_signal_connect (radiobutton_all, "toggled",
+    g_signal_connect (scd.radiobutton_all, "toggled",
                      G_CALLBACK (set_sensitivity_from_toggle_invert),
-                     get_widget_assert (scd.xml, "filter-delete-button-box")
+                     get_widget_assert (xml, "filter-delete-button-box")
                      );
 
     g_signal_connect (button_if, "clicked",
                      G_CALLBACK (set_radiobutton), radiobutton_if);
 
     g_signal_connect (button_sample, "clicked",
-                     G_CALLBACK (set_radiobutton), radiobutton_sample);
+                     G_CALLBACK (set_radiobutton), scd.radiobutton_sample);
 
     g_signal_connect (button_range,  "clicked",
-                     G_CALLBACK (set_radiobutton), radiobutton_range);
+                     G_CALLBACK (set_radiobutton), scd.radiobutton_range);
 
     g_signal_connect (selector, "clicked",
-                     G_CALLBACK (set_radiobutton), radiobutton_filter);
+                     G_CALLBACK (set_radiobutton), scd.radiobutton_filter);
 
     g_signal_connect (selector, "selected",
-                     G_CALLBACK (set_radiobutton), radiobutton_filter);
+                     G_CALLBACK (set_radiobutton), scd.radiobutton_filter);
 
-    g_signal_connect (radiobutton_range, "toggled",
+    g_signal_connect (scd.radiobutton_range, "toggled",
                      G_CALLBACK (set_sensitivity_from_toggle),
-                     range_label
-                     );
+                     scd.l1);
 
-    g_signal_connect (radiobutton_sample, "toggled",
+    g_signal_connect (scd.radiobutton_sample, "toggled",
                      G_CALLBACK (set_sensitivity_from_toggle),
-                     sample_label
-                     );
+                     sample_label);
 
-    g_signal_connect (radiobutton_filter, "toggled",
+    g_signal_connect (scd.radiobutton_filter, "toggled",
                      G_CALLBACK (set_sensitivity_from_toggle),
-                     entry
-                     );
+                     entry);
   }
 
 
 
-  dialog = get_widget_assert (scd.xml, "select-cases-dialog");
+  GtkWidget *dialog = get_widget_assert (xml, "select-cases-dialog");
   gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de));
 
   {
-    GtkWidget *source = get_widget_assert   (scd.xml, "select-cases-treeview");
+    GtkWidget *source = get_widget_assert   (xml, "select-cases-treeview");
 
     g_object_set (source, "model",
                  scd.data_store->dict,
@@ -315,13 +298,11 @@ select_cases_dialog (PsppireDataWindow *de)
                  GTK_SELECTION_SINGLE, NULL);
 
     psppire_selector_set_filter_func (PSPPIRE_SELECTOR (selector),
-                                  is_currently_in_entry);
+                                     is_currently_in_entry);
   }
 
-
-
   g_signal_connect (button_range,
-                   "clicked", G_CALLBACK (range_subdialog), &scd);
+                   "clicked", G_CALLBACK (range_subdialog), &scd);
 
 
   g_signal_connect (button_sample,
@@ -342,7 +323,7 @@ select_cases_dialog (PsppireDataWindow *de)
       break;
     }
 
-  g_object_unref (scd.xml);
+  g_object_unref (xml);
 }
 
 
@@ -358,43 +339,28 @@ generate_syntax_filter (const struct select_cases_dialog *scd)
   ds_init_empty (&dss);
 
   if (gtk_toggle_button_get_active
-       (GTK_TOGGLE_BUTTON (get_widget_assert (scd->xml,
-                                             "radiobutton-range"))))
+      (GTK_TOGGLE_BUTTON (scd->radiobutton_range)))
     {
-      GtkSpinButton *first =
-       GTK_SPIN_BUTTON (get_widget_assert (scd->xml,
-                                          "range-dialog-first"));
-
-      GtkSpinButton *last =
-       GTK_SPIN_BUTTON (get_widget_assert (scd->xml,
-                                          "range-dialog-last"));
-
       ds_put_c_format (&dss,
-                             "COMPUTE filter_$ = ($CASENUM >= %ld "
-                              "AND $CASENUM <= %ld).\n",
-                             (long) gtk_spin_button_get_value (first),
-                             (long) gtk_spin_button_get_value (last)
-                             );
+                      "COMPUTE filter_$ = ($CASENUM >= %ld "
+                      "AND $CASENUM <= %ld).\n",
+                      (long) gtk_spin_button_get_value (GTK_SPIN_BUTTON (scd->first)),
+                      (long) gtk_spin_button_get_value (GTK_SPIN_BUTTON (scd->last)));
 
       ds_put_cstr (&dss, "EXECUTE.\n");
     }
   else if ( gtk_toggle_button_get_active
-       (GTK_TOGGLE_BUTTON (get_widget_assert (scd->xml,
-                                             "radiobutton-sample"))))
+           (GTK_TOGGLE_BUTTON (scd->radiobutton_sample)))
     {
-      GtkWidget *random_sample =
-       get_widget_assert (scd->xml,
-                          "radiobutton-sample-percent");
-
-      if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (random_sample)))
+      if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (scd->percent)))
        {
          const double percentage =
            gtk_spin_button_get_value (GTK_SPIN_BUTTON (scd->spinbutton));
 
          ds_put_c_format (&dss,
-                                 "COMPUTE %s = RV.UNIFORM (0,1) < %.*g.\n",
-                                 filter,
-                                  DBL_DIG + 1, percentage / 100.0 );
+                          "COMPUTE %s = RV.UNIFORM (0,1) < %.*g.\n",
+                          filter,
+                          DBL_DIG + 1, percentage / 100.0 );
        }
       else
        {
@@ -407,53 +373,50 @@ generate_syntax_filter (const struct select_cases_dialog *scd)
          const gchar ranvar[]="rv_$";
 
          ds_put_c_format (&dss,
-                                 "COMPUTE %s = $CASENUM.\n", key);
+                          "COMPUTE %s = $CASENUM.\n", key);
 
          ds_put_c_format (&dss,
-                                 "COMPUTE %s = %s > %d.\n",
-                                 filter, key, from_n_cases);
+                          "COMPUTE %s = %s > %d.\n",
+                          filter, key, from_n_cases);
 
          ds_put_c_format (&dss,
-                                 "COMPUTE %s = RV.UNIFORM (0, 1).\n",
-                                 ranvar);
+                          "COMPUTE %s = RV.UNIFORM (0, 1).\n",
+                          ranvar);
 
          ds_put_c_format (&dss,
-                                 "SORT BY %s, %s.\n",
-                                 filter, ranvar);
+                          "SORT BY %s, %s.\n",
+                          filter, ranvar);
 
          ds_put_cstr (&dss, "EXECUTE.\n");
                                  
 
          ds_put_c_format (&dss,
-                                 "COMPUTE %s = $CASENUM.\n",
-                                 filter );
+                          "COMPUTE %s = $CASENUM.\n",
+                          filter );
 
          ds_put_c_format (&dss,
-                                 "COMPUTE %s = %s <= %d\n",
-                                 filter,
-                                 filter,
-                                 n_cases );
+                          "COMPUTE %s = %s <= %d\n",
+                          filter,
+                          filter,
+                          n_cases );
 
          ds_put_cstr (&dss, "EXECUTE.\n");
 
 
          ds_put_c_format (&dss,
-                                 "SORT BY %s.\n",
-                                 key);
+                          "SORT BY %s.\n",
+                          key);
 
          ds_put_c_format (&dss,
-                                 "DELETE VARIABLES %s, %s.\n",
-                                 key, ranvar);
+                          "DELETE VARIABLES %s, %s.\n",
+                          key, ranvar);
        }
 
       ds_put_cstr (&dss, "EXECUTE.\n");
     }
   else
     {
-      GtkEntry *entry =
-       GTK_ENTRY (get_widget_assert (scd->xml,
-                                     "filter-variable-entry"));
-      filter = gtk_entry_get_text (entry);
+      filter = gtk_entry_get_text (GTK_ENTRY (scd->entry));
     }
 
   ds_put_c_format (&dss, "FILTER BY %s.\n", filter);
@@ -472,8 +435,7 @@ generate_syntax_delete (const struct select_cases_dialog *scd)
   struct string dss;
 
   if ( gtk_toggle_button_get_active
-       (GTK_TOGGLE_BUTTON (get_widget_assert (scd->xml,
-                                             "radiobutton-all"))))
+       (GTK_TOGGLE_BUTTON (scd->radiobutton_all)))
     {
       return xstrdup ("\n");
     }
@@ -481,65 +443,44 @@ generate_syntax_delete (const struct select_cases_dialog *scd)
   ds_init_empty (&dss);
 
   if ( gtk_toggle_button_get_active
-       (GTK_TOGGLE_BUTTON (get_widget_assert (scd->xml,
-                                             "radiobutton-sample"))))
-  {
-    GtkWidget *random_sample =
-      get_widget_assert (scd->xml,
-                        "radiobutton-sample-percent");
-
-    ds_put_cstr (&dss, "SAMPLE ");
-
-    if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (random_sample)))
-      {
-       const double percentage =
-         gtk_spin_button_get_value (GTK_SPIN_BUTTON (scd->spinbutton));
-       ds_put_c_format (&dss, "%g.", percentage / 100.0);
-      }
-    else
-      {
-       const gint n_cases =
-         gtk_spin_button_get_value (GTK_SPIN_BUTTON (scd->spinbutton1));
-       const gint from_n_cases =
-         gtk_spin_button_get_value (GTK_SPIN_BUTTON (scd->spinbutton2));
-
-       ds_put_c_format (&dss, "%d FROM %d .", n_cases, from_n_cases);
-      }
-
-  }
+       (GTK_TOGGLE_BUTTON (scd->radiobutton_sample)))
+    {
+      ds_put_cstr (&dss, "SAMPLE ");
+      
+      if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (scd->percent)))
+       {
+         const double percentage =
+           gtk_spin_button_get_value (GTK_SPIN_BUTTON (scd->spinbutton));
+         ds_put_c_format (&dss, "%g.", percentage / 100.0);
+       }
+      else
+       {
+         const gint n_cases =
+           gtk_spin_button_get_value (GTK_SPIN_BUTTON (scd->spinbutton1));
+         const gint from_n_cases =
+           gtk_spin_button_get_value (GTK_SPIN_BUTTON (scd->spinbutton2));
+         
+         ds_put_c_format (&dss, "%d FROM %d .", n_cases, from_n_cases);
+       }
+      
+    }
   else if ( gtk_toggle_button_get_active
-           (GTK_TOGGLE_BUTTON (get_widget_assert (scd->xml,
-                                                  "radiobutton-range"))))
+           (GTK_TOGGLE_BUTTON (scd->radiobutton_range)))
     {
-      GtkSpinButton *first =
-       GTK_SPIN_BUTTON (get_widget_assert (scd->xml,
-                                          "range-dialog-first"));
-
-      GtkSpinButton *last =
-       GTK_SPIN_BUTTON (get_widget_assert (scd->xml,
-                                          "range-dialog-last"));
-
       ds_put_c_format (&dss,
-                             "COMPUTE filter_$ = ($CASENUM >= %ld "
-                              "AND $CASENUM <= %ld).\n",
-                             (long) gtk_spin_button_get_value (first),
-                             (long) gtk_spin_button_get_value (last)
-                             );
+                      "COMPUTE filter_$ = ($CASENUM >= %ld "
+                      "AND $CASENUM <= %ld).\n",
+                      (long) gtk_spin_button_get_value (GTK_SPIN_BUTTON (scd->first)),
+                      (long) gtk_spin_button_get_value (GTK_SPIN_BUTTON (scd->last)));
       ds_put_cstr (&dss, "EXECUTE.\n");
       ds_put_c_format (&dss, "SELECT IF filter_$.\n");
 
     }
-  else if ( gtk_toggle_button_get_active
-           (GTK_TOGGLE_BUTTON
-            (get_widget_assert (scd->xml,
-                                "radiobutton-filter-variable"))))
+  else if (gtk_toggle_button_get_active
+           (GTK_TOGGLE_BUTTON (scd->radiobutton_filter)))
     {
-      GtkEntry *entry =
-       GTK_ENTRY (get_widget_assert (scd->xml,
-                                     "filter-variable-entry"));
-
       ds_put_c_format (&dss, "SELECT IF (%s <> 0).",
-                             gtk_entry_get_text (entry));
+                      gtk_entry_get_text (GTK_ENTRY (scd->entry)));
     }
 
 
@@ -557,18 +498,13 @@ static gchar *
 generate_syntax (const struct select_cases_dialog *scd)
 {
   /* In the simple case, all we need to do is cancel any existing filter */
-  if ( gtk_toggle_button_get_active
-       (GTK_TOGGLE_BUTTON (get_widget_assert (scd->xml,
-                                             "radiobutton-all"))))
+  if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (scd->radiobutton_all)))
     {
       return g_strdup ("FILTER OFF.\n");
     }
 
-
   /* Are we filtering or deleting ? */
-  if ( gtk_toggle_button_get_active
-       (GTK_TOGGLE_BUTTON (get_widget_assert (scd->xml,
-                                             "radiobutton-delete"))))
+  if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (scd->radiobutton_delete)))
     {
       return generate_syntax_delete (scd);
     }
@@ -576,8 +512,4 @@ generate_syntax (const struct select_cases_dialog *scd)
     {
       return generate_syntax_filter (scd);
     }
-
 }
-
-
-