summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter D'Hoye <peter.dhoye@gmail.com>2006-12-14 22:43:16 +0000
committerPeter D'Hoye <peter.dhoye@gmail.com>2006-12-14 22:43:16 +0000
commite21e87a2d0f1d915be0793f4ba34483ae4fd2231 (patch)
tree190b5b09b3169b17fe6c55118c82a25a6ef9216f
parente84837558b13f6bd23d21f3658bc095e1d47af40 (diff)
downloadrockbox-e21e87a2d0f1d915be0793f4ba34483ae4fd2231.zip
rockbox-e21e87a2d0f1d915be0793f4ba34483ae4fd2231.tar.gz
rockbox-e21e87a2d0f1d915be0793f4ba34483ae4fd2231.tar.bz2
rockbox-e21e87a2d0f1d915be0793f4ba34483ae4fd2231.tar.xz
Directory delete: 1) show which directory is being removed when going through a tree recursively. 2) allow the user to abort while deleting.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11767 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/onplay.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/apps/onplay.c b/apps/onplay.c
index 12573da..fa3d395 100644
--- a/apps/onplay.c
+++ b/apps/onplay.c
@@ -427,6 +427,11 @@ static int remove_dir(char* dirname, int len)
!strcmp((char *)entry->d_name, ".."))
continue; /* skip these */
+ /* inform the user which dir we're deleting */
+ lcd_puts(0,1,dirname);
+#ifdef HAVE_LCD_BITMAP
+ lcd_update();
+#endif
result = remove_dir(dirname, len); /* recursion */
if (result)
break; /* or better continue, delete what we can? */
@@ -435,6 +440,12 @@ static int remove_dir(char* dirname, int len)
{ /* remove a file */
result = remove(dirname);
}
+ if(ACTION_STD_CANCEL == get_action(CONTEXT_STD,TIMEOUT_NOBLOCK))
+ {
+ gui_syncsplash(HZ, true, str(LANG_MENU_SETTING_CANCEL));
+ result = -1;
+ break;
+ }
}
closedir(dir);