Rename psppire_dialog_action_get_pointer -> psppire_dialog_action_get_hash_table
[pspp] / src / ui / gui / aggregate-dialog.c
index 5d477d30c554c172b9e8a1493810962bbd164316..65addea3e20cef3101465cfdfa8bb182bf299363 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPPIRE - a graphical user interface for PSPP.
-   Copyright (C) 2010, 2011, 2012  Free Software Foundation
+   Copyright (C) 2010, 2011, 2012, 2013, 2014  Free Software Foundation
 
    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
@@ -18,6 +18,7 @@
 
 #include "dialog-common.h"
 
+#include <float.h>
 #include <gl/c-xvasprintf.h>
 #include <language/stats/aggregate.h>
 
@@ -152,11 +153,12 @@ choose_filename (struct aggregate *fd)
   GtkFileFilter *filter;
 
   GtkWidget *dialog = gtk_file_chooser_dialog_new (_("Aggregate destination file"),
-                                                          GTK_WINDOW (fd->de),
-                                                          GTK_FILE_CHOOSER_ACTION_SAVE,
-                                                          GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-                                                          GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
-                                                          NULL);
+                                                  GTK_WINDOW (fd->de),
+                                                  GTK_FILE_CHOOSER_ACTION_SAVE,
+                                                  _("Cancel"), GTK_RESPONSE_CANCEL,
+                                                  _("Save"), GTK_RESPONSE_ACCEPT,
+                                                  NULL);
+  
   g_object_set (dialog, "local-only", FALSE, NULL);
 
   gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE);
@@ -167,6 +169,11 @@ choose_filename (struct aggregate *fd)
   gtk_file_filter_add_mime_type (filter, "application/x-spss-sav");
   gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
 
+  filter = gtk_file_filter_new ();
+  gtk_file_filter_set_name (filter, _("Compressed System Files (*.zsav)"));
+  gtk_file_filter_add_pattern (filter, "*.zsav");
+  gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
+
   filter = gtk_file_filter_new ();
   gtk_file_filter_set_name (filter, _("Portable Files (*.por) "));
   gtk_file_filter_add_mime_type (filter, "application/x-spss-por");
@@ -427,11 +434,11 @@ on_acr_change (const struct aggregate *agg, GtkTreeView *tv)
   gtk_entry_set_text (GTK_ENTRY (agg->summary_var_label_entry), label);
   gtk_entry_set_text (GTK_ENTRY (agg->summary_sv_entry), srcvar);
   
-  text = c_xasprintf ("%g", arg1);
+  text = c_xasprintf ("%.*g", DBL_DIG + 1, arg1);
   gtk_entry_set_text (GTK_ENTRY (agg->summary_arg1_entry), text);
   g_free (text);
 
-  text = c_xasprintf ("%g", arg2);
+  text = c_xasprintf ("%.*g", DBL_DIG + 1, arg2);
   gtk_entry_set_text (GTK_ENTRY (agg->summary_arg2_entry), text);
   g_free (text);
 
@@ -439,20 +446,6 @@ on_acr_change (const struct aggregate *agg, GtkTreeView *tv)
 }
 
 
-/* Set the pane to 50% of its maximum size */
-static void
-set_initial_pos (GtkPaned *pane)
-{
-  int max_pos;
-  g_object_get (pane, 
-               "max-position", &max_pos,
-               NULL);
-
-  gtk_paned_set_position (pane, max_pos);
-}
-
-
-
 /* Pops up the Aggregate dialog box */
 void
 aggregate_dialog (PsppireDataWindow *dw)
@@ -545,7 +538,6 @@ aggregate_dialog (PsppireDataWindow *dw)
   g_signal_connect_swapped (fd.summary_arg2_entry, "changed", G_CALLBACK (update_acr),  &fd);  
 
 
-  g_signal_connect (fd.pane, "realize", G_CALLBACK (set_initial_pos),  &fd);  
 
 
   g_signal_connect_swapped (fd.function_combo, "changed",
@@ -676,10 +668,10 @@ append_summary_spec (const struct aggregate *agg, GtkTreeIter *iter, GString *st
       ds_put_cstr (&dss, srcvar);
 
       if ( arity > 0)
-       ds_put_c_format (&dss, ", %g", arg1);
+       ds_put_c_format (&dss, ", %.*g", DBL_DIG + 1, arg1);
 
       if ( arity > 1)
-       ds_put_c_format (&dss, ", %g", arg2);
+       ds_put_c_format (&dss, ", %.*g", DBL_DIG + 1, arg2);
 
       ds_put_cstr (&dss, ")");