Browse Source

🚸 Enhance FTDI Eve Touch UI file select dialog (#22742)

Marcio T 3 years ago
parent
commit
209dca1089
No account linked to committer's email address

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

@@ -33,7 +33,7 @@ using namespace ExtUI;
33 33
 constexpr static ConfirmStartPrintDialogBoxData &mydata = screen_data.ConfirmStartPrintDialogBox;
34 34
 
35 35
 void ConfirmStartPrintDialogBox::onRedraw(draw_mode_t) {
36
-  const char *filename = getLongFilename();
36
+  const char *filename = getFilename();
37 37
   char buffer[strlen_P(GET_TEXT(MSG_START_PRINT_CONFIRMATION)) + strlen(filename) + 1];
38 38
   sprintf_P(buffer, GET_TEXT(MSG_START_PRINT_CONFIRMATION), filename);
39 39
   drawMessage((const char *)buffer);
@@ -52,10 +52,10 @@ bool ConfirmStartPrintDialogBox::onTouchEnd(uint8_t tag) {
52 52
   }
53 53
 }
54 54
 
55
-const char *ConfirmStartPrintDialogBox::getFilename(bool longName) {
55
+const char *ConfirmStartPrintDialogBox::getFilename(bool shortName) {
56 56
   FileList files;
57 57
   files.seek(mydata.file_index, true);
58
-  return longName ? files.longFilename() : files.shortFilename();
58
+  return shortName ? files.shortFilename() : files.filename();
59 59
 }
60 60
 
61 61
 void ConfirmStartPrintDialogBox::show(uint8_t file_index) {

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

@@ -31,10 +31,9 @@ struct ConfirmStartPrintDialogBoxData {
31 31
 
32 32
 class ConfirmStartPrintDialogBox : public DialogBoxBaseClass, public UncachedScreen {
33 33
   private:
34
-    inline static const char *getShortFilename() {return getFilename(false);}
35
-    inline static const char *getLongFilename()  {return getFilename(true);}
34
+    inline static const char *getShortFilename() {return getFilename(true);}
36 35
 
37
-    static const char *getFilename(bool longName);
36
+    static const char *getFilename(bool shortName = false);
38 37
   public:
39 38
     static void onRedraw(draw_mode_t);
40 39
     static bool onTouchEnd(uint8_t);

+ 9
- 9
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/files_screen.cpp View File

@@ -70,10 +70,10 @@ void FilesScreen::onEntry() {
70 70
   BaseScreen::onEntry();
71 71
 }
72 72
 
73
-const char *FilesScreen::getSelectedFilename(bool longName) {
73
+const char *FilesScreen::getSelectedFilename(bool shortName) {
74 74
   FileList files;
75 75
   files.seek(getSelectedFileIndex(), true);
76
-  return longName ? files.longFilename() : files.shortFilename();
76
+  return shortName ? files.shortFilename() : files.filename();
77 77
 }
78 78
 
79 79
 void FilesScreen::drawSelectedFile() {
@@ -132,13 +132,13 @@ void FilesScreen::drawFileList() {
132 132
   mydata.num_page = max(1,ceil(float(files.count()) / FILES_PER_PAGE));
133 133
   mydata.cur_page = min(mydata.cur_page, mydata.num_page-1);
134 134
   mydata.flags.is_root  = files.isAtRootDir();
135
+  mydata.flags.is_empty = true;
135 136
 
136 137
   uint16_t fileIndex = mydata.cur_page * FILES_PER_PAGE;
137 138
   for (uint8_t i = 0; i < FILES_PER_PAGE; i++, fileIndex++) {
138
-    if (files.seek(fileIndex))
139
-      drawFileButton(files.filename(), getTagForLine(i), files.isDir(), false);
140
-    else
141
-      break;
139
+    if (!files.seek(fileIndex)) break;
140
+    drawFileButton(files.filename(), getTagForLine(i), files.isDir(), false);
141
+    mydata.flags.is_empty = false;
142 142
   }
143 143
 }
144 144
 
@@ -252,11 +252,11 @@ bool FilesScreen::onTouchEnd(uint8_t tag) {
252 252
           mydata.scroll_pos = 0;
253 253
           mydata.scroll_max = 0;
254 254
           if (FTDI::ftdi_chip >= 810) {
255
-            const char *longFilename = getSelectedLongFilename();
256
-            if (longFilename[0]) {
255
+            const char *filename = getSelectedFilename();
256
+            if (filename[0]) {
257 257
               CommandProcessor cmd;
258 258
               constexpr int dim[4] = {LIST_POS};
259
-              const uint16_t text_width = cmd.font(font_medium).text_width(longFilename);
259
+              const uint16_t text_width = cmd.font(font_medium).text_width(filename);
260 260
               if (text_width > dim[2])
261 261
                 mydata.scroll_max = text_width - dim[2] + MARGIN_L + MARGIN_R + 10;
262 262
             }

+ 5
- 5
Marlin/src/lcd/extui/ftdi_eve_touch_ui/generic/files_screen.h View File

@@ -27,8 +27,9 @@
27 27
 
28 28
 struct FilesScreenData {
29 29
   struct {
30
-    uint8_t is_dir  : 1;
31
-    uint8_t is_root : 1;
30
+    uint8_t is_dir   : 1;
31
+    uint8_t is_root  : 1;
32
+    uint8_t is_empty : 1;
32 33
   } flags;
33 34
   uint8_t   selected_tag;
34 35
   uint8_t   num_page;
@@ -46,9 +47,8 @@ class FilesScreen : public BaseScreen, public CachedScreen<FILES_SCREEN_CACHE, F
46 47
     static uint16_t getFileForTag(uint8_t tag);
47 48
     static uint16_t getSelectedFileIndex();
48 49
 
49
-    inline static const char *getSelectedShortFilename() {return getSelectedFilename(false);}
50
-    inline static const char *getSelectedLongFilename()  {return getSelectedFilename(true);}
51
-    static const char *getSelectedFilename(bool longName);
50
+    inline static const char *getSelectedShortFilename() {return getSelectedFilename(true);}
51
+    static const char *getSelectedFilename(bool shortName = false);
52 52
 
53 53
     static void drawFileButton(int x, int y, int w, int h, const char *filename, uint8_t tag, bool is_dir, bool is_highlighted);
54 54
     static void drawFileButton(const char *filename, uint8_t tag, bool is_dir, bool is_highlighted);

Loading…
Cancel
Save