[gimp] app, libgimpwidgets: use the new config path <-> GFile functions



commit e8309826b7793439d4addd9a0182732fd7f7e1dd
Author: Michael Natterer <mitch gimp org>
Date:   Fri Sep 30 22:07:00 2016 +0200

    app, libgimpwidgets: use the new config path <-> GFile functions
    
    Gets rid of temporary variables to hold both expanded and unexpanded
    paths.

 app/actions/vectors-commands.c         |   44 +++++++++++------------
 app/core/gimp.c                        |    9 +----
 app/plug-in/plug-in-rc.c               |   20 +++--------
 app/widgets/gimppropwidgets.c          |   18 +++-------
 libgimpwidgets/gimpcolorprofilestore.c |   26 +++-----------
 libgimpwidgets/gimppropwidgets.c       |   58 ++++++++++++++++++++------------
 6 files changed, 76 insertions(+), 99 deletions(-)
---
diff --git a/app/actions/vectors-commands.c b/app/actions/vectors-commands.c
index 56f8bed..c993ece 100644
--- a/app/actions/vectors-commands.c
+++ b/app/actions/vectors-commands.c
@@ -641,14 +641,14 @@ vectors_export_cmd_callback (GtkAction *action,
 
   if (config->vectors_export_path)
     {
-      gchar *folder = gimp_config_path_expand (config->vectors_export_path,
-                                                 TRUE, NULL);
+      GFile *folder = gimp_file_new_for_config_path (config->vectors_export_path,
+                                                     NULL);
 
       if (folder)
         {
-          gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog->dialog),
-                                               folder);
-          g_free (folder);
+          gtk_file_chooser_set_current_folder_file (GTK_FILE_CHOOSER (dialog->dialog),
+                                                    folder, NULL);
+          g_object_unref (folder);
         }
     }
 
@@ -678,14 +678,14 @@ vectors_import_cmd_callback (GtkAction *action,
 
   if (config->vectors_import_path)
     {
-      gchar *folder = gimp_config_path_expand (config->vectors_import_path,
-                                               TRUE, NULL);
+      GFile *folder = gimp_file_new_for_config_path (config->vectors_import_path,
+                                                     NULL);
 
       if (folder)
         {
-          gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog->dialog),
-                                               folder);
-          g_free (folder);
+          gtk_file_chooser_set_current_folder_file (GTK_FILE_CHOOSER (dialog->dialog),
+                                                    folder, NULL);
+          g_object_unref (folder);
         }
     }
 
@@ -923,18 +923,17 @@ vectors_import_response (GtkWidget           *widget,
       GimpDialogConfig *config;
       GtkFileChooser   *chooser = GTK_FILE_CHOOSER (widget);
       GFile            *file;
-      gchar            *folder;
-      GError           *error = NULL;
+      gchar            *folder = NULL;
+      GError           *error  = NULL;
 
       config = GIMP_DIALOG_CONFIG (dialog->image->gimp->config);
 
-      folder = gtk_file_chooser_get_current_folder (chooser);
+      file = gtk_file_chooser_get_current_folder_file (chooser);
 
-      if (folder)
+      if (file)
         {
-          gchar *tmp = gimp_config_path_unexpand (folder, TRUE, NULL);
-          g_free (folder);
-          folder = tmp;
+          folder = gimp_file_get_config_path (file, NULL);
+          g_object_unref (file);
         }
 
       g_object_set (config,
@@ -982,18 +981,17 @@ vectors_export_response (GtkWidget           *widget,
       GtkFileChooser   *chooser = GTK_FILE_CHOOSER (widget);
       GimpVectors      *vectors = NULL;
       GFile            *file;
-      gchar            *folder;
+      gchar            *folder  = NULL;
       GError           *error   = NULL;
 
       config = GIMP_DIALOG_CONFIG (dialog->image->gimp->config);
 
-      folder = gtk_file_chooser_get_current_folder (chooser);
+      file = gtk_file_chooser_get_current_folder_file (chooser);
 
-      if (folder)
+      if (file)
         {
-          gchar *tmp = gimp_config_path_unexpand (folder, TRUE, NULL);
-          g_free (folder);
-          folder = tmp;
+          folder = gimp_file_get_config_path (file, NULL);
+          g_object_unref (file);
         }
 
       g_object_set (config,
diff --git a/app/core/gimp.c b/app/core/gimp.c
index 4e2af54..db57d56 100644
--- a/app/core/gimp.c
+++ b/app/core/gimp.c
@@ -1251,7 +1251,6 @@ gimp_get_temp_file (Gimp        *gimp,
   static gint  id = 0;
   static gint  pid;
   gchar       *basename;
-  gchar       *path;
   GFile       *dir;
   GFile       *file;
 
@@ -1265,12 +1264,8 @@ gimp_get_temp_file (Gimp        *gimp,
   else
     basename = g_strdup_printf ("gimp-temp-%d%d", pid, id++);
 
-  path = gimp_config_path_expand (GIMP_GEGL_CONFIG (gimp->config)->temp_path,
-                                  TRUE, NULL);
-
-  dir = g_file_new_for_path (path);
-  g_free (path);
-
+  dir = gimp_file_new_for_config_path (GIMP_GEGL_CONFIG (gimp->config)->temp_path,
+                                       NULL);
   file = g_file_get_child (dir, basename);
   g_free (basename);
   g_object_unref (dir);
diff --git a/app/plug-in/plug-in-rc.c b/app/plug-in/plug-in-rc.c
index 38428f8..3f4f100 100644
--- a/app/plug-in/plug-in-rc.c
+++ b/app/plug-in/plug-in-rc.c
@@ -260,19 +260,15 @@ plug_in_def_deserialize (Gimp      *gimp,
 {
   GimpPlugInDef       *plug_in_def;
   GimpPlugInProcedure *proc = NULL;
-  gchar               *name;
   gchar               *path;
   GFile               *file;
   gint64               mtime;
   GTokenType           token;
 
-  if (! gimp_scanner_parse_string (scanner, &name))
+  if (! gimp_scanner_parse_string (scanner, &path))
     return G_TOKEN_STRING;
 
-  path = gimp_config_path_expand (name, TRUE, NULL);
-  g_free (name);
-
-  file = g_file_new_for_path (path);
+  file = gimp_file_new_for_config_path (path, NULL);
   g_free (path);
 
   plug_in_def = gimp_plug_in_def_new (file);
@@ -825,21 +821,17 @@ plug_in_rc_write (GSList  *plug_in_defs,
         {
           GSList *list2;
           gchar  *path;
-          gchar  *utf8;
 
-          path = g_file_get_path (plug_in_def->file);
-          utf8 = gimp_config_path_unexpand (path, TRUE, NULL);
-          g_free (path);
-
-          if (! utf8)
+          path = gimp_file_get_config_path (plug_in_def->file, NULL);
+          if (! path)
             continue;
 
           gimp_config_writer_open (writer, "plug-in-def");
-          gimp_config_writer_string (writer, utf8);
+          gimp_config_writer_string (writer, path);
           gimp_config_writer_printf (writer, "%"G_GINT64_FORMAT,
                                      plug_in_def->mtime);
 
-          g_free (utf8);
+          g_free (path);
 
           for (list2 = plug_in_def->procedures; list2; list2 = list2->next)
             {
diff --git a/app/widgets/gimppropwidgets.c b/app/widgets/gimppropwidgets.c
index 8af6f04..3023ac0 100644
--- a/app/widgets/gimppropwidgets.c
+++ b/app/widgets/gimppropwidgets.c
@@ -1627,19 +1627,15 @@ gimp_prop_profile_combo_box_new (GObject      *config,
 
   if (G_IS_PARAM_SPEC_STRING (param_spec))
     {
-      gchar *value;
       gchar *path;
 
       g_object_get (config,
-                    property_name, &value,
+                    property_name, &path,
                     NULL);
 
-      path = value ? gimp_config_path_expand (value, TRUE, NULL) : NULL;
-      g_free (value);
-
       if (path)
         {
-          file = g_file_new_for_path (path);
+          file = gimp_file_new_for_config_path (path, NULL);
           g_free (path);
         }
     }
@@ -1704,7 +1700,7 @@ gimp_prop_profile_combo_callback (GimpColorProfileComboBox *combo,
       gchar *path = NULL;
 
       if (file)
-        path = g_file_get_path (file);
+        path = gimp_file_get_config_path (file, NULL);
 
       g_object_set (config,
                     param_spec->name, path,
@@ -1737,19 +1733,15 @@ gimp_prop_profile_combo_notify (GObject                  *config,
 
   if (G_IS_PARAM_SPEC_STRING (param_spec))
     {
-      gchar *value;
       gchar *path;
 
       g_object_get (config,
-                    param_spec->name, &value,
+                    param_spec->name, &path,
                     NULL);
 
-      path = value ? gimp_config_path_expand (value, TRUE, NULL) : NULL;
-      g_free (value);
-
       if (path)
         {
-          file = g_file_new_for_path (path);
+          file = gimp_file_new_for_config_path (path, NULL);
           g_free (path);
         }
     }
diff --git a/libgimpwidgets/gimpcolorprofilestore.c b/libgimpwidgets/gimpcolorprofilestore.c
index 43a0a67..62f8636 100644
--- a/libgimpwidgets/gimpcolorprofilestore.c
+++ b/libgimpwidgets/gimpcolorprofilestore.c
@@ -639,14 +639,7 @@ gimp_color_profile_store_load_profile (GimpColorProfileStore *store,
         }
       else
         {
-          gchar *expand = gimp_config_path_expand (path, TRUE, NULL);
-
-          if (expand)
-            {
-              file = g_file_new_for_path (expand);
-
-              g_free (expand);
-            }
+          file = gimp_file_new_for_config_path (path, NULL);
         }
 
       if (file)
@@ -779,21 +772,14 @@ gimp_color_profile_store_save (GimpColorProfileStore  *store,
     {
       if (files[i] && labels[i])
         {
-          gchar *path = g_file_get_path (files[i]);
+          gchar *path = gimp_file_get_config_path (files[i], NULL);
 
           if (path)
             {
-              gchar *unexpand = gimp_config_path_unexpand (path, TRUE, NULL);
-
-              if (unexpand)
-                {
-                  gimp_config_writer_open (writer, "color-profile");
-                  gimp_config_writer_string (writer, labels[i]);
-                  gimp_config_writer_string (writer, unexpand);
-                  gimp_config_writer_close (writer);
-
-                  g_free (unexpand);
-                }
+              gimp_config_writer_open (writer, "color-profile");
+              gimp_config_writer_string (writer, labels[i]);
+              gimp_config_writer_string (writer, path);
+              gimp_config_writer_close (writer);
 
               g_free (path);
             }
diff --git a/libgimpwidgets/gimppropwidgets.c b/libgimpwidgets/gimppropwidgets.c
index 85da9f8..722af62 100644
--- a/libgimpwidgets/gimppropwidgets.c
+++ b/libgimpwidgets/gimppropwidgets.c
@@ -2374,26 +2374,29 @@ gimp_prop_file_chooser_button_setup (GtkWidget  *button,
                                      GParamSpec *param_spec)
 {
   gchar *value;
-  gchar *filename;
+  GFile *file = NULL;
 
   g_object_get (config,
                 param_spec->name, &value,
                 NULL);
 
-  filename = value ? gimp_config_path_expand (value, TRUE, NULL) : NULL;
-  g_free (value);
+  if (value)
+    {
+      file = gimp_file_new_for_config_path (value, NULL);
+      g_free (value);
+    }
 
-  if (filename)
+  if (file)
     {
-      gchar *basename = g_path_get_basename (filename);
+      gchar *basename = g_file_get_basename (file);
 
       if (basename && basename[0] == '.')
         gtk_file_chooser_set_show_hidden (GTK_FILE_CHOOSER (button), TRUE);
 
       g_free (basename);
 
-      gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (button), filename);
-      g_free (filename);
+      gtk_file_chooser_set_file (GTK_FILE_CHOOSER (button), file, NULL);
+      g_object_unref (file);
     }
 
   set_param_spec (G_OBJECT (button), button, param_spec);
@@ -2414,29 +2417,34 @@ gimp_prop_file_chooser_button_callback (GtkFileChooser *button,
                                         GObject        *config)
 {
   GParamSpec *param_spec;
+  GFile      *file;
+  gchar      *path = NULL;
   gchar      *value;
-  gchar      *utf8;
 
   param_spec = get_param_spec (G_OBJECT (button));
   if (! param_spec)
     return;
 
-  value = gtk_file_chooser_get_filename (button);
-  utf8 = value ? gimp_config_path_unexpand (value, TRUE, NULL) : NULL;
-  g_free (value);
+  file = gtk_file_chooser_get_file (button);
+
+  if (file)
+    {
+      path = gimp_file_get_config_path (file, NULL);
+      g_object_unref (file);
+    }
 
   g_object_get (config,
                 param_spec->name, &value,
                 NULL);
 
-  if (! (value && utf8 && strcmp (value, utf8) == 0))
+  if (! (path && value && strcmp (path, value) == 0))
     {
       g_signal_handlers_block_by_func (config,
                                        gimp_prop_file_chooser_button_notify,
                                        button);
 
       g_object_set (config,
-                    param_spec->name, utf8,
+                    param_spec->name, path,
                     NULL);
 
       g_signal_handlers_unblock_by_func (config,
@@ -2444,8 +2452,8 @@ gimp_prop_file_chooser_button_callback (GtkFileChooser *button,
                                          button);
     }
 
+  g_free (path);
   g_free (value);
-  g_free (utf8);
 }
 
 static void
@@ -2454,29 +2462,35 @@ gimp_prop_file_chooser_button_notify (GObject        *config,
                                       GtkFileChooser *button)
 {
   gchar *value;
-  gchar *filename;
+  GFile *file = NULL;
 
   g_object_get (config,
                 param_spec->name, &value,
                 NULL);
 
-  filename = value ? gimp_config_path_expand (value, TRUE, NULL) : NULL;
-  g_free (value);
+  if (value)
+    {
+      file = gimp_file_new_for_config_path (value, NULL);
+      g_free (value);
+    }
 
   g_signal_handlers_block_by_func (button,
                                    gimp_prop_file_chooser_button_callback,
                                    config);
 
-  if (filename)
-    gtk_file_chooser_set_filename (button, filename);
+  if (file)
+    {
+      gtk_file_chooser_set_file (button, file, NULL);
+      g_object_unref (file);
+    }
   else
-    gtk_file_chooser_unselect_all (button);
+    {
+      gtk_file_chooser_unselect_all (button);
+    }
 
   g_signal_handlers_unblock_by_func (button,
                                      gimp_prop_file_chooser_button_callback,
                                      config);
-
-  g_free (filename);
 }
 
 


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