diff options
-rw-r--r-- | apps/lang/english.lang | 5 | ||||
-rw-r--r-- | apps/tree.c | 42 |
2 files changed, 34 insertions, 13 deletions
diff --git a/apps/lang/english.lang b/apps/lang/english.lang index a3d8a03858..b4013fd90a 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang | |||
@@ -1767,3 +1767,8 @@ id: LANG_LINE_IN | |||
1767 | desc: in settings_menu | 1767 | desc: in settings_menu |
1768 | eng: "Line In" | 1768 | eng: "Line In" |
1769 | new: | 1769 | new: |
1770 | |||
1771 | id: LANG_NO_FILES | ||
1772 | desc: in settings_menu | ||
1773 | eng: "No files" | ||
1774 | new: | ||
diff --git a/apps/tree.c b/apps/tree.c index fb62b0ede8..0b41b3af46 100644 --- a/apps/tree.c +++ b/apps/tree.c | |||
@@ -840,11 +840,18 @@ static bool dirbrowse(char *root, int *dirfilter) | |||
840 | memcpy(currdir,root,sizeof(currdir)); | 840 | memcpy(currdir,root,sizeof(currdir)); |
841 | 841 | ||
842 | if (*dirfilter < NUM_FILTER_MODES) | 842 | if (*dirfilter < NUM_FILTER_MODES) |
843 | start_resume(true); | 843 | start_resume(true); |
844 | 844 | ||
845 | numentries = showdir(currdir, dirstart, dirfilter); | 845 | numentries = showdir(currdir, dirstart, dirfilter); |
846 | if (numentries == -1) | 846 | if (numentries == -1) |
847 | return false; /* currdir is not a directory */ | 847 | return false; /* currdir is not a directory */ |
848 | |||
849 | if (*dirfilter > NUM_FILTER_MODES && numentries==0) | ||
850 | { | ||
851 | splash(HZ*2, 0, true, str(LANG_NO_FILES)); | ||
852 | return false; /* No files found for rockbox_browser() */ | ||
853 | } | ||
854 | |||
848 | update_all = true; | 855 | update_all = true; |
849 | 856 | ||
850 | put_cursorxy(CURSOR_X, CURSOR_Y + dircursor, true); | 857 | put_cursorxy(CURSOR_X, CURSOR_Y + dircursor, true); |
@@ -1171,10 +1178,13 @@ static bool dirbrowse(char *root, int *dirfilter) | |||
1171 | break; | 1178 | break; |
1172 | 1179 | ||
1173 | case TREE_MENU: | 1180 | case TREE_MENU: |
1174 | lcd_stop_scroll(); | 1181 | if (*dirfilter < NUM_FILTER_MODES) |
1175 | if (main_menu()) | 1182 | { |
1176 | reload_root = true; | 1183 | lcd_stop_scroll(); |
1177 | restore = true; | 1184 | if (main_menu()) |
1185 | reload_root = true; | ||
1186 | restore = true; | ||
1187 | } | ||
1178 | break; | 1188 | break; |
1179 | 1189 | ||
1180 | case BUTTON_ON: | 1190 | case BUTTON_ON: |
@@ -1206,19 +1216,25 @@ static bool dirbrowse(char *root, int *dirfilter) | |||
1206 | 1216 | ||
1207 | #ifdef HAVE_RECORDER_KEYPAD | 1217 | #ifdef HAVE_RECORDER_KEYPAD |
1208 | case BUTTON_F2: | 1218 | case BUTTON_F2: |
1209 | if (f2_screen()) | 1219 | if (*dirfilter < NUM_FILTER_MODES) |
1210 | reload_root = true; | 1220 | { |
1211 | restore = true; | 1221 | if (f2_screen()) |
1212 | break; | 1222 | reload_root = true; |
1223 | restore = true; | ||
1224 | break; | ||
1225 | } | ||
1213 | 1226 | ||
1214 | case BUTTON_F3: | 1227 | case BUTTON_F3: |
1215 | if (f3_screen()) | 1228 | if (*dirfilter < NUM_FILTER_MODES) |
1216 | reload_root = true; | 1229 | { |
1230 | if (f3_screen()) | ||
1231 | reload_root = true; | ||
1217 | 1232 | ||
1218 | #ifdef HAVE_LCD_BITMAP | 1233 | #ifdef HAVE_LCD_BITMAP |
1219 | tree_max_on_screen = (LCD_HEIGHT - MARGIN_Y) / fh; | 1234 | tree_max_on_screen = (LCD_HEIGHT - MARGIN_Y) / fh; |
1220 | #endif | 1235 | #endif |
1221 | restore = true; | 1236 | restore = true; |
1237 | } | ||
1222 | break; | 1238 | break; |
1223 | #endif | 1239 | #endif |
1224 | 1240 | ||