X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-window.c;h=4c7fcf57dc2040c32357e9e371bbad8f6339d75d;hb=48ec61d954cc032c773daf96851cf3b78f27b112;hp=598de8930246591389a5dbdae3da7cd49e76d3e0;hpb=40774acff41f07dda235710fd8af0eb47f8f299b;p=pspp diff --git a/src/ui/gui/psppire-window.c b/src/ui/gui/psppire-window.c index 598de89302..4c7fcf57dc 100644 --- a/src/ui/gui/psppire-window.c +++ b/src/ui/gui/psppire-window.c @@ -17,6 +17,7 @@ #include #include "psppire-window.h" +#include "psppire-window-base.h" #include @@ -28,10 +29,10 @@ #define N_(msgid) msgid #include "data/any-reader.h" +#include "data/file-name.h" #include "data/dataset.h" #include "helper.h" -#include "psppire-conf.h" #include "psppire-data-window.h" #include "psppire-encoding-selector.h" #include "psppire-syntax-window.h" @@ -66,7 +67,7 @@ psppire_window_get_type (void) }; psppire_window_type = - g_type_register_static (GTK_TYPE_WINDOW, "PsppireWindow", + g_type_register_static (PSPPIRE_TYPE_WINDOW_BASE, "PsppireWindow", &psppire_window_info, G_TYPE_FLAG_ABSTRACT); } @@ -228,17 +229,6 @@ psppire_window_get_property (GObject *object, } -static void -on_realize (GtkWindow *window, gpointer data) -{ - PsppireConf *conf = psppire_conf_new (); - - const gchar *base = G_OBJECT_TYPE_NAME (window); - - psppire_conf_set_window_geometry (conf, base, window); -} - - static void psppire_window_finalize (GObject *object) { @@ -422,13 +412,6 @@ on_delete (PsppireWindow *w, GdkEvent *event, gpointer user_data) { PsppireWindowRegister *reg = psppire_window_register_new (); - const gchar *base = G_OBJECT_TYPE_NAME (w); - - PsppireConf *conf = psppire_conf_new (); - - psppire_conf_save_window_geometry (conf, base, GTK_WINDOW (w)); - - if ( w->dirty ) { gint response = psppire_window_query_save (w); @@ -489,9 +472,6 @@ psppire_window_init (PsppireWindow *window) g_signal_connect_swapped (window, "delete-event", G_CALLBACK (on_delete), window); g_object_set (window, "icon-name", "pspp", NULL); - - g_signal_connect (window, "realize", - G_CALLBACK (on_realize), window); } /* @@ -719,6 +699,12 @@ on_selection_changed (GtkFileChooser *chooser, GtkWidget *encoding_selector) sysname = convert_glib_filename_to_system_filename (name, NULL); + if ( ! fn_exists (sysname)) + { + gtk_widget_set_sensitive (encoding_selector, FALSE); + return; + } + gtk_widget_set_sensitive (encoding_selector, ! any_reader_may_open (sysname)); } @@ -788,9 +774,13 @@ psppire_window_file_chooser_dialog (PsppireWindow *toplevel) { GtkWidget *encoding_selector = psppire_encoding_selector_new ("Auto", true); - gtk_file_chooser_set_extra_widget (GTK_FILE_CHOOSER (dialog), encoding_selector); - g_signal_connect (dialog, "selection-changed", G_CALLBACK (on_selection_changed), encoding_selector); + gtk_widget_set_sensitive (encoding_selector, FALSE); + + g_signal_connect (dialog, "selection-changed", G_CALLBACK (on_selection_changed), + encoding_selector); + + gtk_file_chooser_set_extra_widget (GTK_FILE_CHOOSER (dialog), encoding_selector); } return dialog;