Merged in trunk the fix for issue 198
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@968 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
cb147ca759
commit
7f072fd89c
40
filesel.c
40
filesel.c
@ -542,6 +542,10 @@ void Sort_list_of_files(T_Fileselector *list)
|
|||||||
|
|
||||||
T_Fileselector_item * Get_item_by_index(T_Fileselector *list, short index)
|
T_Fileselector_item * Get_item_by_index(T_Fileselector *list, short index)
|
||||||
{
|
{
|
||||||
|
// Safety
|
||||||
|
if (index >= list->Nb_elements)
|
||||||
|
index=list->Nb_elements-1;
|
||||||
|
|
||||||
if (list->Index)
|
if (list->Index)
|
||||||
{
|
{
|
||||||
return list->Index[index];
|
return list->Index[index];
|
||||||
@ -878,11 +882,37 @@ void Prepare_and_display_filelist(short Position, short offset, T_Scroller_butto
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Reload_list_of_files(byte filter, short Position, short offset, T_Scroller_button * button)
|
void Reload_list_of_files(byte filter, T_Scroller_button * button)
|
||||||
{
|
{
|
||||||
Read_list_of_files(&Filelist, filter);
|
Read_list_of_files(&Filelist, filter);
|
||||||
Sort_list_of_files(&Filelist);
|
Sort_list_of_files(&Filelist);
|
||||||
Prepare_and_display_filelist(Position,offset,button);
|
//
|
||||||
|
// Check and fix the fileselector positions, because
|
||||||
|
// the directory content may have changed.
|
||||||
|
//
|
||||||
|
// Make the offset absolute
|
||||||
|
Main_fileselector_offset += Main_fileselector_position;
|
||||||
|
// Ensure it's within limits
|
||||||
|
if (Main_fileselector_offset >= Filelist.Nb_elements)
|
||||||
|
{
|
||||||
|
Main_fileselector_offset = Filelist.Nb_elements-1;
|
||||||
|
}
|
||||||
|
// Ensure the position doesn't show "too many files"
|
||||||
|
if (Main_fileselector_position!=0 && Main_fileselector_position>(Filelist.Nb_elements-10))
|
||||||
|
{
|
||||||
|
if (Filelist.Nb_elements<10)
|
||||||
|
{
|
||||||
|
Main_fileselector_position=0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Main_fileselector_position=Filelist.Nb_elements-10;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Restore the offset as relative to the position.
|
||||||
|
Main_fileselector_offset -= Main_fileselector_position;
|
||||||
|
|
||||||
|
Prepare_and_display_filelist(Main_fileselector_position,Main_fileselector_offset,button);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Scroll_fileselector(T_Scroller_button * file_scroller)
|
void Scroll_fileselector(T_Scroller_button * file_scroller)
|
||||||
@ -1113,7 +1143,7 @@ byte Button_Load_or_Save(byte load, byte image)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Affichage des premiers fichiers visibles:
|
// Affichage des premiers fichiers visibles:
|
||||||
Reload_list_of_files(Main_format,Main_fileselector_position,Main_fileselector_offset,file_scroller);
|
Reload_list_of_files(Main_format,file_scroller);
|
||||||
|
|
||||||
if (!load)
|
if (!load)
|
||||||
{
|
{
|
||||||
@ -1210,7 +1240,7 @@ byte Button_Load_or_Save(byte load, byte image)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// On relit les informations
|
// On relit les informations
|
||||||
Reload_list_of_files(Main_format,Main_fileselector_position,Main_fileselector_offset,file_scroller);
|
Reload_list_of_files(Main_format,file_scroller);
|
||||||
// On demande la preview du nouveau fichier sur lequel on se trouve
|
// On demande la preview du nouveau fichier sur lequel on se trouve
|
||||||
New_preview_is_needed=1;
|
New_preview_is_needed=1;
|
||||||
}
|
}
|
||||||
@ -1291,7 +1321,7 @@ byte Button_Load_or_Save(byte load, byte image)
|
|||||||
Main_fileselector_position=0;
|
Main_fileselector_position=0;
|
||||||
Main_fileselector_offset=0;
|
Main_fileselector_offset=0;
|
||||||
// Affichage des premiers fichiers visibles:
|
// Affichage des premiers fichiers visibles:
|
||||||
Reload_list_of_files(Main_format,Main_fileselector_position,Main_fileselector_offset,file_scroller);
|
Reload_list_of_files(Main_format,file_scroller);
|
||||||
Display_cursor();
|
Display_cursor();
|
||||||
New_preview_is_needed=1;
|
New_preview_is_needed=1;
|
||||||
*quicksearch_filename=0;
|
*quicksearch_filename=0;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user