reset to factory defaults instead of popping up a warning dialog when the

2006-12-11  Sven Neumann  <sven@gimp.org>

	* plug-ins/common/png.c: reset to factory defaults instead of
	popping up a warning dialog when the user clicks "Load Defaults"
	and hasn't saved default values yet (bug #384673).
This commit is contained in:
Sven Neumann 2006-12-11 13:28:00 +00:00 committed by Sven Neumann
parent 35e029df08
commit d4bc2aa0e3
2 changed files with 45 additions and 40 deletions

View File

@ -1,3 +1,9 @@
2006-12-11 Sven Neumann <sven@gimp.org>
* plug-ins/common/png.c: reset to factory defaults instead of
popping up a warning dialog when the user clicks "Load Defaults"
and hasn't saved default values yet (bug #384673).
2006-12-11 Sven Neumann <sven@gimp.org>
* app/actions/tool-options-commands.c

View File

@ -143,7 +143,7 @@ static gboolean ia_has_transparent_pixels (GimpDrawable *drawable);
static gint find_unused_ia_color (GimpDrawable *drawable,
gint *colors);
static gboolean load_defaults (void);
static void load_defaults (void);
static void save_defaults (void);
static void load_gui_defaults (PngSaveGui *pg);
@ -159,7 +159,7 @@ const GimpPlugInInfo PLUG_IN_INFO =
run
};
PngSaveVals pngvals =
static const PngSaveVals defaults =
{
FALSE,
TRUE,
@ -172,6 +172,9 @@ PngSaveVals pngvals =
9
};
static PngSaveVals pngvals;
/*
* 'main()' - Main entry - just call gimp_main()...
*/
@ -1852,46 +1855,45 @@ save_dialog_response (GtkWidget *widget,
}
}
static gboolean
static void
load_defaults (void)
{
GimpParasite *parasite;
gchar *def_str;
PngSaveVals tmpvals;
gint num_fields;
parasite = gimp_parasite_find (PNG_DEFAULTS_PARASITE);
if (! parasite)
return FALSE;
def_str = g_strndup (gimp_parasite_data (parasite),
gimp_parasite_data_size (parasite));
gimp_parasite_free (parasite);
num_fields = sscanf (def_str, "%d %d %d %d %d %d %d %d %d",
&tmpvals.interlaced,
&tmpvals.bkgd,
&tmpvals.gama,
&tmpvals.offs,
&tmpvals.phys,
&tmpvals.time,
&tmpvals.comment,
&tmpvals.save_transp_pixels,
&tmpvals.compression_level);
g_free (def_str);
if (num_fields == 9)
if (parasite)
{
memcpy (&pngvals, &tmpvals, sizeof (tmpvals));
return TRUE;
}
else
{
return FALSE;
gchar *def_str;
PngSaveVals tmpvals;
gint num_fields;
def_str = g_strndup (gimp_parasite_data (parasite),
gimp_parasite_data_size (parasite));
gimp_parasite_free (parasite);
num_fields = sscanf (def_str, "%d %d %d %d %d %d %d %d %d",
&tmpvals.interlaced,
&tmpvals.bkgd,
&tmpvals.gama,
&tmpvals.offs,
&tmpvals.phys,
&tmpvals.time,
&tmpvals.comment,
&tmpvals.save_transp_pixels,
&tmpvals.compression_level);
g_free (def_str);
if (num_fields == 9)
{
memcpy (&pngvals, &tmpvals, sizeof (tmpvals));
return;
}
}
memcpy (&pngvals, &defaults, sizeof (defaults));
}
static void
@ -1924,14 +1926,11 @@ save_defaults (void)
static void
load_gui_defaults (PngSaveGui *pg)
{
if (! load_defaults ())
{
g_message (_("Could not load PNG defaults"));
return;
}
load_defaults ();
#define SET_ACTIVE(field) \
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pg->field), pngvals.field)
if (GTK_WIDGET_IS_SENSITIVE (pg->field)) \
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pg->field), pngvals.field)
SET_ACTIVE (interlaced);
SET_ACTIVE (bkgd);