From: John Darrington Date: Fri, 31 Mar 2017 12:41:51 +0000 (+0200) Subject: Allow adding new variables in the var sheet X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=042ba98f0f2d34d85fc66e06d31a88c5d82561b8;p=pspp Allow adding new variables in the var sheet --- diff --git a/src/ui/gui/psppire-data-editor.c b/src/ui/gui/psppire-data-editor.c index d0afe99fa1..b4a08e66fa 100644 --- a/src/ui/gui/psppire-data-editor.c +++ b/src/ui/gui/psppire-data-editor.c @@ -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); }