app: return a GFile from gimp_tool_info_build_options_filename()

and rename it to gimp_tool_info_get_options_file().
This commit is contained in:
Michael Natterer 2014-07-01 15:41:12 +02:00
parent 8c8135a881
commit a31cb02405
4 changed files with 56 additions and 58 deletions

View File

@ -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;
}

View File

@ -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);

View File

@ -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

View File

@ -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);