|
@@ -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);
|