summaryrefslogtreecommitdiff
path: root/gui/gdmphotosetup.c
diff options
context:
space:
mode:
authorBrian Cameron <Brian.Cameron@sun.com>2005-03-31 23:04:44 +0000
committerBrian Cameron <bcameron@src.gnome.org>2005-03-31 23:04:44 +0000
commit0da8a437b98f2233d43606f36ea27338f5351dd7 (patch)
treea1c1876dbc2653ec615db51eeeaad1dd74cfe6a0 /gui/gdmphotosetup.c
parentdf5460708869c0224dd287bd5679d0bc6c3188a6 (diff)
downloadgdm-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.c44
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