Some file dialog fixes regarding too long filenames and special menu

This commit is contained in:
Knutwurst
2020-06-14 14:06:33 +02:00
parent 9b1009a65b
commit fb801fb3ec

View File

@@ -57,6 +57,8 @@ int PowerInt = 6;
unsigned char PowerTestFlag = false; unsigned char PowerTestFlag = false;
#endif #endif
#define MAX_PRINTABLE_FILENAME_LEN 21
void setup_OutageTestPin() void setup_OutageTestPin()
{ {
#if defined(POWER_OUTAGE_TEST) #if defined(POWER_OUTAGE_TEST)
@@ -522,14 +524,14 @@ void AnycubicTouchscreenClass::HandleSpecialMenu()
SERIAL_ECHOLNPGM("Special Menu: Z Down 0.01"); SERIAL_ECHOLNPGM("Special Menu: Z Down 0.01");
queue.inject_P(PSTR("G91\nG1 Z-0.01\nG90")); queue.inject_P(PSTR("G91\nG1 Z-0.01\nG90"));
} }
else if (strcmp(SelectedDirectory, "<filamentchange pause>") == 0) else if (strcmp(SelectedDirectory, "<fil. change pause>") == 0)
{ {
SERIAL_ECHOLNPGM("Special Menu: FilamentChange Pause"); SERIAL_ECHOLNPGM("Special Menu: Fil. Change Pause");
FilamentChangePause(); FilamentChangePause();
} }
else if (strcmp(SelectedDirectory, "<filamentchange resume>") == 0) else if (strcmp(SelectedDirectory, "<fil. change resume>") == 0)
{ {
SERIAL_ECHOLNPGM("Special Menu: FilamentChange Resume"); SERIAL_ECHOLNPGM("Special Menu: Fil. Change Resume");
FilamentChangeResume(); FilamentChangeResume();
} }
else if (strcmp(SelectedDirectory, "<disable fil. sensor>") == 0) else if (strcmp(SelectedDirectory, "<disable fil. sensor>") == 0)
@@ -564,10 +566,10 @@ void AnycubicTouchscreenClass::Ls()
HARDWARE_SERIAL_PROTOCOLLNPGM("<Exit>"); HARDWARE_SERIAL_PROTOCOLLNPGM("<Exit>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Preheat Ultrabase>"); HARDWARE_SERIAL_PROTOCOLLNPGM("<Preheat Ultrabase>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Preheat Ultrabase>"); HARDWARE_SERIAL_PROTOCOLLNPGM("<Preheat Ultrabase>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<FilamentChange Pause>"); HARDWARE_SERIAL_PROTOCOLLNPGM("<Fil. Change Pause>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<FilamentChange Pause>"); HARDWARE_SERIAL_PROTOCOLLNPGM("<Fil. Change Pause>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<FilamentChange Resume>"); HARDWARE_SERIAL_PROTOCOLLNPGM("<Fil. Change Resume>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<FilamentChange Resume>"); HARDWARE_SERIAL_PROTOCOLLNPGM("<Fil. Change Resume>");
break; break;
case 4: // Page 2 case 4: // Page 2
@@ -626,8 +628,8 @@ void AnycubicTouchscreenClass::Ls()
*/ */
default: default:
HARDWARE_SERIAL_PROTOCOLLNPGM("<Exit>"); //HARDWARE_SERIAL_PROTOCOLLNPGM("<Exit>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Exit>"); //HARDWARE_SERIAL_PROTOCOLLNPGM("<Exit>");
break; break;
} }
} }
@@ -674,6 +676,12 @@ void AnycubicTouchscreenClass::Ls()
// Bugfix for non-printable special characters // Bugfix for non-printable special characters
// which are now replaced by underscores. // which are now replaced by underscores.
int fileNameLen = strlen(card.longFilename); int fileNameLen = strlen(card.longFilename);
// Cut off too long filenames.
// They don't fit on the screen anyways.
if(fileNameLen > MAX_PRINTABLE_FILENAME_LEN)
fileNameLen = MAX_PRINTABLE_FILENAME_LEN;
char buffer[fileNameLen]; char buffer[fileNameLen];
for (unsigned char i = 0; i < fileNameLen; i++) for (unsigned char i = 0; i < fileNameLen; i++)