Allow adding new variables in the var sheet
authorJohn Darrington <john@darrington.wattle.id.au>
Fri, 31 Mar 2017 12:41:51 +0000 (14:41 +0200)
committerJohn Darrington <john@darrington.wattle.id.au>
Fri, 31 Mar 2017 12:41:51 +0000 (14:41 +0200)
src/ui/gui/psppire-data-editor.c

index d0afe99fa15e20f6b7df7d273e7e3f4774818a4b..b4a08e66faf1caf60923a3df29fce97659090b09 100644 (file)
@@ -218,10 +218,17 @@ change_var_property (PsppireDict *dict, gint col, gint row, GValue *value)
   /* Return the IDXth variable */
   struct variable *var =  psppire_dict_get_variable (dict, row);
 
+  if (NULL == var)
+    var = psppire_dict_insert_variable (dict, row, NULL);
+
   switch (col)
     {
     case DICT_TVM_COL_NAME:
-      dict_rename_var (dict->dict, var, g_value_get_string (value));
+      {
+       const char *name = g_value_get_string (value);
+       if (psppire_dict_check_name (dict, name, FALSE))
+         dict_rename_var (dict->dict, var, g_value_get_string (value));
+      }
       break;
     case DICT_TVM_COL_LABEL:
       var_set_label (var, g_value_get_string (value));
@@ -768,7 +775,7 @@ set_var_popup_sensitivity (JmdSheet *sheet, gpointer selection, gpointer p)
 
   gboolean whole_row_selected = (range->start_x == 0 &&
                                 range->end_x == width - 1 - 1);
-  /*  PsppireDict has an "extra" column: TVM_COL_VAR   ^^^ */ 
+  /*  PsppireDict has an "extra" column: TVM_COL_VAR   ^^^ */
   gtk_widget_set_sensitive (de->var_clear_variables_menu_item, whole_row_selected);
 }