psppire_data_window: Don't crash when trying to delete cases when none are selected
[pspp] / src / ui / gui / psppire-val-chooser.c
index fd617d9ced949813e3d098b17f658d5c589b6436..0dbb3c0b4d9c0f28149a20d560401c94c726663f 100644 (file)
@@ -83,7 +83,7 @@ enum
 };
 
 
-enum 
+enum
   {
     VC_VALUE,
     VC_SYSMIS,
@@ -116,7 +116,7 @@ psppire_val_chooser_set_property (GObject         *object,
       gtk_widget_set_sensitive (GTK_WIDGET (vr->rw[VC_SYSMIS].rb), !vr->input_var_is_string);
       gtk_widget_set_sensitive (GTK_WIDGET (vr->rw[VC_MISSING].rb), !vr->input_var_is_string);
       gtk_widget_set_sensitive (GTK_WIDGET (vr->rw[VC_RANGE].rb), !vr->input_var_is_string);
-      gtk_widget_set_sensitive (GTK_WIDGET (vr->rw[VC_LOW_UP].rb), !vr->input_var_is_string);      
+      gtk_widget_set_sensitive (GTK_WIDGET (vr->rw[VC_LOW_UP].rb), !vr->input_var_is_string);
       gtk_widget_set_sensitive (GTK_WIDGET (vr->rw[VC_HIGH_DOWN].rb), !vr->input_var_is_string);
       break;
     default:
@@ -252,7 +252,7 @@ static void simple_set (PsppireValChooser *vr, struct old_value *ov, const struc
 static void lo_up_set (PsppireValChooser *vr, struct old_value *ov, const struct range_widgets  *rw)
 {
   const gchar *text = gtk_entry_get_text (rw->e1);
-  
+
   ov->type = OV_LOW_UP;
   ov->v.range[1] = g_strtod (text, 0);
 }
@@ -261,7 +261,7 @@ static void lo_up_set (PsppireValChooser *vr, struct old_value *ov, const struct
 static void hi_down_set (PsppireValChooser *vr, struct old_value *ov, const struct range_widgets *rw)
 {
   const gchar *text = gtk_entry_get_text (rw->e1);
-  
+
   ov->type = OV_HIGH_DOWN;
   ov->v.range[0] = g_strtod (text, 0);
 }
@@ -289,7 +289,7 @@ static void range_set (PsppireValChooser *vr, struct old_value *ov, const struct
 
   ov->type = OV_RANGE;
   ov->v.range[0] = g_strtod (text, 0);
-  
+
   text = gtk_entry_get_text (rw->e2);
   ov->v.range[1] = g_strtod (text, 0);
 }
@@ -304,7 +304,11 @@ static GtkWidget * range_entry (struct layout *l, struct range_widgets *rw)
   rw->e1 = GTK_ENTRY (entrylo);
   rw->e2 = GTK_ENTRY (entryhi);
 
-  gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
+  g_object_set (G_OBJECT (label),
+               "valign", GTK_ALIGN_CENTER,
+               "halign", GTK_ALIGN_START,
+               NULL);
+
 
   g_signal_connect (vbox, "notify::sensitive", G_CALLBACK (focus_follows_sensitivity), entrylo);
 
@@ -325,7 +329,7 @@ static GtkWidget * simple_entry (struct layout *l, struct range_widgets *rw)
 }
 
 
-static struct layout range_opt[n_VAL_CHOOSER_BUTTONS]= 
+static struct layout range_opt[n_VAL_CHOOSER_BUTTONS]=
   {
     {N_("_Value:"),                    simple_entry, simple_set },
     {N_("_System Missing"),            NULL,         sysmis_set },
@@ -340,12 +344,14 @@ static void
 psppire_val_chooser_init (PsppireValChooser *vr)
 {
   gint i;
-  GtkWidget *aln = gtk_alignment_new (0.5, 0.5, 1.0, 1.0);
   GtkWidget *grid = gtk_grid_new ();
   GSList *group = NULL;
   gint row = 0;
 
-  gtk_alignment_set_padding (GTK_ALIGNMENT (aln), 0, 0, 5, 5);
+  g_object_set (G_OBJECT (grid),
+               "margin-start", 5,
+               "margin-end", 5,
+               NULL);
 
   vr->input_var_is_string = FALSE;
 
@@ -357,7 +363,10 @@ psppire_val_chooser_init (PsppireValChooser *vr)
       vr->rw[i].rb = GTK_TOGGLE_BUTTON (gtk_radio_button_new (group));
       gtk_label_set_mnemonic_widget (vr->rw[i].label, GTK_WIDGET (vr->rw[i].rb));
 
-      gtk_misc_set_alignment (GTK_MISC (vr->rw[i].label), 0, 0.5);
+      g_object_set (G_OBJECT (vr->rw[i].label),
+                   "valign", GTK_ALIGN_CENTER,
+                   "halign", GTK_ALIGN_START,
+                   NULL);
 
       group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (vr->rw[i].rb));
 
@@ -366,14 +375,14 @@ psppire_val_chooser_init (PsppireValChooser *vr)
                       0, row, 1, 1);
 
       gtk_widget_set_hexpand (GTK_WIDGET (vr->rw[i].rb), FALSE);
-      
+
       /* Attach the labels */
       gtk_grid_attach (GTK_GRID (grid), GTK_WIDGET (vr->rw[i].label),
                        1, row, 1, 1);
 
       gtk_widget_set_hexpand (GTK_WIDGET (vr->rw[i].label), TRUE);
 
-      
+
       ++row;
 
       if (l->fill)
@@ -385,7 +394,7 @@ psppire_val_chooser_init (PsppireValChooser *vr)
          gtk_grid_attach (GTK_GRID (grid), fill, 1, row, 1, 1);
 
          gtk_widget_set_hexpand (fill, TRUE);
-         
+
          ++row;
 
          g_signal_connect (vr->rw[i].rb, "toggled", G_CALLBACK (set_sensitivity_from_toggle), fill);
@@ -394,10 +403,9 @@ psppire_val_chooser_init (PsppireValChooser *vr)
 
   gtk_frame_set_shadow_type (GTK_FRAME (vr), GTK_SHADOW_ETCHED_IN);
 
-  gtk_container_add (GTK_CONTAINER (aln), grid);
-  gtk_container_add (GTK_CONTAINER (vr), aln);
+  gtk_container_add (GTK_CONTAINER (vr), grid);
 
-  gtk_widget_show_all (aln);
+  gtk_widget_show_all (grid);
 }
 
 
@@ -604,11 +612,10 @@ psppire_val_chooser_get_status (PsppireValChooser *vr, struct old_value *ov)
     {
       if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (vr->rw[i].rb)))
        {
+         range_opt[i].set (vr, ov, &vr->rw[i]);
          break;
        }
     }
-
-  range_opt[i].set (vr, ov, &vr->rw[i]);
 }
 
 /* This might need to be changed to something less naive.
@@ -644,14 +651,14 @@ psppire_val_chooser_set_status (PsppireValChooser *vr, const struct old_value *o
       gtk_toggle_button_set_active (vr->rw[0].rb, TRUE);
       gtk_entry_set_text (vr->rw[0].e1, ov->v.s);
       break;
-      
+
     case OV_NUMERIC:
       {
        gchar *str;
        gtk_toggle_button_set_active (vr->rw[0].rb, TRUE);
-       
+
        str = num_to_string (ov->v.v);
-       
+
        gtk_entry_set_text (vr->rw[0].e1, str);
        g_free (str);
       }