Streamline menu item logic (#17664)

This commit is contained in:
Scott Lahteine 2020-04-27 23:52:11 -05:00 committed by GitHub
parent f709c565a1
commit 4f003fc7a7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 303 additions and 251 deletions

View file

@ -84,9 +84,6 @@ void menu_configuration();
extern const char M21_STR[];
void menu_main() {
START_MENU();
BACK_ITEM(MSG_INFO_SCREEN);
const bool busy = printingIsActive()
#if ENABLED(SDSUPPORT)
, card_detected = card.isMounted()
@ -94,6 +91,9 @@ void menu_main() {
#endif
;
START_MENU();
BACK_ITEM(MSG_INFO_SCREEN);
if (busy) {
#if MACHINE_CAN_PAUSE
ACTION_ITEM(MSG_PAUSE_PRINT, ui.pause_print);
@ -119,7 +119,7 @@ void menu_main() {
// Autostart
//
#if ENABLED(MENU_ADDAUTOSTART)
if (!busy) ACTION_ITEM(MSG_AUTOSTART, card.beginautostart);
ACTION_ITEM(MSG_AUTOSTART, card.beginautostart);
#endif
if (card_detected) {
@ -144,7 +144,7 @@ void menu_main() {
#endif // !HAS_ENCODER_WHEEL && SDSUPPORT
if (TERN0(MACHINE_CAN_PAUSE, printingIsPaused()))
MENU_ITEM_IF (TERN0(MACHINE_CAN_PAUSE, printingIsPaused()))
ACTION_ITEM(MSG_RESUME_PRINT, ui.resume_print);
SUBMENU(MSG_MOTION, menu_motion);
@ -176,9 +176,9 @@ void menu_main() {
#if ENABLED(ADVANCED_PAUSE_FEATURE)
#if E_STEPPERS == 1 && DISABLED(FILAMENT_LOAD_UNLOAD_GCODES)
if (thermalManager.targetHotEnoughToExtrude(active_extruder))
MENU_ITEM_IF (thermalManager.targetHotEnoughToExtrude(active_extruder))
GCODES_ITEM(MSG_FILAMENTCHANGE, PSTR("M600 B0"));
else
MENU_ITEM_ELSE
SUBMENU(MSG_FILAMENTCHANGE, []{ _menu_temp_filament_op(PAUSE_MODE_CHANGE_FILAMENT, 0); });
#else
SUBMENU(MSG_FILAMENTCHANGE, menu_change_filament);
@ -197,41 +197,44 @@ void menu_main() {
// Switch power on/off
//
#if ENABLED(PSU_CONTROL)
if (powersupply_on)
MENU_ITEM_IF (powersupply_on)
GCODES_ITEM(MSG_SWITCH_PS_OFF, PSTR("M81"));
else
MENU_ITEM_ELSE
GCODES_ITEM(MSG_SWITCH_PS_ON, PSTR("M80"));
#endif
#if BOTH(HAS_ENCODER_WHEEL, SDSUPPORT)
// *** IF THIS SECTION IS CHANGED, REPRODUCE ABOVE ***
if (!busy) {
//
// Autostart
//
#if ENABLED(MENU_ADDAUTOSTART)
if (!busy) ACTION_ITEM(MSG_AUTOSTART, card.beginautostart);
#endif
// *** IF THIS SECTION IS CHANGED, REPRODUCE ABOVE ***
if (card_detected) {
if (!card_open) {
MENU_ITEM(gcode,
#if PIN_EXISTS(SD_DETECT)
MSG_CHANGE_MEDIA, M21_STR
#else
MSG_RELEASE_MEDIA, PSTR("M22")
#endif
);
SUBMENU(MSG_MEDIA_MENU, menu_media);
}
}
else {
#if PIN_EXISTS(SD_DETECT)
ACTION_ITEM(MSG_NO_MEDIA, nullptr);
#else
GCODES_ITEM(MSG_ATTACH_MEDIA, M21_STR);
//
// Autostart
//
#if ENABLED(MENU_ADDAUTOSTART)
ACTION_ITEM(MSG_AUTOSTART, card.beginautostart);
#endif
if (card_detected) {
if (!card_open) {
MENU_ITEM(gcode,
#if PIN_EXISTS(SD_DETECT)
MSG_CHANGE_MEDIA, M21_STR
#else
MSG_RELEASE_MEDIA, PSTR("M22")
#endif
);
SUBMENU(MSG_MEDIA_MENU, menu_media);
}
}
else {
#if PIN_EXISTS(SD_DETECT)
ACTION_ITEM(MSG_NO_MEDIA, nullptr);
#else
GCODES_ITEM(MSG_ATTACH_MEDIA, M21_STR);
#endif
}
}
#endif // HAS_ENCODER_WHEEL && SDSUPPORT