gimp r25714 - in trunk: . app/gegl app/tools
- From: mitch svn gnome org
- To: svn-commits-list gnome org
- Subject: gimp r25714 - in trunk: . app/gegl app/tools
- Date: Mon, 19 May 2008 18:22:01 +0000 (UTC)
Author: mitch
Date: Mon May 19 18:22:01 2008
New Revision: 25714
URL: http://svn.gnome.org/viewvc/gimp?rev=25714&view=rev
Log:
2008-05-19 Michael Natterer <mitch gimp org>
Unabstract image map tool settings load/save a bit before it's
turned into generic load/save for all image map tools:
* app/gegl/gimpcurvesconfig.[ch]
* app/gegl/gimplevelsconfig.[ch]: add GError** to save_cruft()
functions.
* app/tools/gimpimagemaptool.[ch]: add GError to
::settings_save(), changed "file" parameter of ::settings_load()
and ::settings_save() to "filename", removed
gimp_image_map_tool_load_save() utility function and moved the
code to the settings_load() and settings_save() utility functions.
* app/tools/gimpcurvestool.c
* app/tools/gimplevelstool.c: changed accordingly. Open and close
the settings files here.
Modified:
trunk/ChangeLog
trunk/app/gegl/gimpcurvesconfig.c
trunk/app/gegl/gimpcurvesconfig.h
trunk/app/gegl/gimplevelsconfig.c
trunk/app/gegl/gimplevelsconfig.h
trunk/app/tools/gimpcurvestool.c
trunk/app/tools/gimpimagemaptool.c
trunk/app/tools/gimpimagemaptool.h
trunk/app/tools/gimplevelstool.c
Modified: trunk/app/gegl/gimpcurvesconfig.c
==============================================================================
--- trunk/app/gegl/gimpcurvesconfig.c (original)
+++ trunk/app/gegl/gimpcurvesconfig.c Mon May 19 18:22:01 2008
@@ -433,14 +433,16 @@
}
gboolean
-gimp_curves_config_save_cruft (GimpCurvesConfig *config,
- gpointer fp)
+gimp_curves_config_save_cruft (GimpCurvesConfig *config,
+ gpointer fp,
+ GError **error)
{
FILE *file = fp;
gint i;
g_return_val_if_fail (GIMP_IS_CURVES_CONFIG (config), FALSE);
g_return_val_if_fail (file != NULL, FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
fprintf (file, "# GIMP Curves File\n");
Modified: trunk/app/gegl/gimpcurvesconfig.h
==============================================================================
--- trunk/app/gegl/gimpcurvesconfig.h (original)
+++ trunk/app/gegl/gimpcurvesconfig.h Mon May 19 18:22:01 2008
@@ -59,7 +59,8 @@
gpointer fp,
GError **error);
gboolean gimp_curves_config_save_cruft (GimpCurvesConfig *config,
- gpointer fp);
+ gpointer fp,
+ GError **error);
/* temp cruft */
Modified: trunk/app/gegl/gimplevelsconfig.c
==============================================================================
--- trunk/app/gegl/gimplevelsconfig.c (original)
+++ trunk/app/gegl/gimplevelsconfig.c Mon May 19 18:22:01 2008
@@ -710,14 +710,16 @@
}
gboolean
-gimp_levels_config_save_cruft (GimpLevelsConfig *config,
- gpointer fp)
+gimp_levels_config_save_cruft (GimpLevelsConfig *config,
+ gpointer fp,
+ GError **error)
{
FILE *file = fp;
gint i;
g_return_val_if_fail (GIMP_IS_LEVELS_CONFIG (config), FALSE);
g_return_val_if_fail (file != NULL, FALSE);
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
fprintf (file, "# GIMP Levels File\n");
Modified: trunk/app/gegl/gimplevelsconfig.h
==============================================================================
--- trunk/app/gegl/gimplevelsconfig.h (original)
+++ trunk/app/gegl/gimplevelsconfig.h Mon May 19 18:22:01 2008
@@ -80,7 +80,8 @@
gpointer fp,
GError **error);
gboolean gimp_levels_config_save_cruft (GimpLevelsConfig *config,
- gpointer fp);
+ gpointer fp,
+ GError **error);
/* temp cruft */
Modified: trunk/app/tools/gimpcurvestool.c
==============================================================================
--- trunk/app/tools/gimpcurvestool.c (original)
+++ trunk/app/tools/gimpcurvestool.c Mon May 19 18:22:01 2008
@@ -18,9 +18,13 @@
#include "config.h"
+#include <errno.h>
+
+#include <glib/gstdio.h>
#include <gegl.h>
#include <gtk/gtk.h>
+#include "libgimpbase/gimpbase.h"
#include "libgimpcolor/gimpcolor.h"
#include "libgimpconfig/gimpconfig.h"
#include "libgimpwidgets/gimpwidgets.h"
@@ -91,10 +95,11 @@
static void gimp_curves_tool_dialog (GimpImageMapTool *image_map_tool);
static void gimp_curves_tool_reset (GimpImageMapTool *image_map_tool);
static gboolean gimp_curves_tool_settings_load (GimpImageMapTool *image_map_tool,
- gpointer fp,
+ const gchar *filename,
GError **error);
static gboolean gimp_curves_tool_settings_save (GimpImageMapTool *image_map_tool,
- gpointer fp);
+ const gchar *filename,
+ GError **error);
static void gimp_curves_tool_config_notify (GObject *object,
GParamSpec *pspec,
@@ -596,21 +601,56 @@
static gboolean
gimp_curves_tool_settings_load (GimpImageMapTool *image_map_tool,
- gpointer fp,
+ const gchar *filename,
GError **error)
{
GimpCurvesTool *tool = GIMP_CURVES_TOOL (image_map_tool);
+ FILE *file;
+ gboolean success;
+
+ file = g_fopen (filename, "rt");
+
+ if (! file)
+ {
+ g_set_error (error, G_FILE_ERROR, g_file_error_from_errno (errno),
+ _("Could not open '%s' for reading: %s"),
+ gimp_filename_to_utf8 (filename),
+ g_strerror (errno));
+ return FALSE;
+ }
+
+ success = gimp_curves_config_load_cruft (tool->config, file, error);
+
+ fclose (file);
- return gimp_curves_config_load_cruft (tool->config, fp, error);
+ return success;
}
static gboolean
-gimp_curves_tool_settings_save (GimpImageMapTool *image_map_tool,
- gpointer fp)
+gimp_curves_tool_settings_save (GimpImageMapTool *image_map_tool,
+ const gchar *filename,
+ GError **error)
{
GimpCurvesTool *tool = GIMP_CURVES_TOOL (image_map_tool);
+ FILE *file;
+ gboolean success;
+
+ file = g_fopen (filename, "wt");
+
+ if (! file)
+ {
+ g_set_error (error, G_FILE_ERROR, g_file_error_from_errno (errno),
+ _("Could not open '%s' for writing: %s"),
+ gimp_filename_to_utf8 (filename),
+ g_strerror (errno));
+ return FALSE;
+ }
+
+ success = gimp_curves_config_save_cruft (tool->config, file, error);
+
+ fclose (file);
- return gimp_curves_config_save_cruft (tool->config, fp);
+ return success;
}
static void
Modified: trunk/app/tools/gimpimagemaptool.c
==============================================================================
--- trunk/app/tools/gimpimagemaptool.c (original)
+++ trunk/app/tools/gimpimagemaptool.c Mon May 19 18:22:01 2008
@@ -634,32 +634,64 @@
}
static gboolean
-gimp_image_map_tool_settings_load (GimpImageMapTool *tool,
- gpointer file,
- GError **error)
+gimp_image_map_tool_settings_load (GimpImageMapTool *tool,
+ const gchar *filename)
{
GimpImageMapToolClass *tool_class = GIMP_IMAGE_MAP_TOOL_GET_CLASS (tool);
+ GError *error = NULL;
g_return_val_if_fail (tool_class->settings_load != NULL, FALSE);
- if (tool_class->settings_load (tool, file, error))
+ if (! tool_class->settings_load (tool, filename, &error))
{
- gimp_image_map_tool_preview (tool);
- return TRUE;
+ gimp_message (GIMP_TOOL (tool)->tool_info->gimp, G_OBJECT (tool->shell),
+ GIMP_MESSAGE_ERROR, error->message);
+ g_clear_error (&error);
+
+ return FALSE;
}
- return FALSE;
+ gimp_image_map_tool_preview (tool);
+
+ g_object_set (GIMP_TOOL_GET_OPTIONS (tool),
+ "settings", filename,
+ NULL);
+
+ return TRUE;
}
static gboolean
gimp_image_map_tool_settings_save (GimpImageMapTool *tool,
- gpointer file)
+ const gchar *filename)
{
GimpImageMapToolClass *tool_class = GIMP_IMAGE_MAP_TOOL_GET_CLASS (tool);
+ GError *error = NULL;
+ gchar *display_name;
g_return_val_if_fail (tool_class->settings_save != NULL, FALSE);
- return tool_class->settings_save (tool, file);
+ if (! tool_class->settings_save (tool, filename, &error))
+ {
+ gimp_message (GIMP_TOOL (tool)->tool_info->gimp, G_OBJECT (tool->shell),
+ GIMP_MESSAGE_ERROR, error->message);
+ g_clear_error (&error);
+
+ return FALSE;
+ }
+
+ display_name = g_filename_display_name (filename);
+ gimp_message (GIMP_TOOL (tool)->tool_info->gimp,
+ G_OBJECT (GIMP_TOOL (tool)->display),
+ GIMP_MESSAGE_INFO,
+ _("Settings saved to '%s'"),
+ display_name);
+ g_free (display_name);
+
+ g_object_set (GIMP_TOOL_GET_OPTIONS (tool),
+ "settings", filename,
+ NULL);
+
+ return TRUE;
}
static void
@@ -870,61 +902,6 @@
}
static void
-gimp_image_map_tool_load_save (GimpImageMapTool *tool,
- const gchar *filename,
- gboolean save)
-{
- FILE *file;
- GError *error = NULL;
-
- file = g_fopen (filename, save ? "wt" : "rt");
-
- if (! file)
- {
- const gchar *format = save ?
- _("Could not open '%s' for writing: %s") :
- _("Could not open '%s' for reading: %s");
-
- gimp_message (GIMP_TOOL (tool)->tool_info->gimp, G_OBJECT (tool->shell),
- GIMP_MESSAGE_ERROR,
- format,
- gimp_filename_to_utf8 (filename),
- g_strerror (errno));
- return;
- }
-
- g_object_set (GIMP_TOOL_GET_OPTIONS (tool),
- "settings", filename,
- NULL);
-
- if (save)
- {
- if (gimp_image_map_tool_settings_save (tool, file))
- {
- gchar *name = g_filename_display_name (filename);
-
- gimp_message (GIMP_TOOL (tool)->tool_info->gimp,
- G_OBJECT (GIMP_TOOL (tool)->display),
- GIMP_MESSAGE_INFO,
- _("Settings saved to '%s'"),
- name);
- g_free (name);
- }
- }
- else if (! gimp_image_map_tool_settings_load (tool, file, &error))
- {
- gimp_message (GIMP_TOOL (tool)->tool_info->gimp, G_OBJECT (tool->shell),
- GIMP_MESSAGE_ERROR,
- _("Error reading '%s': %s"),
- gimp_filename_to_utf8 (filename),
- error->message);
- g_error_free (error);
- }
-
- fclose (file);
-}
-
-static void
settings_dialog_response (GtkWidget *dialog,
gint response_id,
GimpImageMapTool *tool)
@@ -939,7 +916,10 @@
filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
- gimp_image_map_tool_load_save (tool, filename, save);
+ if (save)
+ gimp_image_map_tool_settings_save (tool, filename);
+ else
+ gimp_image_map_tool_settings_load (tool, filename);
g_free (filename);
}
@@ -976,7 +956,7 @@
if (filename)
{
- gimp_image_map_tool_load_save (tool, filename, FALSE);
+ gimp_image_map_tool_settings_load (tool, filename);
g_free (filename);
}
else
@@ -1010,7 +990,7 @@
if (filename)
{
- gimp_image_map_tool_load_save (tool, filename, TRUE);
+ gimp_image_map_tool_settings_save (tool, filename);
g_free (filename);
}
else
Modified: trunk/app/tools/gimpimagemaptool.h
==============================================================================
--- trunk/app/tools/gimpimagemaptool.h (original)
+++ trunk/app/tools/gimpimagemaptool.h Mon May 19 18:22:01 2008
@@ -79,10 +79,11 @@
void (* reset) (GimpImageMapTool *image_map_tool);
gboolean (* settings_load) (GimpImageMapTool *image_map_tool,
- gpointer file,
+ const gchar *filename,
GError **error);
gboolean (* settings_save) (GimpImageMapTool *image_map_tool,
- gpointer file);
+ const gchar *filename,
+ GError **error);
};
Modified: trunk/app/tools/gimplevelstool.c
==============================================================================
--- trunk/app/tools/gimplevelstool.c (original)
+++ trunk/app/tools/gimplevelstool.c Mon May 19 18:22:01 2008
@@ -18,9 +18,13 @@
#include "config.h"
+#include <errno.h>
+
+#include <glib/gstdio.h>
#include <gegl.h>
#include <gtk/gtk.h>
+#include "libgimpbase/gimpbase.h"
#include "libgimpmath/gimpmath.h"
#include "libgimpconfig/gimpconfig.h"
#include "libgimpwidgets/gimpwidgets.h"
@@ -84,10 +88,11 @@
GimpLevelsTool *tool);
static void gimp_levels_tool_reset (GimpImageMapTool *im_tool);
static gboolean gimp_levels_tool_settings_load (GimpImageMapTool *im_tool,
- gpointer fp,
+ const gchar *filename,
GError **error);
static gboolean gimp_levels_tool_settings_save (GimpImageMapTool *im_tool,
- gpointer fp);
+ const gchar *filename,
+ GError **error);
static void gimp_levels_tool_config_notify (GObject *object,
GParamSpec *pspec,
@@ -718,21 +723,56 @@
static gboolean
gimp_levels_tool_settings_load (GimpImageMapTool *image_map_tool,
- gpointer fp,
+ const gchar *filename,
GError **error)
{
GimpLevelsTool *tool = GIMP_LEVELS_TOOL (image_map_tool);
+ FILE *file;
+ gboolean success;
+
+ file = g_fopen (filename, "rt");
+
+ if (! file)
+ {
+ g_set_error (error, G_FILE_ERROR, g_file_error_from_errno (errno),
+ _("Could not open '%s' for reading: %s"),
+ gimp_filename_to_utf8 (filename),
+ g_strerror (errno));
+ return FALSE;
+ }
+
+ success = gimp_levels_config_load_cruft (tool->config, file, error);
+
+ fclose (file);
- return gimp_levels_config_load_cruft (tool->config, fp, error);
+ return success;
}
static gboolean
-gimp_levels_tool_settings_save (GimpImageMapTool *image_map_tool,
- gpointer fp)
+gimp_levels_tool_settings_save (GimpImageMapTool *image_map_tool,
+ const gchar *filename,
+ GError **error)
{
GimpLevelsTool *tool = GIMP_LEVELS_TOOL (image_map_tool);
+ FILE *file;
+ gboolean success;
+
+ file = g_fopen (filename, "wt");
+
+ if (! file)
+ {
+ g_set_error (error, G_FILE_ERROR, g_file_error_from_errno (errno),
+ _("Could not open '%s' for writing: %s"),
+ gimp_filename_to_utf8 (filename),
+ g_strerror (errno));
+ return FALSE;
+ }
+
+ success = gimp_levels_config_save_cruft (tool->config, file, error);
+
+ fclose (file);
- return gimp_levels_config_save_cruft (tool->config, fp);
+ return success;
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]