Merge 'master' into 'gtk3'. 20131117032733/pspp 20131118033210/pspp 20131120033238/pspp 20131121033245/pspp 20131124032805/pspp 20131125033107/pspp 20131126032949/pspp 20131129032626/pspp 20131130032638/pspp 20131201033258/pspp 20131202032723/pspp 20131203033047/pspp 20131204033053/pspp 20131205033051/pspp 20131206033106/pspp 20131207033054/pspp 20131208033052/pspp 20131209033050/pspp 20131210033032/pspp 20131211033052/pspp 20131212033030/pspp 20131213033045/pspp 20131214033038/pspp 20131215033145/pspp 20131216033103/pspp 20131217033055/pspp 20131218033302/pspp 20131219033048/pspp 20131220033048/pspp 20131221033043/pspp 20131222033022/pspp 20131223033400/pspp 20131224033012/pspp 20131225033026/pspp 20131226033052/pspp 20131227033029/pspp 20131228033103/pspp 20131229033053/pspp 20131230033042/pspp 20131231033052/pspp 20140101033057/pspp 20140102033100/pspp 20140103033020/pspp 20140104033100/pspp 20140105033045/pspp 20140106033045/pspp 20140107033055/pspp 20140108033126/pspp 20140109033044/pspp 20140110033107/pspp 20140111033108/pspp 20140112033047/pspp 20140113033058/pspp 20140114033136/pspp 20140115033007/pspp 20140116033021/pspp 20140117033038/pspp 20140118033052/pspp 20140119032958/pspp 20140120033020/pspp 20140121032958/pspp 20140122033056/pspp 20140123033022/pspp 20140124033046/pspp 20140125033053/pspp 20140126033033/pspp 20140127033049/pspp 20140128033032/pspp 20140129033013/pspp 20140130033031/pspp 20140131033034/pspp 20140201033054/pspp 20140202033027/pspp 20140203033034/pspp 20140204033021/pspp 20140205033522/pspp 20140206033037/pspp 20140207033040/pspp 20140208033014/pspp 20140209033012/pspp 20140210033025/pspp 20140211030816/pspp 20140212033042/pspp 20140213033002/pspp 20140214030821/pspp 20140215033017/pspp 20140216033038/pspp 20140217033131/pspp 20140218033015/pspp 20140219033015/pspp 20140220033023/pspp 20140221033035/pspp 20140222033038/pspp 20140223033018/pspp 20140224033041/pspp 20140225033022/pspp 20140226033026/pspp 20140227033016/pspp 20140228032959/pspp 20140301032949/pspp 20140302033017/pspp 20140303032942/pspp 20140304033027/pspp 20140305032952/pspp 20140306033016/pspp 20140308033025/pspp
authorBen Pfaff <blp@cs.stanford.edu>
Sat, 16 Nov 2013 18:26:19 +0000 (10:26 -0800)
committerBen Pfaff <blp@cs.stanford.edu>
Sat, 16 Nov 2013 18:26:19 +0000 (10:26 -0800)
1  2 
configure.ac
src/ui/gui/automake.mk
src/ui/gui/main.c
src/ui/gui/psppire-data-sheet.c
src/ui/gui/psppire-data-window.c
src/ui/gui/psppire-window.c

diff --combined configure.ac
index 9f4ecbda5c913118a4ac92acafd10c5196bc8d4b,81f00b9883a9c6f09e0e50257c8b02a38d17756b..b0f16685b599c12fb827513abc3cba0d58822433
@@@ -2,7 -2,7 +2,7 @@@ dnl Process this file with autoconf to 
  
  dnl Initialize.
  AC_PREREQ(2.63)
- AC_INIT([GNU PSPP], [0.8.1], [bug-gnu-pspp@gnu.org], [pspp])
+ AC_INIT([GNU PSPP], [0.8.1.1], [bug-gnu-pspp@gnu.org], [pspp])
  AC_CONFIG_AUX_DIR([build-aux])
  AC_CONFIG_HEADERS([config.h])
  AC_CONFIG_TESTDIR([tests])
@@@ -71,11 -71,11 +71,11 @@@ if test "$with_cairo" != no && test "$w
    PKG_CHECK_MODULES([GTHREAD], [gthread-2.0], [],
      [PSPP_REQUIRED_PREREQ([gthread 2.0 (or use --without-gui)])])
  
 -  PKG_CHECK_MODULES([GTK], [gtk+-2.0 >= 2.24], [],
 -    [PSPP_REQUIRED_PREREQ([gtk+ 2.0 version 2.24 or later (or use --without-gui)])])
 +  PKG_CHECK_MODULES([GTK], [gtk+-3.0 >= 3.4.2], [],
 +    [PSPP_REQUIRED_PREREQ([gtk+ 3.0 version 3.4.2 or later (or use --without-gui)])])
  
 -  PKG_CHECK_MODULES([GTKSOURCEVIEW], [gtksourceview-2.0 >= 2.2], [],
 -    [PSPP_REQUIRED_PREREQ([gtksourceview 2.0 version 2.2 or later (or use --without-gui)])])
 +  PKG_CHECK_MODULES([GTKSOURCEVIEW], [gtksourceview-3.0 >= 3.4.2], [],
 +    [PSPP_REQUIRED_PREREQ([gtksourceview 3.0 version 3.4.2 or later (or use --without-gui)])])
  
    AC_ARG_VAR([GLIB_GENMARSHAL])
    AC_CHECK_PROGS([GLIB_GENMARSHAL], [glib-genmarshal])
diff --combined src/ui/gui/automake.mk
index 99b729f61c7c3e5d67bd0e587f82e08fc3f4fca5,9cb4ffd8fb86327bd8774279bafc7874e02f3dcd..b19ea4b3f99748172a59951fe78084fe1d992a94
@@@ -57,8 -57,8 +57,8 @@@ if HAVE_GU
  bin_PROGRAMS += src/ui/gui/psppire 
  noinst_PROGRAMS += src/ui/gui/spreadsheet-test
  
 -src_ui_gui_psppire_CFLAGS = $(GTK_CFLAGS) $(GTKSOURCEVIEW_CFLAGS) -Wall -DGDK_MULTIHEAD_SAFE=1
 -src_ui_gui_spreadsheet_test_CFLAGS = $(GTK_CFLAGS) -Wall -DGDK_MULTIHEAD_SAFE=1
 +src_ui_gui_psppire_CFLAGS = $(GTK_CFLAGS) $(GTKSOURCEVIEW_CFLAGS) -Wall -DGDK_MULTIHEAD_SAFE=1 
 +src_ui_gui_spreadsheet_test_CFLAGS = $(GTK_CFLAGS) -Wall -DGDK_MULTIHEAD_SAFE=1 
  
  
  src_ui_gui_psppire_LDFLAGS = \
@@@ -345,6 -345,9 +345,9 @@@ src/ui/gui/psppire-marshal.h: src/ui/gu
  desktopdir = $(datadir)/applications
  desktop_DATA = src/ui/gui/pspp.desktop
  
+ appdatadir = $(datadir)/appdata
+ dist_appdata_DATA = src/ui/gui/pspp.appdata.xml
  BUILT_SOURCES += src/ui/gui/psppire-marshal.c src/ui/gui/psppire-marshal.h
  CLEANFILES += src/ui/gui/psppire-marshal.c src/ui/gui/psppire-marshal.h \
        $(nodist_src_ui_gui_psppire_DATA)
diff --combined src/ui/gui/main.c
index 6bc9e9686c8bab95f6b772cda4219827dc0f24f4,c57c7149889ad43b0ae3ca8e62b58bd5b4094588..24ac6c7581b550a238dc82be243a48be54553942
@@@ -88,7 -88,7 +88,7 @@@ usage (void
    gtk_help = gtk_help != NULL ? gtk_help + 2 : gtk_help_base;
  
    printf (_("\
- PSPPIRE, a GUI for PSPP, a program for statistical analysis of sample data.\n\
+ PSPPIRE, a GUI for PSPP, a program for statistical analysis of sampled data.\n\
  Usage: %s [OPTION]... FILE\n\
  \n\
  Arguments to long options also apply to equivalent short options.\n\
@@@ -199,14 -199,12 +199,14 @@@ print_startup_time (gpointer data
    return FALSE;
  }
  
 +/*
  static gboolean
  quit_one_loop (gpointer data)
  {
    gtk_main_quit ();
    return FALSE;
  }
 +*/
  
  struct initialisation_parameters
  {
@@@ -331,14 -329,13 +331,14 @@@ main (int argc, char *argv[]
    init_p.splash_window = create_splash_window ();
    init_p.data_file = optind < argc ? argv[optind] : NULL;
  
 -  if ( show_splash )
 -    gtk_widget_show (init_p.splash_window);
 +  //  if ( show_splash )
 +  //    gtk_widget_show (init_p.splash_window);
  
 -  g_idle_add (quit_one_loop, 0);
 +  //  g_idle_add (quit_one_loop, 0);
  
 -  gtk_quit_add (0, run_inner_loop, &init_p);
 -  gtk_main ();
 +  //  gtk_quit_add (0, run_inner_loop, &init_p);
 +  run_inner_loop (&init_p);
 +  //  gtk_main ();
  
    return 0;
  }
index 1b7b66a057783a1da071cf47ca1f9402c62a4639,f991d79ffd2d8b8bcfb588965251ed82dbbced0d..c7cced23af8740fd7840cc91a93344bf7a8eb4a6
@@@ -675,7 -675,7 +675,7 @@@ add_data_column_cell_renderer (PsppireD
    var = g_object_get_data (G_OBJECT (column), "variable");
    g_return_if_fail (var != NULL);
  
-   if (var_has_value_labels (var))
+   if (data_sheet->show_value_labels && var_has_value_labels (var))
      {
        cell = gtk_cell_renderer_combo_new ();
        g_object_set (G_OBJECT (cell),
@@@ -944,10 -944,11 +944,11 @@@ psppire_data_sheet_set_value_labels (Ps
      {
        ds->show_value_labels = show_value_labels;
        g_object_notify (G_OBJECT (ds), "value-labels");
-       gtk_widget_queue_draw (GTK_WIDGET (ds));
  
-       /* Make the cell being edited refresh too. */
-       pspp_sheet_view_stop_editing (PSPP_SHEET_VIEW (ds), TRUE);
+       /* Pretend the model changed, to force the columns to be rebuilt.
+          Otherwise cell renderers won't get changed from combo boxes to text
+          entries or vice versa. */
+       g_object_notify (G_OBJECT (ds), "model");
      }
  }
  
@@@ -2309,7 -2310,7 +2310,7 @@@ psppire_data_sheet_clipboard_set (GtkSe
        g_assert_not_reached ();
      }
  
 -  gtk_selection_data_set (selection_data, selection_data->target,
 +  gtk_selection_data_set (selection_data, gtk_selection_data_get_target (selection_data),
                          8,
                          (const guchar *) string->str, string->len);
  
@@@ -2442,13 -2443,13 +2443,13 @@@ psppire_data_sheet_clip_received_cb (Gt
    gint first_column;
    char *c;
  
 -  if ( sd->length < 0 )
 +  if ( gtk_selection_data_get_length (sd) < 0 )
      return;
  
 -  if ( sd->type != gdk_atom_intern ("UTF8_STRING", FALSE))
 +  if ( gtk_selection_data_get_data_type (sd) != gdk_atom_intern ("UTF8_STRING", FALSE))
      return;
  
 -  c = (char *) sd->data;
 +  c = (char *) gtk_selection_data_get_data (sd);
  
    /* Get the starting selected position in the data sheet.  (Possibly we should
       only paste into the selected range if it's larger than one cell?) */
    g_return_if_fail (next_row >= 0);
    g_return_if_fail (next_column >= 0);
  
 -  while (count < sd->length)
 +  while (count < gtk_selection_data_get_length (sd))
      {
        gint row = next_row;
        gint column = next_column;
        struct variable *var;
        char *s = c;
  
 -      while (*c != '\t' && *c != '\n' && count < sd->length)
 +      while (*c != '\t' && *c != '\n' && count < gtk_selection_data_get_length (sd))
          {
            c++;
            count++;
index 5408f8d36c7fb76c89791ee8dbd3a2112df7552e,ca4f21e2219236f07db4bbeb626ad6d9eda59908..5a00a64a8a3c1aab1cbde668ab2687cc29046e3c
@@@ -501,6 -501,7 +501,7 @@@ data_pick_filename (PsppireWindow *wind
    gtk_file_filter_set_name (filter, _("All Files"));
    gtk_file_filter_add_pattern (filter, "*");
    gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
+   gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (dialog), filter);
  
    {
      GtkCellRenderer *cell;
@@@ -683,10 -684,14 +684,10 @@@ static voi
  fonts_activate (PsppireDataWindow  *de)
  {
    GtkWidget *toplevel = gtk_widget_get_toplevel (GTK_WIDGET (de));
 -  PangoFontDescription *current_font;
 -  gchar *font_name;
 -  GtkWidget *dialog =
 -    gtk_font_selection_dialog_new (_("Font Selection"));
 -
 -
 -  current_font = GTK_WIDGET(de->data_editor)->style->font_desc;
 -  font_name = pango_font_description_to_string (current_font);
 +  GtkWidget *dialog =  gtk_font_selection_dialog_new (_("Font Selection"));
 +  GtkStyle *style = gtk_widget_get_style (GTK_WIDGET(de->data_editor));
 +  PangoFontDescription *current_font = style->font_desc;
 +  gchar *font_name = pango_font_description_to_string (current_font);
  
    gtk_font_selection_dialog_set_font_name (GTK_FONT_SELECTION_DIALOG (dialog), font_name);
  
@@@ -901,14 -906,12 +902,14 @@@ enable_save (PsppireDataWindow *dw
  static void
  psppire_data_window_init (PsppireDataWindow *de)
  {
 +  GtkWidget *w ;
    de->builder = builder_new ("data-editor.ui");
  
    de->ui_manager = GTK_UI_MANAGER (get_object_assert (de->builder, "uimanager1", GTK_TYPE_UI_MANAGER));
  
 -  PSPPIRE_WINDOW (de)->menu =
 -    GTK_MENU_SHELL (gtk_ui_manager_get_widget (de->ui_manager, "/ui/menubar/windows/windows_minimise_all")->parent);
 +  w = gtk_ui_manager_get_widget (de->ui_manager, "/ui/menubar/windows/windows_minimise_all");
 +
 +  PSPPIRE_WINDOW (de)->menu = GTK_MENU_SHELL (gtk_widget_get_parent (w));
  
    de->uim = NULL;
    de->merge_id = 0;
index dcc44a8d5520a1c9bf3669034fc80caeb6c6fc0a,65842bdc623bccac6278809b2df6cb7404383e30..609b88120d2219116ec2ff1aa5329fd23d81090b
@@@ -310,10 -310,8 +310,10 @@@ psppire_window_base_init (PsppireWindow
  static void
  menu_toggled (GtkCheckMenuItem *mi, gpointer data)
  {
 +#if GTK3_TRANSITION
    /* Prohibit changes to the state */
    mi->active = !mi->active;
 +#endif
  }
  
  
@@@ -357,11 -355,9 +357,11 @@@ insert_menuitem_into_menu (PsppireWindo
  
    gtk_menu_shell_append (window->menu, item);
  
 +#if GTK3_TRANSITION
    /* Set the state without emitting a signal */
    GTK_CHECK_MENU_ITEM (item)->active =
     (psppire_window_register_lookup (psppire_window_register_new (), key) == window);
 +#endif
  
    g_hash_table_insert (window->menuitem_table, key, item);
  }
@@@ -727,13 -723,15 +727,15 @@@ psppire_window_file_chooser_dialog (Psp
    gtk_file_filter_set_name (filter, _("Data and Syntax Files"));
    gtk_file_filter_add_mime_type (filter, "application/x-spss-sav");
    gtk_file_filter_add_mime_type (filter, "application/x-spss-por");
+   gtk_file_filter_add_pattern (filter, "*.zsav");
    gtk_file_filter_add_pattern (filter, "*.sps");
    gtk_file_filter_add_pattern (filter, "*.SPS");
    gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
  
    filter = gtk_file_filter_new ();
-   gtk_file_filter_set_name (filter, _("System Files (*.sav)"));
+   gtk_file_filter_set_name (filter, _("System Files (*.sav, *.zsav)"));
    gtk_file_filter_add_mime_type (filter, "application/x-spss-sav");
+   gtk_file_filter_add_pattern (filter, "*.zsav");
    gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
  
    filter = gtk_file_filter_new ();