X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-window.c;h=609b88120d2219116ec2ff1aa5329fd23d81090b;hb=refs%2Fbuilds%2F20140129033013%2Fpspp;hp=c1784ac1f14d7df9a2e1880b27b971de8dc8e624;hpb=7f4e7f1f7846b6a4a68e5f0614ba01ef9ab79fac;p=pspp diff --git a/src/ui/gui/psppire-window.c b/src/ui/gui/psppire-window.c index c1784ac1f1..609b88120d 100644 --- a/src/ui/gui/psppire-window.c +++ b/src/ui/gui/psppire-window.c @@ -236,6 +236,8 @@ psppire_window_finalize (GObject *object) PsppireWindowRegister *reg = psppire_window_register_new (); + g_signal_handler_disconnect (reg, window->remove_handler); + g_signal_handler_disconnect (reg, window->insert_handler); psppire_window_register_remove (reg, window->list_name); g_free (window->filename); g_free (window->basename); @@ -243,12 +245,6 @@ psppire_window_finalize (GObject *object) g_free (window->description); g_free (window->list_name); - g_signal_handler_disconnect (psppire_window_register_new (), - window->remove_handler); - - g_signal_handler_disconnect (psppire_window_register_new (), - window->insert_handler); - g_hash_table_destroy (window->menuitem_table); if (G_OBJECT_CLASS (parent_class)->finalize) @@ -314,8 +310,10 @@ psppire_window_base_init (PsppireWindowClass *class) static void menu_toggled (GtkCheckMenuItem *mi, gpointer data) { +#if GTK3_TRANSITION /* Prohibit changes to the state */ mi->active = !mi->active; +#endif } @@ -359,9 +357,11 @@ insert_menuitem_into_menu (PsppireWindow *window, gpointer key) 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); } @@ -664,7 +664,7 @@ psppire_window_save_as (PsppireWindow *w) static void delete_recent (const char *file_name); gboolean -psppire_window_load (PsppireWindow *w, const gchar *file) +psppire_window_load (PsppireWindow *w, const gchar *file, gpointer hint) { gboolean ok; PsppireWindowIface *i = PSPPIRE_WINDOW_MODEL_GET_IFACE (w); @@ -675,7 +675,7 @@ psppire_window_load (PsppireWindow *w, const gchar *file) g_return_val_if_fail (i->load, FALSE); - ok = i->load (w, file); + ok = i->load (w, file, hint); if ( ok ) { @@ -727,13 +727,15 @@ psppire_window_file_chooser_dialog (PsppireWindow *toplevel) 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 (); @@ -808,7 +810,7 @@ psppire_window_open (PsppireWindow *de) gtk_file_chooser_get_extra_widget (GTK_FILE_CHOOSER (dialog))); if (any_reader_may_open (sysname)) - open_data_window (de, name); + open_data_window (de, name, NULL); else open_syntax_window (name, encoding);