From 873b4425a6696ac10ea775bc992daf0f94b8cfe3 Mon Sep 17 00:00:00 2001 From: Dan Date: Thu, 17 Jan 2019 03:06:49 +0100 Subject: [PATCH] use END key to navigate to last file in directory --- file_io.cpp | 9 ++++++++- file_io.h | 1 + menu.cpp | 6 ++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/file_io.cpp b/file_io.cpp index 18d21c7..cf39ed1 100644 --- a/file_io.cpp +++ b/file_io.cpp @@ -1242,7 +1242,14 @@ int ScanDirectory(char* path, int mode, const char *extension, int options, cons if (flist_nDirEntries() == 0) // directory is empty so there is no point in searching for any entry return 0; - if (mode == SCANF_NEXT) + if (mode == SCANF_END) + { + iSelectedEntry = flist_nDirEntries() - 1; + iFirstEntry = iSelectedEntry - OsdGetSize() + 1; + if (iFirstEntry < 0) iFirstEntry = 0; + return 0; + } + else if (mode == SCANF_NEXT) { if(iSelectedEntry + 1 < flist_nDirEntries()) // scroll within visible items { diff --git a/file_io.h b/file_io.h index 79f098b..5250de2 100644 --- a/file_io.h +++ b/file_io.h @@ -34,6 +34,7 @@ dirent* flist_SelectedItem(); #define SCANF_NEXT_PAGE 2 // find next 16 files in directory #define SCANF_PREV_PAGE -2 // find previous 16 files in directory #define SCANF_SET_ITEM 3 // find exact item +#define SCANF_END 4 // find last file in directory // options flags #define SCANO_DIR 1 // include subdirectories diff --git a/menu.cpp b/menu.cpp index 626602a..d992865 100644 --- a/menu.cpp +++ b/menu.cpp @@ -2497,6 +2497,12 @@ void HandleUI(void) menustate = MENU_FILE_SELECT1; } + if (c == KEY_END) + { + ScanDirectory(SelectedPath, SCANF_END, fs_pFileExt, fs_Options); + menustate = MENU_FILE_SELECT1; + } + if (c == KEY_BACKSPACE) { if (fs_Options & SCANO_UMOUNT)