Browse Source

🐛 Fix FTDI Eve Touch UI progmem strings (#22439)

Marcio T 2 years ago
parent
commit
4111d1d5ad
No account linked to committer's email address

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/bioprinter/confirm_home_e.cpp View File

@@ -36,7 +36,7 @@ bool BioConfirmHomeE::onTouchEnd(uint8_t tag) {
36 36
   switch (tag) {
37 37
     case 1:
38 38
       #if defined(AXIS_LEVELING_COMMANDS) && defined(PARK_AND_RELEASE_COMMANDS)
39
-        SpinnerDialogBox::enqueueAndWait_P(PSTR(
39
+        SpinnerDialogBox::enqueueAndWait(F(
40 40
           "G28 E\n"
41 41
           AXIS_LEVELING_COMMANDS "\n"
42 42
           PARK_AND_RELEASE_COMMANDS

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/bioprinter/confirm_home_xyz.cpp View File

@@ -36,7 +36,7 @@ bool BioConfirmHomeXYZ::onTouchEnd(uint8_t tag) {
36 36
   switch (tag) {
37 37
     case 1:
38 38
       #ifdef PARK_AND_RELEASE_COMMANDS
39
-        SpinnerDialogBox::enqueueAndWait_P(PSTR(
39
+        SpinnerDialogBox::enqueueAndWait(F(
40 40
          "G28\n"
41 41
          PARK_AND_RELEASE_COMMANDS
42 42
         ));

+ 9
- 9
Marlin/src/lcd/extui/ftdi_eve_touch_ui/bioprinter/main_menu.cpp View File

@@ -67,17 +67,17 @@ bool MainMenu::onTouchEnd(uint8_t tag) {
67 67
   const bool e_homed = isAxisPositionKnown(E0);
68 68
 
69 69
   switch (tag) {
70
-    case 1: SaveSettingsDialogBox::promptToSaveSettings();                               break;
71
-    case 2: GOTO_SCREEN(BioConfirmHomeXYZ);                                              break;
72
-    case 3: SpinnerDialogBox::enqueueAndWait_P(e_homed ? PSTR("G0 E0 F120") : PSTR("G112")); break;
73
-    case 4: StatusScreen::unlockMotors();                                                break;
70
+    case 1: SaveSettingsDialogBox::promptToSaveSettings();                           break;
71
+    case 2: GOTO_SCREEN(BioConfirmHomeXYZ);                                          break;
72
+    case 3: SpinnerDialogBox::enqueueAndWait(e_homed ? F("G0 E0 F120") : F("G112")); break;
73
+    case 4: StatusScreen::unlockMotors();                                            break;
74 74
     #ifdef AXIS_LEVELING_COMMANDS
75
-    case 5: SpinnerDialogBox::enqueueAndWait_P(PSTR(AXIS_LEVELING_COMMANDS));            break;
75
+    case 5: SpinnerDialogBox::enqueueAndWait(F(AXIS_LEVELING_COMMANDS));             break;
76 76
     #endif
77
-    case 6: GOTO_SCREEN(TemperatureScreen);                                              break;
78
-    case 7: GOTO_SCREEN(InterfaceSettingsScreen);                                        break;
79
-    case 8: GOTO_SCREEN(AdvancedSettingsMenu);                                           break;
80
-    case 9: GOTO_SCREEN(AboutScreen);                                                    break;
77
+    case 6: GOTO_SCREEN(TemperatureScreen);                                          break;
78
+    case 7: GOTO_SCREEN(InterfaceSettingsScreen);                                    break;
79
+    case 8: GOTO_SCREEN(AdvancedSettingsMenu);                                       break;
80
+    case 9: GOTO_SCREEN(AboutScreen);                                                break;
81 81
     default:
82 82
       return false;
83 83
   }

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/bioprinter/status_screen.cpp View File

@@ -316,7 +316,7 @@ bool StatusScreen::onTouchEnd(uint8_t tag) {
316 316
     case  9: GOTO_SCREEN(FilesScreen); break;
317 317
     case 10: GOTO_SCREEN(MainMenu); break;
318 318
     case 13: GOTO_SCREEN(BioConfirmHomeE); break;
319
-    case 14: SpinnerDialogBox::enqueueAndWait_P(PSTR("G28Z")); break;
319
+    case 14: SpinnerDialogBox::enqueueAndWait(F("G28Z")); break;
320 320
     case 15: GOTO_SCREEN(TemperatureScreen);  break;
321 321
     case 16: fine_motion = !fine_motion; break;
322 322
     default: return false;

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/bioprinter/tune_menu.cpp View File

@@ -67,7 +67,7 @@ bool TuneMenu::onTouchEnd(uint8_t tag) {
67 67
     case 3: GOTO_SCREEN(TemperatureScreen);                      break;
68 68
     case 4: GOTO_SCREEN(NudgeNozzleScreen);                      break;
69 69
     case 5: GOTO_SCREEN(BioConfirmHomeXYZ);                      break;
70
-    case 6: SpinnerDialogBox::enqueueAndWait_P(PSTR("G0 E0 F120")); break;
70
+    case 6: SpinnerDialogBox::enqueueAndWait(F("G0 E0 F120")); break;
71 71
     case 7: StatusScreen::unlockMotors();                        break;
72 72
     default:
73 73
       return false;

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/cocoa_press/leveling_menu.cpp View File

@@ -82,7 +82,7 @@ bool LevelingMenu::onTouchEnd(uint8_t tag) {
82 82
     case 3: BedMeshViewScreen::show(); break;
83 83
     case 4: BedMeshEditScreen::show(); break;
84 84
     case 5: injectCommands_P(PSTR("M280 P0 S60")); break;
85
-    case 6: SpinnerDialogBox::enqueueAndWait_P(PSTR("M280 P0 S90\nG4 P100\nM280 P0 S120")); break;
85
+    case 6: SpinnerDialogBox::enqueueAndWait(F("M280 P0 S90\nG4 P100\nM280 P0 S120")); break;
86 86
     default: return false;
87 87
   }
88 88
   return true;

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/cocoa_press/screens.h View File

@@ -108,7 +108,6 @@ enum {
108 108
 #include "../generic/display_tuning_screen.h"
109 109
 #include "../generic/statistics_screen.h"
110 110
 #include "../generic/stepper_current_screen.h"
111
-#include "../generic/leveling_menu.h"
112 111
 #include "../generic/z_offset_screen.h"
113 112
 #include "../generic/bed_mesh_base.h"
114 113
 #include "../generic/bed_mesh_view_screen.h"
@@ -130,5 +129,6 @@ enum {
130 129
 #include "preheat_menu.h"
131 130
 #include "preheat_screen.h"
132 131
 #include "load_chocolate.h"
132
+#include "leveling_menu.h"
133 133
 #include "move_xyz_screen.h"
134 134
 #include "move_e_screen.h"

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/cocoa_press/status_screen.cpp View File

@@ -233,7 +233,7 @@ bool StatusScreen::onTouchStart(uint8_t) {
233 233
 
234 234
 bool StatusScreen::onTouchEnd(uint8_t tag) {
235 235
   switch (tag) {
236
-    case  1: SpinnerDialogBox::enqueueAndWait_P(PSTR("G28 O\nG27")); break;
236
+    case  1: SpinnerDialogBox::enqueueAndWait(F("G28 O\nG27")); break;
237 237
     case  2: GOTO_SCREEN(LoadChocolateScreen); break;
238 238
     case  3: GOTO_SCREEN(PreheatMenu); break;
239 239
     case  4: GOTO_SCREEN(MainMenu); break;

+ 4
- 4
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/alert_dialog_box.cpp View File

@@ -43,7 +43,7 @@ void AlertDialogBox::onRedraw(draw_mode_t what) {
43 43
 }
44 44
 
45 45
 template<typename T>
46
-void AlertDialogBox::show(const T message) {
46
+void AlertDialogBox::show(T message) {
47 47
   drawMessage(message);
48 48
   storeBackground();
49 49
   mydata.isError = false;
@@ -51,7 +51,7 @@ void AlertDialogBox::show(const T message) {
51 51
 }
52 52
 
53 53
 template<typename T>
54
-void AlertDialogBox::showError(const T message) {
54
+void AlertDialogBox::showError(T message) {
55 55
   drawMessage(message);
56 56
   storeBackground();
57 57
   mydata.isError = true;
@@ -64,8 +64,8 @@ void AlertDialogBox::hide() {
64 64
 }
65 65
 
66 66
 template void AlertDialogBox::show(const char *);
67
-template void AlertDialogBox::show(const progmem_str);
67
+template void AlertDialogBox::show(progmem_str);
68 68
 template void AlertDialogBox::showError(const char *);
69
-template void AlertDialogBox::showError(const progmem_str);
69
+template void AlertDialogBox::showError(progmem_str);
70 70
 
71 71
 #endif // FTDI_ALERT_DIALOG_BOX

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/bed_mesh_edit_screen.cpp View File

@@ -191,7 +191,7 @@ bool BedMeshEditScreen::onTouchEnd(uint8_t tag) {
191 191
 
192 192
 void BedMeshEditScreen::show() {
193 193
   // On entry, always home (to account for possible Z offset changes) and save current mesh
194
-  SpinnerDialogBox::enqueueAndWait_P(PSTR("G28\nG29 S1"));
194
+  SpinnerDialogBox::enqueueAndWait(F("G28\nG29 S1"));
195 195
   // After the spinner, go to this screen.
196 196
   current_screen.forget();
197 197
   PUSH_SCREEN(BedMeshEditScreen);

+ 6
- 2
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/dialog_box_base_class.cpp View File

@@ -32,7 +32,7 @@ using namespace Theme;
32 32
 #define GRID_ROWS 8
33 33
 
34 34
 template<typename T>
35
-void DialogBoxBaseClass::drawMessage(const T message, int16_t font) {
35
+void DialogBoxBaseClass::drawMessage(T message, int16_t font) {
36 36
   CommandProcessor cmd;
37 37
   cmd.cmd(CMD_DLSTART)
38 38
      .cmd(CLEAR_COLOR_RGB(bg_color))
@@ -59,12 +59,16 @@ void DialogBoxBaseClass::drawOkayButton() {
59 59
      .tag(1).button(BTN_POS(1,8), BTN_SIZE(2,1), GET_TEXT_F(MSG_BUTTON_OKAY));
60 60
 }
61 61
 
62
-void DialogBoxBaseClass::drawButton(const progmem_str label) {
62
+template<typename T>
63
+void DialogBoxBaseClass::drawButton(T label) {
63 64
   CommandProcessor cmd;
64 65
   cmd.font(font_medium)
65 66
      .tag(1).button(BTN_POS(1,8), BTN_SIZE(2,1), label);
66 67
 }
67 68
 
69
+template void DialogBoxBaseClass::drawButton(const char *);
70
+template void DialogBoxBaseClass::drawButton(progmem_str);
71
+
68 72
 void DialogBoxBaseClass::drawSpinner() {
69 73
   CommandProcessor cmd;
70 74
   cmd.cmd(COLOR_RGB(bg_text_enabled))

+ 2
- 2
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/dialog_box_base_class.h View File

@@ -27,11 +27,11 @@
27 27
 
28 28
 class DialogBoxBaseClass : public BaseScreen {
29 29
   protected:
30
-    template<typename T> static void drawMessage(const T, int16_t font = 0);
30
+    template<typename T> static void drawMessage(T, int16_t font = 0);
31
+    template<typename T> static void drawButton(T);
31 32
     static void drawYesNoButtons(uint8_t default_btn = 0);
32 33
     static void drawOkayButton();
33 34
     static void drawSpinner();
34
-    static void drawButton(const progmem_str);
35 35
 
36 36
     static void onRedraw(draw_mode_t) {};
37 37
   public:

+ 3
- 3
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/leveling_menu.cpp View File

@@ -104,7 +104,7 @@ bool LevelingMenu::onTouchEnd(uint8_t tag) {
104 104
   switch (tag) {
105 105
     case 1: GOTO_PREVIOUS(); break;
106 106
     #if EITHER(Z_STEPPER_AUTO_ALIGN,MECHANICAL_GANTRY_CALIBRATION)
107
-      case 2: SpinnerDialogBox::enqueueAndWait_P(PSTR("G34")); break;
107
+      case 2: SpinnerDialogBox::enqueueAndWait(F("G34")); break;
108 108
     #endif
109 109
     #if HAS_BED_PROBE
110 110
       case 3:
@@ -114,7 +114,7 @@ bool LevelingMenu::onTouchEnd(uint8_t tag) {
114 114
         #if ENABLED(AUTO_BED_LEVELING_UBL)
115 115
           BedMeshViewScreen::doProbe();
116 116
         #else
117
-          SpinnerDialogBox::enqueueAndWait_P(PSTR(BED_LEVELING_COMMANDS));
117
+          SpinnerDialogBox::enqueueAndWait(F(BED_LEVELING_COMMANDS));
118 118
         #endif
119 119
         break;
120 120
     #endif
@@ -127,7 +127,7 @@ bool LevelingMenu::onTouchEnd(uint8_t tag) {
127 127
     #endif
128 128
     #if ENABLED(BLTOUCH)
129 129
       case 7: injectCommands_P(PSTR("M280 P0 S60")); break;
130
-      case 8: SpinnerDialogBox::enqueueAndWait_P(PSTR("M280 P0 S90\nG4 P100\nM280 P0 S120")); break;
130
+      case 8: SpinnerDialogBox::enqueueAndWait(F("M280 P0 S90\nG4 P100\nM280 P0 S120")); break;
131 131
     #endif
132 132
     default: return false;
133 133
   }

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/main_menu.cpp View File

@@ -104,7 +104,7 @@ bool MainMenu::onTouchEnd(uint8_t tag) {
104 104
 
105 105
   switch (tag) {
106 106
     case 1:  SaveSettingsDialogBox::promptToSaveSettings();           break;
107
-    case 2:  SpinnerDialogBox::enqueueAndWait_P(PSTR("G28"));            break;
107
+    case 2:  SpinnerDialogBox::enqueueAndWait(F("G28"));            break;
108 108
     #if ENABLED(NOZZLE_CLEAN_FEATURE)
109 109
       case 3: injectCommands_P(PSTR("G12")); GOTO_SCREEN(StatusScreen); break;
110 110
     #endif

+ 4
- 4
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/move_axis_screen.cpp View File

@@ -98,10 +98,10 @@ bool BaseMoveAxisScreen::onTouchHeld(uint8_t tag) {
98 98
     case 14: UI_DECREMENT_AXIS(E3); mydata.e_rel[3] -= increment; break;
99 99
     case 15: UI_INCREMENT_AXIS(E3); mydata.e_rel[3] += increment; break;
100 100
     #endif
101
-    case 20: SpinnerDialogBox::enqueueAndWait_P(PSTR("G28X")); break;
102
-    case 21: SpinnerDialogBox::enqueueAndWait_P(PSTR("G28Y")); break;
103
-    case 22: SpinnerDialogBox::enqueueAndWait_P(PSTR("G28Z")); break;
104
-    case 23: SpinnerDialogBox::enqueueAndWait_P(PSTR("G28")); break;
101
+    case 20: SpinnerDialogBox::enqueueAndWait(F("G28X")); break;
102
+    case 21: SpinnerDialogBox::enqueueAndWait(F("G28Y")); break;
103
+    case 22: SpinnerDialogBox::enqueueAndWait(F("G28Z")); break;
104
+    case 23: SpinnerDialogBox::enqueueAndWait(F("G28")); break;
105 105
     case 24: raiseZtoTop(); break;
106 106
     default:
107 107
       return false;

+ 8
- 5
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/spinner_dialog_box.cpp View File

@@ -34,7 +34,7 @@ constexpr static SpinnerDialogBoxData &mydata = screen_data.SpinnerDialogBox;
34 34
 void SpinnerDialogBox::onRedraw(draw_mode_t) {
35 35
 }
36 36
 
37
-void SpinnerDialogBox::show(const progmem_str message) {
37
+void SpinnerDialogBox::show(progmem_str message) {
38 38
   drawMessage(message);
39 39
   drawSpinner();
40 40
   storeBackground();
@@ -46,14 +46,17 @@ void SpinnerDialogBox::hide() {
46 46
   cmd.stop().execute();
47 47
 }
48 48
 
49
-void SpinnerDialogBox::enqueueAndWait_P(const progmem_str commands) {
50
-  enqueueAndWait_P(GET_TEXT_F(MSG_PLEASE_WAIT), commands);
49
+void SpinnerDialogBox::enqueueAndWait(progmem_str message, progmem_str commands) {
50
+  show(message);
51
+  GOTO_SCREEN(SpinnerDialogBox);
52
+  ExtUI::injectCommands_P((const char*)commands);
53
+  mydata.auto_hide = true;
51 54
 }
52 55
 
53
-void SpinnerDialogBox::enqueueAndWait_P(const progmem_str message, const progmem_str commands) {
56
+void SpinnerDialogBox::enqueueAndWait(progmem_str message, char *commands) {
54 57
   show(message);
55 58
   GOTO_SCREEN(SpinnerDialogBox);
56
-  ExtUI::injectCommands_P((const char*)commands);
59
+  ExtUI::injectCommands(commands);
57 60
   mydata.auto_hide = true;
58 61
 }
59 62
 

+ 7
- 3
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/spinner_dialog_box.h View File

@@ -34,8 +34,12 @@ class SpinnerDialogBox : public DialogBoxBaseClass, public CachedScreen<SPINNER_
34 34
     static void onRedraw(draw_mode_t);
35 35
     static void onIdle();
36 36
 
37
-    static void show(const progmem_str);
37
+    static void show(progmem_str);
38 38
     static void hide();
39
-    static void enqueueAndWait_P(const progmem_str commands);
40
-    static void enqueueAndWait_P(const progmem_str message, const progmem_str commands);
39
+
40
+    template<typename T>
41
+    static void enqueueAndWait(T commands) {enqueueAndWait(GET_TEXT_F(MSG_PLEASE_WAIT), commands);}
42
+
43
+    static void enqueueAndWait(progmem_str message, char *commands);
44
+    static void enqueueAndWait(progmem_str message, progmem_str commands);
41 45
 };

+ 1
- 1
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/z_offset_screen.cpp View File

@@ -84,7 +84,7 @@ void ZOffsetScreen::runWizard() {
84 84
   strcat(cmd, str);
85 85
   injectCommands(cmd);
86 86
   // Show instructions for user.
87
-  AlertDialogBox::show(PSTR("After the printer finishes homing, adjust the Z Offset so that a sheet of paper can pass between the nozzle and bed with slight resistance."));
87
+  AlertDialogBox::show(F("After the printer finishes homing, adjust the Z Offset so that a sheet of paper can pass between the nozzle and bed with slight resistance."));
88 88
 }
89 89
 
90 90
 bool ZOffsetScreen::wizardRunning() {

Loading…
Cancel
Save