[gimp] app: Gather save dialog uri defaults in one place



commit a93346d0a0511d71288ce61e2a847e80d4503224
Author: Martin Nordholts <martinn src gnome org>
Date:   Fri May 1 12:22:41 2009 +0200

    app: Gather save dialog uri defaults in one place
    
    Gather save dialog uri defaults in one place. Move the small bits of
    it from file_save_dialog_new() to gimp_file_dialog_set_save_image()
    where the rest is.
---
 app/actions/file-commands.c    |   15 ++++++++++-----
 app/dialogs/file-save-dialog.c |    9 ---------
 app/widgets/gimpfiledialog.c   |    5 +++++
 app/widgets/gimpfiledialog.h   |    1 +
 4 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/app/actions/file-commands.c b/app/actions/file-commands.c
index ce293c0..6fd74ac 100644
--- a/app/actions/file-commands.c
+++ b/app/actions/file-commands.c
@@ -71,7 +71,8 @@ static void     file_open_dialog_show        (Gimp                *gimp,
                                               GimpImage           *image,
                                               const gchar         *uri,
                                               gboolean             open_as_layers);
-static void     file_save_dialog_show        (GimpImage           *image,
+static void     file_save_dialog_show        (Gimp                *gimp,
+                                              GimpImage           *image,
                                               GtkWidget           *parent,
                                               const gchar         *title,
                                               gboolean             save_a_copy,
@@ -205,12 +206,14 @@ file_save_cmd_callback (GtkAction *action,
                         gint       value,
                         gpointer   data)
 {
+  Gimp         *gimp;
   GimpDisplay  *display;
   GimpImage    *image;
   GtkWidget    *widget;
   GimpSaveMode  save_mode;
   const gchar  *uri;
   gboolean      saved = FALSE;
+  return_if_no_gimp (gimp, data);
   return_if_no_display (display, data);
   return_if_no_widget (widget, data);
 
@@ -263,13 +266,13 @@ file_save_cmd_callback (GtkAction *action,
         }
 
     case GIMP_SAVE_MODE_SAVE_AS:
-      file_save_dialog_show (display->image, widget,
+      file_save_dialog_show (gimp, display->image, widget,
                              _("Save Image"), FALSE,
                              save_mode == GIMP_SAVE_MODE_SAVE_AND_CLOSE);
       break;
 
     case GIMP_SAVE_MODE_SAVE_A_COPY:
-      file_save_dialog_show (display->image, widget,
+      file_save_dialog_show (gimp, display->image, widget,
                              _("Save a Copy of the Image"), TRUE,
                              FALSE);
       break;
@@ -460,7 +463,8 @@ file_open_dialog_show (Gimp        *gimp,
 }
 
 static void
-file_save_dialog_show (GimpImage   *image,
+file_save_dialog_show (Gimp        *gimp,
+                       GimpImage   *image,
                        GtkWidget   *parent,
                        const gchar *title,
                        gboolean     save_a_copy,
@@ -496,7 +500,8 @@ file_save_dialog_show (GimpImage   *image,
       gtk_window_set_title (GTK_WINDOW (dialog), title);
 
       gimp_file_dialog_set_save_image (GIMP_FILE_DIALOG (dialog),
-                                       image, save_a_copy, close_after_saving);
+                                       gimp, image, save_a_copy,
+                                       close_after_saving);
 
       gtk_window_present (GTK_WINDOW (dialog));
     }
diff --git a/app/dialogs/file-save-dialog.c b/app/dialogs/file-save-dialog.c
index b49af68..35cc8a4 100644
--- a/app/dialogs/file-save-dialog.c
+++ b/app/dialogs/file-save-dialog.c
@@ -82,7 +82,6 @@ file_save_dialog_new (Gimp *gimp)
 {
   GtkWidget           *dialog;
   GimpFileDialogState *state;
-  const gchar         *uri;
 
   g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
 
@@ -97,14 +96,6 @@ file_save_dialog_new (Gimp *gimp)
   if (state)
     gimp_file_dialog_set_state (GIMP_FILE_DIALOG (dialog), state);
 
-  uri = g_object_get_data (G_OBJECT (gimp), GIMP_FILE_SAVE_LAST_URI_KEY);
-
-  if (uri)
-    {
-      gtk_file_chooser_set_uri (GTK_FILE_CHOOSER (dialog), uri);
-      gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog), "");
-    }
-
   g_signal_connect (dialog, "response",
                     G_CALLBACK (file_save_dialog_response),
                     gimp);
diff --git a/app/widgets/gimpfiledialog.c b/app/widgets/gimpfiledialog.c
index 4df5eaa..7f0645c 100644
--- a/app/widgets/gimpfiledialog.c
+++ b/app/widgets/gimpfiledialog.c
@@ -454,6 +454,7 @@ gimp_file_dialog_set_open_image (GimpFileDialog *dialog,
 
 void
 gimp_file_dialog_set_save_image (GimpFileDialog *dialog,
+                                 Gimp           *gimp,
                                  GimpImage      *image,
                                  gboolean        save_a_copy,
                                  gboolean        close_after_saving)
@@ -536,6 +537,10 @@ gimp_file_dialog_set_save_image (GimpFileDialog *dialog,
 
       if (folder)
         gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), folder);
+      else
+        gtk_file_chooser_set_uri (GTK_FILE_CHOOSER (dialog),
+                                  g_object_get_data (G_OBJECT (gimp),
+                                                     GIMP_FILE_SAVE_LAST_URI_KEY));
     }
 
   g_free (dirname);
diff --git a/app/widgets/gimpfiledialog.h b/app/widgets/gimpfiledialog.h
index 6b94bf8..391bdaf 100644
--- a/app/widgets/gimpfiledialog.h
+++ b/app/widgets/gimpfiledialog.h
@@ -82,6 +82,7 @@ void        gimp_file_dialog_set_open_image (GimpFileDialog       *dialog,
                                              GimpImage            *image,
                                              gboolean              open_as_layers);
 void        gimp_file_dialog_set_save_image (GimpFileDialog       *dialog,
+                                             Gimp                 *gimp,
                                              GimpImage            *image,
                                              gboolean              save_a_copy,
                                              gboolean              close_after_saving);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]