[gimp] app: change GimpImageMapTool::get_settings_ui()'s "default_folder" to GFile



commit b200345a985fd4e7149df77edc3a4ba020d01284
Author: Michael Natterer <mitch gimp org>
Date:   Tue Jul 29 11:56:06 2014 +0200

    app: change GimpImageMapTool::get_settings_ui()'s "default_folder" to GFile

 app/tools/gimpimagemaptool-settings.c |    2 +-
 app/tools/gimpimagemaptool-settings.h |    2 +-
 app/tools/gimpimagemaptool.c          |    7 +++----
 app/tools/gimpimagemaptool.h          |    2 +-
 app/tools/gimpoperationtool.c         |    6 +++---
 app/widgets/gimpsettingsbox.c         |   32 +++++++++++++++++++++++---------
 app/widgets/gimpsettingsbox.h         |    2 +-
 7 files changed, 33 insertions(+), 20 deletions(-)
---
diff --git a/app/tools/gimpimagemaptool-settings.c b/app/tools/gimpimagemaptool-settings.c
index 5f10fc7..d92e7fc 100644
--- a/app/tools/gimpimagemaptool-settings.c
+++ b/app/tools/gimpimagemaptool-settings.c
@@ -66,7 +66,7 @@ gimp_image_map_tool_real_get_settings_ui (GimpImageMapTool  *image_map_tool,
                                           const gchar       *import_dialog_title,
                                           const gchar       *export_dialog_title,
                                           const gchar       *file_dialog_help_id,
-                                          const gchar       *default_folder,
+                                          GFile             *default_folder,
                                           GtkWidget        **settings_box)
 {
   GimpToolInfo *tool_info;
diff --git a/app/tools/gimpimagemaptool-settings.h b/app/tools/gimpimagemaptool-settings.h
index 1fddf86..3925e43 100644
--- a/app/tools/gimpimagemaptool-settings.h
+++ b/app/tools/gimpimagemaptool-settings.h
@@ -27,7 +27,7 @@ GtkWidget * gimp_image_map_tool_real_get_settings_ui (GimpImageMapTool *tool,
                                                       const gchar      *import_dialog_title,
                                                       const gchar      *export_dialog_title,
                                                       const gchar      *file_dialog_help_id,
-                                                      const gchar      *default_folder,
+                                                      GFile            *default_folder,
                                                       GtkWidget       **settings_box);
 gboolean    gimp_image_map_tool_real_settings_import (GimpImageMapTool *tool,
                                                       GInputStream     *input,
diff --git a/app/tools/gimpimagemaptool.c b/app/tools/gimpimagemaptool.c
index f9bd425..ab414a9 100644
--- a/app/tools/gimpimagemaptool.c
+++ b/app/tools/gimpimagemaptool.c
@@ -372,13 +372,12 @@ gimp_image_map_tool_initialize (GimpTool     *tool,
       if (image_map_tool->config && klass->settings_name)
         {
           GtkWidget *settings_ui;
-          gchar     *default_folder;
+          GFile     *default_folder;
           GFile     *settings_file;
 
           settings_file = gimp_tool_info_get_options_file (tool_info,
                                                            ".settings");
-          default_folder = g_build_filename (gimp_directory (),
-                                             klass->settings_name, NULL);
+          default_folder = gimp_directory_file (klass->settings_name, NULL);
 
           settings_ui = klass->get_settings_ui (image_map_tool,
                                                 klass->recent_settings,
@@ -389,7 +388,7 @@ gimp_image_map_tool_initialize (GimpTool     *tool,
                                                 default_folder,
                                                 &image_map_tool->settings_box);
 
-          g_free (default_folder);
+          g_object_unref (default_folder);
           g_object_unref (settings_file);
 
           gtk_box_pack_start (GTK_BOX (vbox), settings_ui, FALSE, FALSE, 0);
diff --git a/app/tools/gimpimagemaptool.h b/app/tools/gimpimagemaptool.h
index 23722ad..c9eba3e 100644
--- a/app/tools/gimpimagemaptool.h
+++ b/app/tools/gimpimagemaptool.h
@@ -81,7 +81,7 @@ struct _GimpImageMapToolClass
                                    const gchar       *import_dialog_title,
                                    const gchar       *export_dialog_title,
                                    const gchar       *file_dialog_help_id,
-                                   const gchar       *default_folder,
+                                   GFile             *default_folder,
                                    GtkWidget        **settings_box);
 
   gboolean    (* settings_import) (GimpImageMapTool  *image_map_tool,
diff --git a/app/tools/gimpoperationtool.c b/app/tools/gimpoperationtool.c
index 703a2d9..9ad92e2 100644
--- a/app/tools/gimpoperationtool.c
+++ b/app/tools/gimpoperationtool.c
@@ -80,7 +80,7 @@ static GtkWidget * gimp_operation_tool_get_settings_ui (GimpImageMapTool  *image
                                                         const gchar       *import_dialog_title,
                                                         const gchar       *export_dialog_title,
                                                         const gchar       *file_dialog_help_id,
-                                                        const gchar       *default_folder,
+                                                        GFile             *default_folder,
                                                         GtkWidget        **settings_box);
 static void        gimp_operation_tool_color_picked    (GimpImageMapTool  *im_tool,
                                                         gpointer           identifier,
@@ -316,7 +316,7 @@ gimp_operation_tool_get_settings_ui (GimpImageMapTool  *image_map_tool,
                                      const gchar       *import_dialog_title,
                                      const gchar       *export_dialog_title,
                                      const gchar       *file_dialog_help_id,
-                                     const gchar       *default_folder,
+                                     GFile             *default_folder,
                                      GtkWidget        **settings_box)
 {
   GimpOperationTool *tool = GIMP_OPERATION_TOOL (image_map_tool);
@@ -346,7 +346,7 @@ gimp_operation_tool_get_settings_ui (GimpImageMapTool  *image_map_tool,
                                                                import_title,
                                                                export_title,
                                                                "help-foo",
-                                                               g_get_home_dir (),
+                                                               NULL, /* sic */
                                                                settings_box);
 
   g_free (import_title);
diff --git a/app/widgets/gimpsettingsbox.c b/app/widgets/gimpsettingsbox.c
index cddf106..b63a2f7 100644
--- a/app/widgets/gimpsettingsbox.c
+++ b/app/widgets/gimpsettingsbox.c
@@ -80,7 +80,7 @@ struct _GimpSettingsBoxPrivate
   gchar         *import_dialog_title;
   gchar         *export_dialog_title;
   gchar         *file_dialog_help_id;
-  gchar         *default_folder;
+  GFile         *default_folder;
   GFile         *last_file;
 };
 
@@ -362,10 +362,15 @@ gimp_settings_box_finalize (GObject *object)
       private->last_file = NULL;
     }
 
+  if (private->default_folder)
+    {
+      g_object_unref (private->default_folder);
+      private->default_folder = NULL;
+    }
+
   g_free (private->import_dialog_title);
   g_free (private->export_dialog_title);
   g_free (private->file_dialog_help_id);
-  g_free (private->default_folder);
 
   if (private->editor_dialog)
     {
@@ -795,14 +800,19 @@ gimp_settings_box_file_dialog (GimpSettingsBox *box,
                     NULL);
 
   if (private->default_folder &&
-      g_file_test (private->default_folder, G_FILE_TEST_IS_DIR))
+      g_file_query_file_type (private->default_folder,
+                              G_FILE_QUERY_INFO_NONE, NULL) ==
+      G_FILE_TYPE_DIRECTORY)
     {
-      gtk_file_chooser_add_shortcut_folder (GTK_FILE_CHOOSER (dialog),
-                                            private->default_folder, NULL);
+      gchar *uri = g_file_get_uri (private->default_folder);
+      gtk_file_chooser_add_shortcut_folder_uri (GTK_FILE_CHOOSER (dialog),
+                                                uri, NULL);
+      g_free (uri);
 
       if (! private->last_file)
-        gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog),
-                                             private->default_folder);
+        gtk_file_chooser_set_current_folder_file (GTK_FILE_CHOOSER (dialog),
+                                                  private->default_folder,
+                                                  NULL);
     }
   else if (! private->last_file)
     {
@@ -943,7 +953,7 @@ gimp_settings_box_new (Gimp          *gimp,
                        const gchar   *import_dialog_title,
                        const gchar   *export_dialog_title,
                        const gchar   *file_dialog_help_id,
-                       const gchar   *default_folder,
+                       GFile         *default_folder,
                        GFile         *last_file)
 {
   GimpSettingsBox        *box;
@@ -953,6 +963,8 @@ gimp_settings_box_new (Gimp          *gimp,
   g_return_val_if_fail (GIMP_IS_CONFIG (config), NULL);
   g_return_val_if_fail (GIMP_IS_CONTAINER (container), NULL);
   g_return_val_if_fail (G_IS_FILE (file), NULL);
+  g_return_val_if_fail (default_folder == NULL || G_IS_FILE (default_folder),
+                        NULL);
   g_return_val_if_fail (last_file == NULL || G_IS_FILE (last_file), NULL);
 
   box = g_object_new (GIMP_TYPE_SETTINGS_BOX,
@@ -967,7 +979,9 @@ gimp_settings_box_new (Gimp          *gimp,
   private->import_dialog_title = g_strdup (import_dialog_title);
   private->export_dialog_title = g_strdup (export_dialog_title);
   private->file_dialog_help_id = g_strdup (file_dialog_help_id);
-  private->default_folder      = g_strdup (default_folder);
+
+  if (default_folder)
+    private->default_folder = g_object_ref (default_folder);
 
   if (last_file)
     private->last_file = g_object_ref (last_file);
diff --git a/app/widgets/gimpsettingsbox.h b/app/widgets/gimpsettingsbox.h
index 25ff9d9..3813b84 100644
--- a/app/widgets/gimpsettingsbox.h
+++ b/app/widgets/gimpsettingsbox.h
@@ -61,7 +61,7 @@ GtkWidget * gimp_settings_box_new         (Gimp            *gimp,
                                            const gchar     *import_dialog_title,
                                            const gchar     *export_dialog_title,
                                            const gchar     *file_dialog_help_id,
-                                           const gchar     *default_folder,
+                                           GFile           *default_folder,
                                            GFile           *last_file);
 
 void        gimp_settings_box_add_current (GimpSettingsBox *box,


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