Parcourir la source

Clean up main menu (#11972)

InsanityAutomation il y a 6 ans
Parent
révision
2e98437392
1 fichiers modifiés avec 52 ajouts et 42 suppressions
  1. 52
    42
      Marlin/src/lcd/ultralcd.cpp

+ 52
- 42
Marlin/src/lcd/ultralcd.cpp Voir le fichier

@@ -507,6 +507,8 @@ uint16_t max_display_update_time = 0;
507 507
     return click;
508 508
   }
509 509
 
510
+  inline bool printer_busy() { return planner.movesplanned() || IS_SD_PRINTING; }
511
+
510 512
   /**
511 513
    * General function to go directly to a screen
512 514
    */
@@ -526,7 +528,7 @@ uint16_t max_display_update_time = 0;
526 528
           if (currentScreen == lcd_status_screen)
527 529
             doubleclick_expire_ms = millis() + DOUBLECLICK_MAX_INTERVAL;
528 530
         }
529
-        else if (screen == lcd_status_screen && currentScreen == lcd_main_menu && PENDING(millis(), doubleclick_expire_ms)/* && (planner.movesplanned() || IS_SD_PRINTING)*/)
531
+        else if (screen == lcd_status_screen && currentScreen == lcd_main_menu && PENDING(millis(), doubleclick_expire_ms)/* && printer_busy()*/)
530 532
           screen =
531 533
             #if ENABLED(BABYSTEP_ZPROBE_OFFSET)
532 534
               lcd_babystep_zoffset
@@ -1053,6 +1055,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
1053 1055
     static void IDEX_menu() {
1054 1056
       START_MENU();
1055 1057
       MENU_BACK(MSG_MAIN);
1058
+
1056 1059
       MENU_ITEM(gcode, MSG_IDEX_MODE_AUTOPARK,  PSTR("M605 S1\nG28 X\nG1 X100"));
1057 1060
       const bool need_g28 = !(TEST(axis_known_position, Y_AXIS) && TEST(axis_known_position, Z_AXIS));
1058 1061
       MENU_ITEM(gcode, MSG_IDEX_MODE_DUPLICATE, need_g28
@@ -1145,32 +1148,6 @@ void lcd_quick_feedback(const bool clear_buttons) {
1145 1148
     START_MENU();
1146 1149
     MENU_BACK(MSG_WATCH);
1147 1150
 
1148
-    #if ENABLED(CUSTOM_USER_MENUS)
1149
-      MENU_ITEM(submenu, MSG_USER_MENU, _lcd_user_menu);
1150
-    #endif
1151
-
1152
-    #if ENABLED(DUAL_X_CARRIAGE)
1153
-      MENU_ITEM(submenu, MSG_IDEX_MENU, IDEX_menu);
1154
-    #endif
1155
-
1156
-    //
1157
-    // Debug Menu when certain options are enabled
1158
-    //
1159
-    #if HAS_DEBUG_MENU
1160
-      MENU_ITEM(submenu, MSG_DEBUG_MENU, lcd_debug_menu);
1161
-    #endif
1162
-
1163
-    //
1164
-    // Set Case light on/off/brightness
1165
-    //
1166
-    #if ENABLED(MENU_ITEM_CASE_LIGHT)
1167
-      if (USEABLE_HARDWARE_PWM(CASE_LIGHT_PIN)) {
1168
-        MENU_ITEM(submenu, MSG_CASE_LIGHT, case_light_menu);
1169
-      }
1170
-      else
1171
-        MENU_ITEM_EDIT_CALLBACK(bool, MSG_CASE_LIGHT, (bool*)&case_light_on, update_case_light);
1172
-    #endif
1173
-
1174 1151
     #if ENABLED(SDSUPPORT)
1175 1152
       if (card.cardOK) {
1176 1153
         if (card.isFileOpen()) {
@@ -1195,14 +1172,20 @@ void lcd_quick_feedback(const bool clear_buttons) {
1195 1172
       }
1196 1173
     #endif // SDSUPPORT
1197 1174
 
1198
-    if (planner.movesplanned() || IS_SD_PRINTING)
1175
+    const bool busy = printer_busy();
1176
+    if (busy)
1199 1177
       MENU_ITEM(submenu, MSG_TUNE, lcd_tune_menu);
1200 1178
     else {
1201 1179
       MENU_ITEM(submenu, MSG_MOTION, lcd_movement_menu);
1202 1180
       MENU_ITEM(submenu, MSG_TEMPERATURE, lcd_temperature_menu);
1203
-      MENU_ITEM(submenu, MSG_CONFIGURATION, lcd_configuration_menu);
1204 1181
     }
1205 1182
 
1183
+    MENU_ITEM(submenu, MSG_CONFIGURATION, lcd_configuration_menu);
1184
+
1185
+    #if ENABLED(CUSTOM_USER_MENUS)
1186
+      MENU_ITEM(submenu, MSG_USER_MENU, _lcd_user_menu);
1187
+    #endif
1188
+
1206 1189
     #if ENABLED(ADVANCED_PAUSE_FEATURE)
1207 1190
       #if E_STEPPERS == 1 && DISABLED(FILAMENT_LOAD_UNLOAD_GCODES)
1208 1191
         if (thermalManager.targetHotEnoughToExtrude(active_extruder))
@@ -1236,7 +1219,8 @@ void lcd_quick_feedback(const bool clear_buttons) {
1236 1219
     // Autostart
1237 1220
     //
1238 1221
     #if ENABLED(SDSUPPORT) && ENABLED(MENU_ADDAUTOSTART)
1239
-      MENU_ITEM(function, MSG_AUTOSTART, lcd_autostart_sd);
1222
+      if (!busy)
1223
+        MENU_ITEM(function, MSG_AUTOSTART, lcd_autostart_sd);
1240 1224
     #endif
1241 1225
 
1242 1226
     END_MENU();
@@ -2727,7 +2711,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
2727 2711
      *    Load Settings       (Req: EEPROM_SETTINGS)
2728 2712
      *    Save Settings       (Req: EEPROM_SETTINGS)
2729 2713
      */
2730
-    void lcd_bed_leveling() {
2714
+    void lcd_bed_leveling_menu() {
2731 2715
       START_MENU();
2732 2716
       MENU_BACK(MSG_MOTION);
2733 2717
 
@@ -2836,7 +2820,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
2836 2820
       #if ENABLED(PROBE_MANUALLY)
2837 2821
         if (!g29_in_progress)
2838 2822
       #endif
2839
-          MENU_ITEM(submenu, MSG_BED_LEVELING, lcd_bed_leveling);
2823
+          MENU_ITEM(submenu, MSG_BED_LEVELING, lcd_bed_leveling_menu);
2840 2824
 
2841 2825
     #elif HAS_LEVELING && DISABLED(SLIM_LCD_MENUS)
2842 2826
 
@@ -3418,13 +3402,41 @@ void lcd_quick_feedback(const bool clear_buttons) {
3418 3402
     START_MENU();
3419 3403
     MENU_BACK(MSG_MAIN);
3420 3404
 
3405
+    //
3406
+    // Debug Menu when certain options are enabled
3407
+    //
3408
+    #if HAS_DEBUG_MENU
3409
+      MENU_ITEM(submenu, MSG_DEBUG_MENU, lcd_debug_menu);
3410
+    #endif
3411
+
3421 3412
     MENU_ITEM(submenu, MSG_ADVANCED_SETTINGS, lcd_advanced_settings_menu);
3422 3413
 
3414
+    const bool busy = printer_busy();
3415
+    if (!busy) {
3416
+      //
3417
+      // Delta Calibration
3418
+      //
3419
+      #if ENABLED(DELTA_CALIBRATION_MENU) || ENABLED(DELTA_AUTO_CALIBRATION)
3420
+        MENU_ITEM(submenu, MSG_DELTA_CALIBRATE, lcd_delta_calibrate_menu);
3421
+      #endif
3422
+
3423
+      #if ENABLED(DUAL_X_CARRIAGE)
3424
+        MENU_ITEM(submenu, MSG_IDEX_MENU, IDEX_menu);
3425
+      #endif
3426
+
3427
+      #if ENABLED(BLTOUCH)
3428
+        MENU_ITEM(submenu, MSG_BLTOUCH, bltouch_menu);
3429
+      #endif
3430
+    }
3431
+
3423 3432
     //
3424
-    // Delta Calibration
3433
+    // Set Case light on/off/brightness
3425 3434
     //
3426
-    #if ENABLED(DELTA_CALIBRATION_MENU) || ENABLED(DELTA_AUTO_CALIBRATION)
3427
-      MENU_ITEM(submenu, MSG_DELTA_CALIBRATE, lcd_delta_calibrate_menu);
3435
+    #if ENABLED(MENU_ITEM_CASE_LIGHT)
3436
+      if (USEABLE_HARDWARE_PWM(CASE_LIGHT_PIN))
3437
+        MENU_ITEM(submenu, MSG_CASE_LIGHT, case_light_menu);
3438
+      else
3439
+        MENU_ITEM_EDIT_CALLBACK(bool, MSG_CASE_LIGHT, (bool*)&case_light_on, update_case_light);
3428 3440
     #endif
3429 3441
 
3430 3442
     #if HAS_LCD_CONTRAST
@@ -3440,10 +3452,6 @@ void lcd_quick_feedback(const bool clear_buttons) {
3440 3452
       MENU_ITEM(submenu, MSG_DRIVE_STRENGTH, lcd_pwm_menu);
3441 3453
     #endif
3442 3454
 
3443
-    #if ENABLED(BLTOUCH)
3444
-      MENU_ITEM(submenu, MSG_BLTOUCH, bltouch_menu);
3445
-    #endif
3446
-
3447 3455
     #if ENABLED(FILAMENT_RUNOUT_SENSOR)
3448 3456
       MENU_ITEM_EDIT(bool, MSG_RUNOUT_SENSOR_ENABLE, &runout.enabled);
3449 3457
     #endif
@@ -3456,10 +3464,12 @@ void lcd_quick_feedback(const bool clear_buttons) {
3456 3464
 
3457 3465
     #if ENABLED(EEPROM_SETTINGS)
3458 3466
       MENU_ITEM(function, MSG_STORE_EEPROM, lcd_store_settings);
3459
-      MENU_ITEM(function, MSG_LOAD_EEPROM, lcd_load_settings);
3467
+      if (!busy)
3468
+        MENU_ITEM(function, MSG_LOAD_EEPROM, lcd_load_settings);
3460 3469
     #endif
3461 3470
 
3462
-    MENU_ITEM(function, MSG_RESTORE_FAILSAFE, lcd_factory_settings);
3471
+    if (!busy)
3472
+      MENU_ITEM(function, MSG_RESTORE_FAILSAFE, lcd_factory_settings);
3463 3473
 
3464 3474
     END_MENU();
3465 3475
   }
@@ -4670,7 +4680,7 @@ void lcd_quick_feedback(const bool clear_buttons) {
4670 4680
         #endif // E_STEPPERS == 1
4671 4681
 
4672 4682
         #if ENABLED(FILAMENT_LOAD_UNLOAD_GCODES)
4673
-          if (!planner.movesplanned() && !IS_SD_FILE_OPEN) {
4683
+          if (!printer_busy()) {
4674 4684
             // Load filament
4675 4685
             #if E_STEPPERS == 1
4676 4686
               PGM_P msg0 = PSTR(MSG_FILAMENTLOAD);

Chargement…
Annuler
Enregistrer