summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/lang/english.lang5
-rw-r--r--apps/tree.c42
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
1767desc: in settings_menu 1767desc: in settings_menu
1768eng: "Line In" 1768eng: "Line In"
1769new: 1769new:
1770
1771id: LANG_NO_FILES
1772desc: in settings_menu
1773eng: "No files"
1774new:
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