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])
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])
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 = \
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)
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\
return FALSE;
}
+/*
static gboolean
quit_one_loop (gpointer data)
{
gtk_main_quit ();
return FALSE;
}
+*/
struct initialisation_parameters
{
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;
}
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),
{
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");
}
}
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);
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++;
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;
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);
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;
static void
menu_toggled (GtkCheckMenuItem *mi, gpointer data)
{
+#if GTK3_TRANSITION
/* Prohibit changes to the state */
mi->active = !mi->active;
+#endif
}
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);
}
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 ();