[gimp] app: return a GFile from gimp_tool_info_build_options_filename()
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: return a GFile from gimp_tool_info_build_options_filename()
- Date: Tue, 1 Jul 2014 13:44:24 +0000 (UTC)
commit a31cb024053250ea4645b91d80f38b0f0e14b239
Author: Michael Natterer <mitch gimp org>
Date: Tue Jul 1 15:41:12 2014 +0200
app: return a GFile from gimp_tool_info_build_options_filename()
and rename it to gimp_tool_info_get_options_file().
app/core/gimptoolinfo.c | 25 +++++++--------
app/core/gimptoolinfo.h | 3 +-
app/core/gimptooloptions.c | 70 ++++++++++++++++++++++-------------------
app/tools/gimpimagemaptool.c | 16 +++------
4 files changed, 56 insertions(+), 58 deletions(-)
---
diff --git a/app/core/gimptoolinfo.c b/app/core/gimptoolinfo.c
index de67dec..ce48124 100644
--- a/app/core/gimptoolinfo.c
+++ b/app/core/gimptoolinfo.c
@@ -333,22 +333,18 @@ gimp_tool_info_get_standard (Gimp *gimp)
return gimp->standard_tool_info;
}
-gchar *
-gimp_tool_info_build_options_filename (GimpToolInfo *tool_info,
- const gchar *suffix)
+GFile *
+gimp_tool_info_get_options_file (GimpToolInfo *tool_info,
+ const gchar *suffix)
{
- const gchar *name;
- gchar *filename;
- gchar *basename;
+ gchar *filename;
+ gchar *basename;
+ GFile *file;
g_return_val_if_fail (GIMP_IS_TOOL_INFO (tool_info), NULL);
- name = gimp_object_get_name (tool_info);
-
- if (suffix)
- basename = g_strconcat (name, suffix, NULL);
- else
- basename = g_strdup (name);
+ /* also works for a NULL suffix */
+ basename = g_strconcat (gimp_object_get_name (tool_info), suffix, NULL);
filename = g_build_filename (gimp_directory (),
"tool-options",
@@ -356,5 +352,8 @@ gimp_tool_info_build_options_filename (GimpToolInfo *tool_info,
NULL);
g_free (basename);
- return filename;
+ file = g_file_new_for_path (filename);
+ g_free (filename);
+
+ return file;
}
diff --git a/app/core/gimptoolinfo.h b/app/core/gimptoolinfo.h
index 6275677..b2fdc55 100644
--- a/app/core/gimptoolinfo.h
+++ b/app/core/gimptoolinfo.h
@@ -84,8 +84,7 @@ void gimp_tool_info_set_standard (Gimp *gimp,
GimpToolInfo *tool_info);
GimpToolInfo * gimp_tool_info_get_standard (Gimp *gimp);
-gchar *
- gimp_tool_info_build_options_filename (GimpToolInfo *tool_info,
+GFile * gimp_tool_info_get_options_file (GimpToolInfo *tool_info,
const gchar *suffix);
diff --git a/app/core/gimptooloptions.c b/app/core/gimptooloptions.c
index 94e6b9e..017b2f9 100644
--- a/app/core/gimptooloptions.c
+++ b/app/core/gimptooloptions.c
@@ -17,8 +17,6 @@
#include "config.h"
-#include <errno.h>
-
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
@@ -298,7 +296,7 @@ gboolean
gimp_tool_options_serialize (GimpToolOptions *tool_options,
GError **error)
{
- gchar *filename;
+ GFile *file;
gchar *header;
gchar *footer;
gboolean retval;
@@ -306,27 +304,27 @@ gimp_tool_options_serialize (GimpToolOptions *tool_options,
g_return_val_if_fail (GIMP_IS_TOOL_OPTIONS (tool_options), FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
- filename = gimp_tool_info_build_options_filename (tool_options->tool_info,
- NULL);
+ file = gimp_tool_info_get_options_file (tool_options->tool_info, NULL);
if (tool_options->tool_info->gimp->be_verbose)
- g_print ("Writing '%s'\n", gimp_filename_to_utf8 (filename));
+ g_print ("Writing '%s'\n", gimp_file_get_utf8_name (file));
header = g_strdup_printf ("GIMP %s options",
gimp_object_get_name (tool_options->tool_info));
footer = g_strdup_printf ("end of %s options",
gimp_object_get_name (tool_options->tool_info));
- retval = gimp_config_serialize_to_file (GIMP_CONFIG (tool_options),
- filename,
- header, footer,
- NULL,
- error);
+ retval = gimp_config_serialize_to_gfile (GIMP_CONFIG (tool_options),
+ file,
+ header, footer,
+ NULL,
+ error);
- g_free (filename);
g_free (header);
g_free (footer);
+ g_object_unref (file);
+
return retval;
}
@@ -334,24 +332,23 @@ gboolean
gimp_tool_options_deserialize (GimpToolOptions *tool_options,
GError **error)
{
- gchar *filename;
+ GFile *file;
gboolean retval;
g_return_val_if_fail (GIMP_IS_TOOL_OPTIONS (tool_options), FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
- filename = gimp_tool_info_build_options_filename (tool_options->tool_info,
- NULL);
+ file = gimp_tool_info_get_options_file (tool_options->tool_info, NULL);
if (tool_options->tool_info->gimp->be_verbose)
- g_print ("Parsing '%s'\n", gimp_filename_to_utf8 (filename));
+ g_print ("Parsing '%s'\n", gimp_file_get_utf8_name (file));
- retval = gimp_config_deserialize_file (GIMP_CONFIG (tool_options),
- filename,
- NULL,
- error);
+ retval = gimp_config_deserialize_gfile (GIMP_CONFIG (tool_options),
+ file,
+ NULL,
+ error);
- g_free (filename);
+ g_object_unref (file);
return retval;
}
@@ -360,26 +357,35 @@ gboolean
gimp_tool_options_delete (GimpToolOptions *tool_options,
GError **error)
{
- gchar *filename;
- gboolean retval = TRUE;
+ GFile *file;
+ GError *my_error = NULL;
+ gboolean success = TRUE;
g_return_val_if_fail (GIMP_IS_TOOL_OPTIONS (tool_options), FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
- filename = gimp_tool_info_build_options_filename (tool_options->tool_info,
- NULL);
+ file = gimp_tool_info_get_options_file (tool_options->tool_info, NULL);
- if (g_unlink (filename) != 0 && errno != ENOENT)
+ if (tool_options->tool_info->gimp->be_verbose)
+ g_print ("Deleting '%s'\n", gimp_file_get_utf8_name (file));
+
+ if (! g_file_delete (file, NULL, &my_error))
{
- retval = FALSE;
- g_set_error (error, GIMP_ERROR, GIMP_FAILED,
- _("Deleting \"%s\" failed: %s"),
- gimp_filename_to_utf8 (filename), g_strerror (errno));
+ if (my_error->code != G_IO_ERROR_NOT_FOUND)
+ {
+ success = FALSE;
+
+ g_set_error (error, GIMP_ERROR, GIMP_FAILED,
+ _("Deleting \"%s\" failed: %s"),
+ gimp_file_get_utf8_name (file), my_error->message);
+ }
+
+ g_clear_error (&my_error);
}
- g_free (filename);
+ g_object_unref (file);
- return retval;
+ return success;
}
void
diff --git a/app/tools/gimpimagemaptool.c b/app/tools/gimpimagemaptool.c
index 26e079d..f9bd425 100644
--- a/app/tools/gimpimagemaptool.c
+++ b/app/tools/gimpimagemaptool.c
@@ -372,17 +372,13 @@ gimp_image_map_tool_initialize (GimpTool *tool,
if (image_map_tool->config && klass->settings_name)
{
GtkWidget *settings_ui;
- gchar *settings_filename;
gchar *default_folder;
GFile *settings_file;
- settings_filename =
- gimp_tool_info_build_options_filename (tool_info, ".settings");
-
- default_folder =
- g_build_filename (gimp_directory (), klass->settings_name, NULL);
-
- settings_file = g_file_new_for_path (settings_filename);
+ settings_file = gimp_tool_info_get_options_file (tool_info,
+ ".settings");
+ default_folder = g_build_filename (gimp_directory (),
+ klass->settings_name, NULL);
settings_ui = klass->get_settings_ui (image_map_tool,
klass->recent_settings,
@@ -393,10 +389,8 @@ gimp_image_map_tool_initialize (GimpTool *tool,
default_folder,
&image_map_tool->settings_box);
- g_object_unref (settings_file);
-
- g_free (settings_filename);
g_free (default_folder);
+ g_object_unref (settings_file);
gtk_box_pack_start (GTK_BOX (vbox), settings_ui, FALSE, FALSE, 0);
gtk_widget_show (settings_ui);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]