desktop: reversed mimetype to application/x-spss-sps
[pspp] / src / ui / gui / psppire-output-window.c
index bd5047a7bc1430f1d0fb8039ab75396874545385..6e2c42d7229f447f0301fd86752ec6478be21905 100644 (file)
@@ -32,7 +32,6 @@
 #include "output/driver-provider.h"
 #include "output/message-item.h"
 #include "output/output-item.h"
-#include "output/tab.h"
 #include "output/table-item.h"
 #include "output/text-item.h"
 #include "ui/gui/help-menu.h"
@@ -95,7 +94,7 @@ psppire_output_window_dispose (GObject *obj)
 {
   PsppireOutputWindow *window = PSPPIRE_OUTPUT_WINDOW (obj);
 
-  if (window->dispose_has_run) 
+  if (window->dispose_has_run)
     return;
 
   window->dispose_has_run = TRUE;
@@ -113,7 +112,7 @@ psppire_output_window_class_init (PsppireOutputWindowClass *class)
 
   parent_class = g_type_class_peek_parent (class);
   object_class->dispose = psppire_output_window_dispose;
-  
+
   object_class->finalize = psppire_output_window_finalize;
 }
 \f
@@ -251,9 +250,10 @@ struct file_types
   const gchar *ext;
 };
 
-enum 
+enum
   {
     FT_AUTO = 0,
+    FT_SPV,
     FT_PDF,
     FT_HTML,
     FT_ODT,
@@ -268,6 +268,7 @@ enum
 
 struct file_types ft[n_FT] = {
   {N_("Infer file type from extension"),  NULL},
+  {N_("SPSS Viewer (*.spv)"),             ".spv"},
   {N_("PDF (*.pdf)"),                     ".pdf"},
   {N_("HTML (*.html)"),                   ".html"},
   {N_("OpenDocument (*.odt)"),            ".odt"},
@@ -284,7 +285,7 @@ on_combo_change (GtkFileChooser *chooser)
   gboolean sensitive = FALSE;
   GtkWidget *combo = gtk_file_chooser_get_extra_widget (chooser);
 
-  int x = 0; 
+  int x = 0;
   gchar *fn = gtk_file_chooser_get_filename (chooser);
 
   if (combo &&  gtk_widget_get_realized (combo))
@@ -297,12 +298,12 @@ on_combo_change (GtkFileChooser *chooser)
   else
     {
       gint i;
-      if ( x != 0 )
+      if (x != 0)
        sensitive = TRUE;
 
       for (i = 1 ; i < N_EXTENSIONS ; ++i)
        {
-         if ( g_str_has_suffix (fn, ft[i].ext))
+         if (g_str_has_suffix (fn, ft[i].ext))
            {
              sensitive = TRUE;
              break;
@@ -323,11 +324,11 @@ on_file_chooser_change (GObject *w, GParamSpec *pspec, gpointer data)
   GtkFileChooser *chooser = data;
   const gchar *name = g_param_spec_get_name (pspec);
 
-  if ( ! gtk_widget_get_realized (GTK_WIDGET (chooser)))
+  if (! gtk_widget_get_realized (GTK_WIDGET (chooser)))
     return;
 
   /* Ignore this one.  It causes recursion. */
-  if ( 0 == strcmp ("tooltip-text", name))
+  if (0 == strcmp ("tooltip-text", name))
     return;
 
   on_combo_change (chooser);
@@ -339,7 +340,7 @@ on_file_chooser_change (GObject *w, GParamSpec *pspec, gpointer data)
 static void
 iterate_widgets (GtkWidget *w, gpointer data)
 {
-  if ( GTK_IS_CONTAINER (w))
+  if (GTK_IS_CONTAINER (w))
     gtk_container_forall (GTK_CONTAINER (w), iterate_widgets, data);
   else
     g_signal_connect (w, "notify",  G_CALLBACK (on_file_chooser_change), data);
@@ -353,7 +354,7 @@ create_file_type_list (void)
   int i;
   GtkTreeIter iter;
   GtkListStore *list = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING);
-  
+
   for (i = 0 ; i < n_FT ; ++i)
     {
       gtk_list_store_append (list, &iter);
@@ -362,7 +363,7 @@ create_file_type_list (void)
                          1,  ft[i].ext,
                          -1);
     }
-  
+
   return list;
 }
 
@@ -374,7 +375,7 @@ psppire_output_window_export (PsppireOutputWindow *window)
   GtkListStore *list;
 
   GtkFileChooser *chooser;
-  
+
   GtkWidget *dialog = gtk_file_chooser_dialog_new (_("Export Output"),
                                         GTK_WINDOW (window),
                                         GTK_FILE_CHOOSER_ACTION_SAVE,
@@ -394,7 +395,7 @@ psppire_output_window_export (PsppireOutputWindow *window)
   {
     /* Create text cell renderer */
     GtkCellRenderer *cell = gtk_cell_renderer_text_new();
-    gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), cell, FALSE );
+    gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), cell, FALSE);
 
     gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (combo), cell,  "text", 0);
   }
@@ -414,7 +415,7 @@ psppire_output_window_export (PsppireOutputWindow *window)
 
   response = gtk_dialog_run (GTK_DIALOG (dialog));
 
-  if ( response == GTK_RESPONSE_ACCEPT )
+  if (response == GTK_RESPONSE_ACCEPT)
     {
       gint file_type = gtk_combo_box_get_active (GTK_COMBO_BOX (combo));
       gchar *filename = gtk_file_chooser_get_filename (chooser);
@@ -430,7 +431,7 @@ psppire_output_window_export (PsppireOutputWindow *window)
          gint i;
          for (i = 1 ; i < N_EXTENSIONS ; ++i)
            {
-             if ( g_str_has_suffix (filename, ft[i].ext))
+             if (g_str_has_suffix (filename, ft[i].ext))
                {
                  file_type = i;
                  break;
@@ -448,12 +449,15 @@ psppire_output_window_export (PsppireOutputWindow *window)
           filename = g_strconcat (filename, ft[file_type].ext, NULL);
           g_free (of);
         }
-      
+
       string_map_init (&options);
       string_map_insert (&options, "output-file", filename);
 
       switch (file_type)
        {
+        case FT_SPV:
+          export_output (window, &options, "spv");
+          break;
        case FT_PDF:
           export_output (window, &options, "pdf");
          break;
@@ -475,13 +479,7 @@ psppire_output_window_export (PsppireOutputWindow *window)
          /* Fall through */
 
        case FT_ASCII:
-          string_map_insert (&options, "headers", "false");
-          string_map_insert (&options, "paginate", "false");
-          string_map_insert (&options, "squeeze", "true");
-          string_map_insert (&options, "emphasis", "none");
           string_map_insert (&options, "charts", "none");
-          string_map_insert (&options, "top-margin", "0");
-          string_map_insert (&options, "bottom-margin", "0");
           export_output (window, &options, "txt");
          break;
        default:
@@ -505,7 +503,7 @@ psppire_output_window_init (PsppireOutputWindow *window)
   gtk_container_add (GTK_CONTAINER (window), box);
 
   GtkWidget *paned = get_widget_assert (xml, "paned1");
-  
+
   window->dispose_has_run = FALSE;
 
   window->view = psppire_output_view_new (
@@ -527,7 +525,7 @@ psppire_output_window_init (PsppireOutputWindow *window)
 
   gtk_menu_shell_append (GTK_MENU_SHELL (menubar),
                         create_windows_menu (GTK_WINDOW (window)));
-    
+
   gtk_menu_shell_append (GTK_MENU_SHELL (menubar),
                         create_help_menu (GTK_WINDOW (window)));
 
@@ -543,7 +541,7 @@ psppire_output_window_init (PsppireOutputWindow *window)
                                           accels);
   }
 
-  
+
   {
     GSimpleAction *export = g_simple_action_new ("export", NULL);
     g_signal_connect_swapped (export, "activate", G_CALLBACK (psppire_output_window_export), window);
@@ -565,7 +563,7 @@ psppire_output_window_init (PsppireOutputWindow *window)
                                           accels);
   }
 
-  
+
   g_object_unref (xml);
 
   g_signal_connect (window, "delete-event",