diff options
author | Brian Cameron <Brian.Cameron@sun.com> | 2005-03-31 23:04:44 +0000 |
---|---|---|
committer | Brian Cameron <bcameron@src.gnome.org> | 2005-03-31 23:04:44 +0000 |
commit | 0da8a437b98f2233d43606f36ea27338f5351dd7 (patch) | |
tree | a1c1876dbc2653ec615db51eeeaad1dd74cfe6a0 /gui/gdmphotosetup.c | |
parent | df5460708869c0224dd287bd5679d0bc6c3188a6 (diff) | |
download | gdm-0da8a437b98f2233d43606f36ea27338f5351dd7.tar.gz |
Revamped gdmsetup so that it uses the new file browser everywhere, uses
2005-04-01 Brian Cameron <Brian.Cameron@sun.com>
* gui/gdmlogin.c, gui/gdmsetup.c, gui/gdmsetup-strings.c,
gui/gdmsetup.glade: Revamped gdmsetup so that it uses the
new file browser everywhere, uses GtkComboBox and
GtkComboBoxEntryinstead of GtkEntry and GtkOptionMenu
since they are deprecated. This fixed bug 171558.
Improved Remote Welcome label to fix bug 105156.
Now Remote Greeter option in the Greeter tab reads
"Disabled" if XDMCP is disabled. It returns to the
real choice if XDMCP is enabled again. This fixes
bug 117888. Also changed glade widget names for the
face browser to have the "fb" prefix rather than "sg".
Some other minor cleanup of the glade file.
* gui/gdmphotosetup.c: On March 10th I fixed gdmphotosetup so
it uses the new file browser. I noticed that the code had
a bug which was causing an assert, now fixed. Now make the
file browser work more like the ones gdmsetup.c
* gui/gdmsetup.desktop.in: Make GNOME in all-caps to fix
bug 167054.
Diffstat (limited to 'gui/gdmphotosetup.c')
-rw-r--r-- | gui/gdmphotosetup.c | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/gui/gdmphotosetup.c b/gui/gdmphotosetup.c index 39546c73..7862cf72 100644 --- a/gui/gdmphotosetup.c +++ b/gui/gdmphotosetup.c @@ -92,8 +92,6 @@ gdm_check (void) return TRUE; } - - static void dialog_response (GtkWidget *dialog, int res, gpointer data) { @@ -104,12 +102,9 @@ dialog_response (GtkWidget *dialog, int res, gpointer data) static void update_preview_cb (GtkFileChooser *file_chooser, gpointer data) { - char *filename; - - filename = gtk_file_chooser_get_preview_filename (file_chooser); + char *filename = gtk_file_chooser_get_preview_filename (file_chooser); if (filename != NULL) { - GtkWidget *temp_preview = GTK_WIDGET (data); GdkPixbuf *pixbuf; gboolean have_preview; @@ -163,9 +158,23 @@ update_preview_cb (GtkFileChooser *file_chooser, gpointer data) } static void +install_response (GtkWidget *file_dialog, gint response, gpointer data) +{ + if (response == GTK_RESPONSE_ACCEPT) { + gtk_image_set_from_pixbuf (GTK_IMAGE (current_image), + gtk_image_get_pixbuf (GTK_IMAGE (preview))); + current_pix = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_dialog)); + } else { + gtk_image_set_from_pixbuf (GTK_IMAGE (preview), + gtk_image_get_pixbuf (GTK_IMAGE (current_image))); + } + + gtk_widget_destroy (file_dialog); +} + +static void browse_button_cb (GtkWidget *widget, gpointer data) { - GtkWidget *temp_preview = gtk_image_new (); GtkWindow *parent = GTK_WINDOW (data); GtkFileFilter *filter; GtkWidget *file_dialog = gtk_file_chooser_dialog_new (_("Open File"), @@ -191,23 +200,14 @@ browse_button_cb (GtkWidget *widget, gpointer data) gtk_file_filter_add_mime_type (filter, "image/png"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (file_dialog), filter); - gtk_file_chooser_set_preview_widget (GTK_FILE_CHOOSER (file_dialog), temp_preview); g_signal_connect (file_dialog, "update-preview", - G_CALLBACK (update_preview_cb), NULL); + G_CALLBACK (update_preview_cb), NULL); + g_signal_connect (G_OBJECT (file_dialog), "destroy", + G_CALLBACK (gtk_widget_destroyed), &file_dialog); + g_signal_connect (G_OBJECT (file_dialog), "response", + G_CALLBACK (install_response), NULL); - if (gtk_dialog_run (GTK_DIALOG (file_dialog)) == GTK_RESPONSE_ACCEPT) { - char *filename; - - gtk_image_set_from_pixbuf (GTK_IMAGE (current_image), - gtk_image_get_pixbuf (GTK_IMAGE (preview))); - current_pix = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_dialog)); - g_free (filename); - } else { - gtk_image_set_from_pixbuf (GTK_IMAGE (preview), - gtk_image_get_pixbuf (GTK_IMAGE (current_image))); - } - - gtk_widget_destroy (file_dialog); + gtk_widget_show (file_dialog); } int |