Re-enabled automatic insertion of cases in data sheet.
[pspp-builds.git] / src / ui / gui / menu-actions.c
index 98d00f63af619c94c5c73504a024b3dce976ce6b..fb62f8a52cf81774c699a2dfba96e0235144a615 100644 (file)
@@ -262,9 +262,10 @@ on_open1_activate                      (GtkMenuItem     *menuitem,
 
 
 /* Re initialise HANDLE, by interrogating the user for a new file name */
-static void
+static gboolean
 recreate_save_handle(struct file_handle **handle)
 {
+  gint response;
   GtkWidget *dialog;
 
   GtkWidget *data_editor  = get_widget_assert(xml, "data_editor");
@@ -276,16 +277,19 @@ recreate_save_handle(struct file_handle **handle)
                                        GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
                                        NULL);
 
-  if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
+  response = gtk_dialog_run (GTK_DIALOG (dialog));
+
+  if (response == GTK_RESPONSE_ACCEPT)
     {
       char *file_name = gtk_file_chooser_get_filename
        (GTK_FILE_CHOOSER (dialog));
 
-#if 0
+
       if ( *handle ) 
-       destroy_file_handle(*handle, 0);
-#endif
-      *handle = fh_create_file (handle_name, file_name, fh_default_properties());
+       fh_free(*handle);
+
+      *handle = fh_create_file (handle_name, file_name, 
+                       fh_default_properties());
 
       psppire_set_window_title(basename(file_name));
 
@@ -293,6 +297,8 @@ recreate_save_handle(struct file_handle **handle)
     }
 
   gtk_widget_destroy (dialog);
+
+  return ( response == GTK_RESPONSE_ACCEPT ) ;
 }
 
 void
@@ -303,7 +309,10 @@ on_save1_activate                      (GtkMenuItem     *menuitem,
   PsppireDataStore *data_store ;
 
   if ( ! psppire_handle ) 
-    recreate_save_handle(&psppire_handle);
+    {
+      if ( ! recreate_save_handle(&psppire_handle) ) 
+       return;
+    }
   
   data_sheet = GTK_SHEET(get_widget_assert(xml, "data_sheet"));
   data_store = PSPPIRE_DATA_STORE(gtk_sheet_get_model(data_sheet));
@@ -321,7 +330,9 @@ on_save_as1_activate                   (GtkMenuItem     *menuitem,
   GtkSheet *data_sheet ;
   PsppireDataStore *data_store ;
 
-  recreate_save_handle(&psppire_handle);
+  if ( ! recreate_save_handle(&psppire_handle) ) 
+    return ;
+
   if ( ! psppire_handle ) 
     return ;
 
@@ -353,6 +364,8 @@ on_clear_activate                    (GtkMenuItem     *menuitem,
 
   switch (page) 
     {
+    case PAGE_VAR_SHEET:
+           break;
     case PAGE_DATA_SHEET:
       {
        GtkSheet *data_sheet = GTK_SHEET(get_widget_assert(xml, "data_sheet"));
@@ -398,87 +411,6 @@ on_clear_activate                    (GtkMenuItem     *menuitem,
 
 }
 
-void
-on_insert1_activate                    (GtkMenuItem     *menuitem,
-                                        gpointer         user_data)
-{
-  GtkNotebook *notebook = GTK_NOTEBOOK(get_widget_assert(xml, "notebook1"));
-  gint page = -1;
-
-  page = gtk_notebook_get_current_page(notebook);
-
-  switch (page) 
-    {
-    case PAGE_DATA_SHEET:
-#if 0
-      {
-       GtkSheet *data_sheet = GTK_SHEET(get_widget_assert(xml, "data_sheet"));
-       PsppireDataStore *data_store = 
-         PSPPIRE_DATA_STORE(gtk_sheet_get_model(data_sheet));
-
-       psppire_case_array_insert_case(data_store->cases, 
-                                      data_sheet->range.row0, 
-                                      blank_case, the_dictionary);
-      }
-      break;
-#endif
-    case PAGE_VAR_SHEET:
-      {
-       GtkSheet *var_sheet = 
-         GTK_SHEET(get_widget_assert(xml, "variable_sheet"));
-
-       PsppireVarStore *var_store = 
-         PSPPIRE_VAR_STORE(gtk_sheet_get_model(var_sheet));
-
-       psppire_dict_insert_variable(var_store->dict, var_sheet->range.row0, 0);
-      }
-      break;
-    }
-}
-
-#if 0
-void
-on_delete1_activate                    (GtkMenuItem     *menuitem,
-                                        gpointer         user_data)
-{
-  gint page = -1;
-  GtkWidget *notebook = get_widget_assert(xml, "notebook1");
-
-  page = gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook));
-  switch ( page) 
-    {
-#if 0
-    case PAGE_DATA_SHEET:
-      {
-       GtkSheet *data_sheet = GTK_SHEET(get_widget_assert(xml, "data_sheet"));
-       PsppireDataStore *data_store = 
-         PSPPIRE_DATA_STORE(gtk_sheet_get_model(data_sheet));
-
-       psppire_case_array_delete_cases(data_store->cases, 
-                                   data_sheet->range.row0, 
-                                   1 + data_sheet->range.rowi 
-                                   - data_sheet->range.row0  );
-      }
-      break;
-#endif
-    case PAGE_VAR_SHEET:
-      {
-       GtkSheet *var_sheet = 
-         GTK_SHEET(get_widget_assert(xml, "variable_sheet"));
-
-       PsppireVarStore *var_store = 
-         PSPPIRE_VAR_STORE(gtk_sheet_get_model(var_sheet));
-
-       psppire_dict_delete_variables(var_store->dict, 
-                                  var_sheet->range.row0,
-                                  1 + var_sheet->range.rowi 
-                                  - var_sheet->range.row0  );
-      }
-      break;
-    }
-}
-#endif
-
 void
 on_about1_activate(GtkMenuItem     *menuitem,
                   gpointer         user_data)
@@ -758,7 +690,7 @@ insert_case(void)
 
   gtk_sheet_get_active_cell(data_sheet, &row, &col);
 
-  psppire_case_file_insert_case(data_store->case_file, row);
+  psppire_data_store_insert_new_case(data_store, row);
 }
 
 void