Browse Source

SD Menu patches

Scott Lahteine 6 years ago
parent
commit
5a1f1305f0
3 changed files with 8 additions and 6 deletions
  1. 4
    3
      Marlin/cardreader.cpp
  2. 1
    1
      Marlin/cardreader.h
  3. 3
    2
      Marlin/ultralcd.cpp

+ 4
- 3
Marlin/cardreader.cpp View File

@@ -626,13 +626,14 @@ void CardReader::chdir(const char * relpath) {
626 626
   }
627 627
 }
628 628
 
629
-void CardReader::updir() {
630
-  if (workDirDepth > 0) {                                           // At least 1 dir has been saved
631
-    workDir = --workDirDepth ? workDirParents[workDirDepth] : root; // Use parent, or root if none
629
+int8_t CardReader::updir() {
630
+  if (workDirDepth > 0) {                                               // At least 1 dir has been saved
631
+    workDir = --workDirDepth ? workDirParents[workDirDepth - 1] : root; // Use parent, or root if none
632 632
     #if ENABLED(SDCARD_SORT_ALPHA)
633 633
       presort();
634 634
     #endif
635 635
   }
636
+  return workDirDepth;
636 637
 }
637 638
 
638 639
 #if ENABLED(SDCARD_SORT_ALPHA)

+ 1
- 1
Marlin/cardreader.h View File

@@ -67,7 +67,7 @@ public:
67 67
 
68 68
   void ls();
69 69
   void chdir(const char *relpath);
70
-  void updir();
70
+  int8_t updir();
71 71
   void setroot();
72 72
 
73 73
   uint16_t get_num_Files();

+ 3
- 2
Marlin/ultralcd.cpp View File

@@ -3758,7 +3758,7 @@ void kill_screen(const char* lcd_msg) {
3758 3758
     #endif
3759 3759
 
3760 3760
     void lcd_sd_updir() {
3761
-      card.updir();
3761
+      encoderPosition = card.updir() ? ENCODER_STEPS_PER_MENU_ITEM : 0;
3762 3762
       encoderTopLine = 0;
3763 3763
       screen_changed = true;
3764 3764
       lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW;
@@ -4457,7 +4457,8 @@ void kill_screen(const char* lcd_msg) {
4457 4457
     void menu_action_sddirectory(const char* filename, char* longFilename) {
4458 4458
       UNUSED(longFilename);
4459 4459
       card.chdir(filename);
4460
-      encoderPosition = 0;
4460
+      encoderTopLine = 0;
4461
+      encoderPosition = 2 * ENCODER_STEPS_PER_MENU_ITEM;
4461 4462
       screen_changed = true;
4462 4463
       lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW;
4463 4464
     }

Loading…
Cancel
Save