Fix a problem when exporting a single layer or anim frame, the chosen format was kept as the file's 'current format'. Also improve Brush load/save which has now mostly separate settings

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@2002 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Yves Rizoud 2012-09-21 20:10:33 +00:00
parent 440f04ad4f
commit 5a2e556f18
2 changed files with 26 additions and 8 deletions

View File

@ -3138,6 +3138,7 @@ void Load_picture(byte image)
T_IO_Context context; T_IO_Context context;
static char filename [MAX_PATH_CHARACTERS]; static char filename [MAX_PATH_CHARACTERS];
static char directory[MAX_PATH_CHARACTERS]; static char directory[MAX_PATH_CHARACTERS];
byte saved_main_format;
if (image) if (image)
{ {
@ -3150,9 +3151,19 @@ void Load_picture(byte image)
strcpy(filename, Brush_filename); strcpy(filename, Brush_filename);
strcpy(directory, Brush_file_directory); strcpy(directory, Brush_file_directory);
Init_context_brush(&context, filename, directory); Init_context_brush(&context, filename, directory);
// back up the fileselector's format filter
saved_main_format=Main_format;
Main_format=Brush_format;
} }
confirm=Button_Load_or_Save(1, &context); confirm=Button_Load_or_Save(1, &context);
if (!image)
{
// restore the fileselector's format filter
Brush_format=Main_format;
Main_format=saved_main_format;
}
if (confirm) if (confirm)
{ {
if (image) if (image)
@ -3183,6 +3194,7 @@ void Load_picture(byte image)
{ {
strcpy(Brush_filename, context.File_name); strcpy(Brush_filename, context.File_name);
strcpy(Brush_file_directory, context.File_directory); strcpy(Brush_file_directory, context.File_directory);
Brush_fileformat = context.Format;
Tiling_offset_X=0; Tiling_offset_X=0;
Tiling_offset_Y=0; Tiling_offset_Y=0;
@ -3273,8 +3285,6 @@ void Load_picture(byte image)
Display_cursor(); Display_cursor();
} }
//if (!image)
// Swap_data_of_image_and_brush();
Hide_cursor(); Hide_cursor();
Print_filename(); Print_filename();
Display_cursor(); Display_cursor();
@ -3432,6 +3442,7 @@ void Save_picture(byte image)
T_IO_Context save_context; T_IO_Context save_context;
static char filename [MAX_PATH_CHARACTERS]; static char filename [MAX_PATH_CHARACTERS];
static char directory[MAX_PATH_CHARACTERS]; static char directory[MAX_PATH_CHARACTERS];
byte saved_main_format;
if (image) if (image)
{ {
@ -3445,13 +3456,19 @@ void Save_picture(byte image)
strcpy(filename, Brush_filename); strcpy(filename, Brush_filename);
strcpy(directory, Brush_file_directory); strcpy(directory, Brush_file_directory);
Init_context_brush(&save_context, filename, directory); Init_context_brush(&save_context, filename, directory);
save_context.Format = Main_fileformat; save_context.Format = Brush_fileformat;
// back up the fileselector's format filter
saved_main_format=Main_format;
Main_format=Brush_fileformat;
} }
//if (!image)
// Swap_data_of_image_and_brush();
confirm=Button_Load_or_Save(0, &save_context); confirm=Button_Load_or_Save(0, &save_context);
if (!image)
{
// restore the fileselector's format filter
Brush_format=Main_format;
Main_format=saved_main_format;
}
if (confirm && File_exists(save_context.File_name)) if (confirm && File_exists(save_context.File_name))
{ {
@ -3482,11 +3499,13 @@ void Save_picture(byte image)
if (!File_error && image && !format->Palette_only && (Main_backups->Pages->Nb_layers==1 || format->Supports_layers)) if (!File_error && image && !format->Palette_only && (Main_backups->Pages->Nb_layers==1 || format->Supports_layers))
{ {
Main_image_is_modified=0; Main_image_is_modified=0;
Main_fileformat=save_context.Format;
strcpy(Main_backups->Pages->Filename, save_context.File_name); strcpy(Main_backups->Pages->Filename, save_context.File_name);
strcpy(Main_backups->Pages->File_directory, save_context.File_directory); strcpy(Main_backups->Pages->File_directory, save_context.File_directory);
} }
if (!image) if (!image)
{ {
Brush_fileformat=save_context.Format;
strcpy(Brush_filename, save_context.File_name); strcpy(Brush_filename, save_context.File_name);
strcpy(Brush_file_directory, save_context.File_directory); strcpy(Brush_file_directory, save_context.File_directory);
} }

View File

@ -2018,8 +2018,7 @@ byte Button_Load_or_Save(byte load, T_IO_Context *context)
else // Sinon on essaye de charger ou sauver le fichier else // Sinon on essaye de charger ou sauver le fichier
{ {
strcpy(context->File_directory,Main_current_directory); strcpy(context->File_directory,Main_current_directory);
if (!load && !Get_fileformat(Main_format)->Palette_only) context->Format = Main_format;
Main_fileformat=Main_format;
save_or_load_image=1; save_or_load_image=1;
} }
} }