plug-ins/jpeg/jpeg.c fixed an issue with the latest changes. Now "Load

2007-07-10  Sven Neumann  <sven@gimp.org>

	* plug-ins/jpeg/jpeg.c
	* plug-ins/jpeg/jpeg-save.[ch]: fixed an issue with the latest
	changes. Now "Load Defaults" does also work if "Save Defaults"
	wasn't used before.

svn path=/trunk/; revision=22907
This commit is contained in:
Sven Neumann 2007-07-10 08:43:20 +00:00 committed by Sven Neumann
parent edbf144aa6
commit 49398233df
4 changed files with 72 additions and 72 deletions

View File

@ -1,3 +1,10 @@
2007-07-10 Sven Neumann <sven@gimp.org>
* plug-ins/jpeg/jpeg.c
* plug-ins/jpeg/jpeg-save.[ch]: fixed an issue with the latest
changes. Now "Load Defaults" does also work if "Save Defaults"
wasn't used before.
2007-07-09 Sven Neumann <sven@gimp.org>
* libgimpwidgets/gimppropwidgets.c

View File

@ -47,8 +47,26 @@
#include "jpeg-icc.h"
#include "jpeg-save.h"
#define SCALE_WIDTH 125
/* See bugs #63610 and #61088 for a discussion about the quality settings */
#define DEFAULT_QUALITY 85.0
#define DEFAULT_SMOOTHING 0.0
#define DEFAULT_OPTIMIZE TRUE
#define DEFAULT_PROGRESSIVE FALSE
#define DEFAULT_BASELINE TRUE
#define DEFAULT_SUBSMP 0
#define DEFAULT_RESTART 0
#define DEFAULT_DCT 0
#define DEFAULT_PREVIEW FALSE
#define DEFAULT_EXIF TRUE
#define DEFAULT_THUMBNAIL FALSE
#define DEFAULT_XMP TRUE
#define JPEG_DEFAULTS_PARASITE "jpeg-save-defaults"
typedef struct
{
struct jpeg_compress_struct cinfo;
@ -111,12 +129,12 @@ static GtkWidget *restart_markers_label = NULL;
static GtkWidget *preview_size = NULL;
static gboolean *abort_me = NULL;
static void save_dialog_response (GtkWidget *widget,
gint response_id,
gpointer data);
static void save_dialog_response (GtkWidget *widget,
gint response_id,
gpointer data);
static void load_gui_defaults (JpegSaveGui *pg);
static void save_defaults(void);
static void load_gui_defaults (JpegSaveGui *pg);
static void save_defaults (void);
/*
@ -245,7 +263,7 @@ save_image (const gchar *filename,
#ifdef HAVE_EXIF
guchar *thumbnail_buffer = NULL;
gint thumbnail_buffer_length = 0;
ExifData *exif_data_tmp = NULL;
ExifData *exif_data_tmp = NULL;
#endif
drawable = gimp_drawable_get (drawable_ID);
@ -731,7 +749,7 @@ destroy_preview (void)
gboolean
save_dialog (void)
{
JpegSaveGui pg;
JpegSaveGui pg;
GtkWidget *dialog;
GtkWidget *vbox;
GtkObject *entry;
@ -1112,8 +1130,8 @@ save_dialog_response (GtkWidget *widget,
gpointer data)
{
JpegSaveGui *pg = data;
GtkTextIter start_iter;
GtkTextIter end_iter;
GtkTextIter start_iter;
GtkTextIter end_iter;
switch (response_id)
{
@ -1122,6 +1140,7 @@ save_dialog_response (GtkWidget *widget,
image_comment = gtk_text_buffer_get_text (pg->text_buffer,
&start_iter, &end_iter, FALSE);
pg->run = TRUE;
/* fallthrough */
default:
gtk_widget_destroy (widget);
@ -1129,18 +1148,36 @@ save_dialog_response (GtkWidget *widget,
}
}
gboolean
load_defaults (void)
void
load_save_defaults (void)
{
GimpParasite *parasite;
gchar *def_str;
JpegSaveVals tmpvals;
JpegSaveVals tmpvals;
gint num_fields;
jsvals.quality = DEFAULT_QUALITY;
jsvals.smoothing = DEFAULT_SMOOTHING;
jsvals.optimize = DEFAULT_OPTIMIZE;
jsvals.progressive = DEFAULT_PROGRESSIVE;
jsvals.baseline = DEFAULT_BASELINE;
jsvals.subsmp = DEFAULT_SUBSMP;
jsvals.restart = DEFAULT_RESTART;
jsvals.dct = DEFAULT_DCT;
jsvals.preview = DEFAULT_PREVIEW;
jsvals.save_exif = DEFAULT_EXIF;
jsvals.save_thumbnail = DEFAULT_THUMBNAIL;
jsvals.save_xmp = DEFAULT_XMP;
#ifdef HAVE_EXIF
if (exif_data && (exif_data->data))
jsvals.save_thumbnail = TRUE;
#endif /* HAVE_EXIF */
parasite = gimp_parasite_find (JPEG_DEFAULTS_PARASITE);
if (! parasite)
return FALSE;
return;
def_str = g_strndup (gimp_parasite_data (parasite),
gimp_parasite_data_size (parasite));
@ -1162,13 +1199,7 @@ load_defaults (void)
&tmpvals.save_xmp);
if (num_fields == 12)
{
memcpy (&jsvals, &tmpvals, sizeof (tmpvals));
return TRUE;
}
return FALSE;
memcpy (&jsvals, &tmpvals, sizeof (tmpvals));
}
static void
@ -1203,12 +1234,9 @@ save_defaults (void)
static void
load_gui_defaults (JpegSaveGui *pg)
{
GtkAdjustment *restart_markers;
if (! load_defaults ())
{
g_message (_("Could not load JPEG defaults"));
return;
}
GtkAdjustment *restart_markers;
load_save_defaults ();
#define SET_ACTIVE_BTTN(field) \
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pg->field), jsvals.field)
@ -1227,8 +1255,9 @@ GtkAdjustment *restart_markers;
/*spin button stuff*/
g_signal_handler_block (pg->use_restart_markers, pg->handler_id_restart);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pg->use_restart_markers), jsvals.restart);
restart_markers = (GtkAdjustment *) pg->scale_data;
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pg->use_restart_markers),
jsvals.restart);
restart_markers = GTK_ADJUSTMENT (pg->scale_data);
gtk_adjustment_set_value (restart_markers, jsvals.restart);
g_signal_handler_unblock (pg->use_restart_markers, pg->handler_id_restart);

View File

@ -16,22 +16,6 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#define SCALE_WIDTH 125
/* See bugs #63610 and #61088 for a discussion about the quality settings */
#define DEFAULT_QUALITY 85.0
#define DEFAULT_SMOOTHING 0.0
#define DEFAULT_OPTIMIZE TRUE
#define DEFAULT_PROGRESSIVE FALSE
#define DEFAULT_BASELINE TRUE
#define DEFAULT_SUBSMP 0
#define DEFAULT_RESTART 0
#define DEFAULT_DCT 0
#define DEFAULT_PREVIEW FALSE
#define DEFAULT_EXIF TRUE
#define DEFAULT_THUMBNAIL FALSE
#define DEFAULT_XMP TRUE
typedef struct
{
gdouble quality;
@ -54,10 +38,10 @@ extern gint32 orig_image_ID_global;
extern gint32 drawable_ID_global;
gboolean save_image (const gchar *filename,
gint32 image_ID,
gint32 drawable_ID,
gint32 orig_image_ID,
gboolean preview);
gboolean save_dialog (void);
gboolean load_defaults (void);
gboolean save_image (const gchar *filename,
gint32 image_ID,
gint32 drawable_ID,
gint32 orig_image_ID,
gboolean preview);
gboolean save_dialog (void);
void load_save_defaults (void);

View File

@ -329,27 +329,7 @@ run (const gchar *name,
#endif /* HAVE_EXIF */
jsvals.quality = DEFAULT_QUALITY;
jsvals.smoothing = DEFAULT_SMOOTHING;
jsvals.optimize = DEFAULT_OPTIMIZE;
jsvals.progressive = DEFAULT_PROGRESSIVE;
jsvals.baseline = DEFAULT_BASELINE;
jsvals.subsmp = DEFAULT_SUBSMP;
jsvals.restart = DEFAULT_RESTART;
jsvals.dct = DEFAULT_DCT;
jsvals.preview = DEFAULT_PREVIEW;
jsvals.save_exif = DEFAULT_EXIF;
jsvals.save_thumbnail = DEFAULT_THUMBNAIL;
jsvals.save_xmp = DEFAULT_XMP;
#ifdef HAVE_EXIF
if (exif_data && (exif_data->data))
jsvals.save_thumbnail = TRUE;
#endif /* HAVE_EXIF */
load_defaults(); /* erase default parameters if defaults are recorded */
load_save_defaults ();
switch (run_mode)
{