summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/tree.c113
1 files changed, 62 insertions, 51 deletions
diff --git a/apps/tree.c b/apps/tree.c
index cef63a0b96..0d583a7a6e 100644
--- a/apps/tree.c
+++ b/apps/tree.c
@@ -354,60 +354,71 @@ bool dirbrowse(char *root)
354 break; 354 break;
355 355
356 case TREE_PREV: 356 case TREE_PREV:
357 if(dircursor) { 357 if(filesindir)
358 put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, false); 358 {
359 dircursor--; 359 if(dircursor) {
360 put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); 360 put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, false);
361 } 361 dircursor--;
362 else { 362 put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true);
363 if (start) { 363 }
364 start--; 364 else {
365 numentries = showdir(currdir, start); 365 if (start) {
366 put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); 366 start--;
367 } 367 numentries = showdir(currdir, start);
368 else { 368 put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true);
369 if (numentries < TREE_MAX_ON_SCREEN) { 369 }
370 put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, false); 370 else {
371 dircursor = numentries - 1; 371 if (numentries < TREE_MAX_ON_SCREEN) {
372 put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); 372 put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor,
373 } 373 false);
374 else { 374 dircursor = numentries - 1;
375 start = numentries - TREE_MAX_ON_SCREEN; 375 put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor,
376 dircursor = TREE_MAX_ON_SCREEN - 1; 376 true);
377 numentries = showdir(currdir, start); 377 }
378 put_cursorxy(0, CURSOR_Y + LINE_Y + TREE_MAX_ON_SCREEN - 1, true); 378 else {
379 } 379 start = numentries - TREE_MAX_ON_SCREEN;
380 } 380 dircursor = TREE_MAX_ON_SCREEN - 1;
381 } 381 numentries = showdir(currdir, start);
382 lcd_update(); 382 put_cursorxy(0, CURSOR_Y + LINE_Y +
383 TREE_MAX_ON_SCREEN - 1, true);
384 }
385 }
386 }
387 lcd_update();
388 }
383 break; 389 break;
384 390
385 case TREE_NEXT: 391 case TREE_NEXT:
386 if (dircursor + start + 1 < numentries ) { 392 if(filesindir)
387 if(dircursor+1 < TREE_MAX_ON_SCREEN) { 393 {
388 put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, false); 394 if (dircursor + start + 1 < numentries ) {
389 dircursor++; 395 if(dircursor+1 < TREE_MAX_ON_SCREEN) {
390 put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); 396 put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor,
391 } 397 false);
392 else { 398 dircursor++;
393 start++; 399 put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true);
394 numentries = showdir(currdir, start); 400 }
395 put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); 401 else {
396 } 402 start++;
397 } 403 numentries = showdir(currdir, start);
398 else { 404 put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true);
399 if(numentries < TREE_MAX_ON_SCREEN) { 405 }
400 put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, false); 406 }
401 start = dircursor = 0; 407 else {
402 put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); 408 if(numentries < TREE_MAX_ON_SCREEN) {
403 } 409 put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor,
404 else { 410 false);
405 start = dircursor = 0; 411 start = dircursor = 0;
406 numentries = showdir(currdir, start); 412 put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true);
407 put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true); 413 }
408 } 414 else {
409 } 415 start = dircursor = 0;
410 lcd_update(); 416 numentries = showdir(currdir, start);
417 put_cursorxy(0, CURSOR_Y + LINE_Y+dircursor, true);
418 }
419 }
420 lcd_update();
421 }
411 break; 422 break;
412 423
413 case TREE_MENU: { 424 case TREE_MENU: {