made the lists of recent settings persistent. Note that the settings of
2008-05-18 Michael Natterer <mitch@gimp.org> * app/tools/gimpimagemaptool.c: made the lists of recent settings persistent. Note that the settings of tools that modify multiple channels or ranges are saved incompletely because their settings still lack custom serialize() implementations. Work in progress. svn path=/trunk/; revision=25702
This commit is contained in:

committed by
Michael Natterer

parent
173905b1e1
commit
4d0b4464ac
@ -1,3 +1,10 @@
|
||||
2008-05-18 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* app/tools/gimpimagemaptool.c: made the lists of recent settings
|
||||
persistent. Note that the settings of tools that modify multiple
|
||||
channels or ranges are saved incompletely because their settings
|
||||
still lack custom serialize() implementations. Work in progress.
|
||||
|
||||
2008-05-18 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* app/core/gimptoolinfo.[ch]: add
|
||||
|
@ -328,6 +328,33 @@ gimp_image_map_tool_initialize (GimpTool *tool,
|
||||
GtkWidget *label;
|
||||
GtkWidget *combo;
|
||||
|
||||
if (gimp_container_num_children (klass->recent_settings) == 0)
|
||||
{
|
||||
gchar *filename;
|
||||
GError *error = NULL;
|
||||
|
||||
filename = gimp_tool_info_build_options_filename (tool->tool_info,
|
||||
".settings");
|
||||
|
||||
if (tool->tool_info->gimp->be_verbose)
|
||||
g_print ("Parsing '%s'\n", gimp_filename_to_utf8 (filename));
|
||||
|
||||
if (! gimp_config_deserialize_file (GIMP_CONFIG (klass->recent_settings),
|
||||
filename,
|
||||
NULL, &error))
|
||||
{
|
||||
if (error->code != GIMP_CONFIG_ERROR_OPEN_ENOENT)
|
||||
gimp_message (tool->tool_info->gimp, NULL, GIMP_MESSAGE_ERROR,
|
||||
"%s", error->message);
|
||||
|
||||
g_clear_error (&error);
|
||||
}
|
||||
|
||||
gimp_list_reverse (GIMP_LIST (klass->recent_settings));
|
||||
|
||||
g_free (filename);
|
||||
}
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 4);
|
||||
gtk_box_pack_start (GTK_BOX (image_map_tool->main_vbox), hbox,
|
||||
FALSE, FALSE, 0);
|
||||
@ -648,6 +675,7 @@ gimp_image_map_tool_flush (GimpImageMap *image_map,
|
||||
static void
|
||||
gimp_image_map_tool_add_recent (GimpImageMapTool *image_map_tool)
|
||||
{
|
||||
GimpTool *tool = GIMP_TOOL (image_map_tool);
|
||||
GimpContainer *recent;
|
||||
GimpConfig *current;
|
||||
GimpConfig *config = NULL;
|
||||
@ -656,6 +684,8 @@ gimp_image_map_tool_add_recent (GimpImageMapTool *image_map_tool)
|
||||
struct tm tm;
|
||||
gchar buf[64];
|
||||
gchar *name;
|
||||
gchar *filename;
|
||||
GError *error = NULL;
|
||||
|
||||
recent = GIMP_IMAGE_MAP_TOOL_GET_CLASS (image_map_tool)->recent_settings;
|
||||
current = GIMP_CONFIG (image_map_tool->config);
|
||||
@ -686,6 +716,25 @@ gimp_image_map_tool_add_recent (GimpImageMapTool *image_map_tool)
|
||||
name = g_locale_to_utf8 (buf, -1, NULL, NULL, NULL);
|
||||
gimp_object_set_name (GIMP_OBJECT (config), name);
|
||||
g_free (name);
|
||||
|
||||
filename = gimp_tool_info_build_options_filename (tool->tool_info,
|
||||
".settings");
|
||||
|
||||
if (tool->tool_info->gimp->be_verbose)
|
||||
g_print ("Writing '%s'\n", gimp_filename_to_utf8 (filename));
|
||||
|
||||
if (! gimp_config_serialize_to_file (GIMP_CONFIG (recent),
|
||||
filename,
|
||||
"tool settings",
|
||||
"end of tool settings",
|
||||
NULL, &error))
|
||||
{
|
||||
gimp_message (tool->tool_info->gimp, NULL, GIMP_MESSAGE_ERROR,
|
||||
"%s", error->message);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
|
||||
g_free (filename);
|
||||
}
|
||||
|
||||
static void
|
||||
|
Reference in New Issue
Block a user