瀏覽代碼

SD Menu patches

Scott Lahteine 7 年之前
父節點
當前提交
f90c075d1f
共有 3 個文件被更改,包括 8 次插入6 次删除
  1. 3
    2
      Marlin/src/lcd/ultralcd.cpp
  2. 4
    3
      Marlin/src/sd/cardreader.cpp
  3. 1
    1
      Marlin/src/sd/cardreader.h

+ 3
- 2
Marlin/src/lcd/ultralcd.cpp 查看文件

@@ -3743,7 +3743,7 @@ void kill_screen(const char* lcd_msg) {
3743 3743
     #endif
3744 3744
 
3745 3745
     void lcd_sd_updir() {
3746
-      card.updir();
3746
+      encoderPosition = card.updir() ? ENCODER_STEPS_PER_MENU_ITEM : 0;
3747 3747
       encoderTopLine = 0;
3748 3748
       screen_changed = true;
3749 3749
       lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW;
@@ -4444,7 +4444,8 @@ void kill_screen(const char* lcd_msg) {
4444 4444
     void menu_action_sddirectory(const char* filename, char* longFilename) {
4445 4445
       UNUSED(longFilename);
4446 4446
       card.chdir(filename);
4447
-      encoderPosition = 0;
4447
+      encoderTopLine = 0;
4448
+      encoderPosition = 2 * ENCODER_STEPS_PER_MENU_ITEM;
4448 4449
       screen_changed = true;
4449 4450
       lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW;
4450 4451
     }

+ 4
- 3
Marlin/src/sd/cardreader.cpp 查看文件

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

+ 1
- 1
Marlin/src/sd/cardreader.h 查看文件

@@ -63,7 +63,7 @@ public:
63 63
 
64 64
   void ls();
65 65
   void chdir(const char *relpath);
66
-  void updir();
66
+  int8_t updir();
67 67
   void setroot();
68 68
 
69 69
   uint16_t get_num_Files();

Loading…
取消
儲存