Beautify DGUS2 Clone file display. Might need some refactoring.

This commit is contained in:
Knutwurst
2023-05-31 16:57:20 +02:00
parent 2af4a2d4e6
commit 6d257896c0
2 changed files with 29 additions and 26 deletions

View File

@@ -970,18 +970,6 @@ void AnycubicTouchscreenClass::RenderCurrentFolder(uint16_t selectedNumber) {
SERIAL_ECHOLN(currentFileList.filename());
#endif
/*
if (currentFileList.isDir()) {
SEND_PGM("/");
SENDLINE(currentFileList.shortFilename());
SEND_PGM("/");
SENDLINE(currentFileList.filename());
} else {
SENDLINE(currentFileList.shortFilename());
SENDLINE(currentFileList.filename());
}
*/
// The longname may not be filed, so we use the built-in fallback here.
const char* fileName = currentFileList.filename();
int fileNameLen = strlen(fileName);
@@ -994,10 +982,11 @@ void AnycubicTouchscreenClass::RenderCurrentFolder(uint16_t selectedNumber) {
fileNameWasCut = true;
fileNameLen = MAX_PRINTABLE_FILENAME_LEN;
}
char outputString[MAX_PRINTABLE_FILENAME_LEN];
#else
char outputString[fileNameLen];
#endif
char outputString[fileNameLen];
// Bugfix for non-printable special characters
// which are now replaced by underscores.
for (unsigned char i = 0; i <= fileNameLen; i++) {
@@ -1012,17 +1001,31 @@ void AnycubicTouchscreenClass::RenderCurrentFolder(uint16_t selectedNumber) {
}
// I know, it's ugly, but it's faster than a string lib
if (fileNameWasCut) {
outputString[fileNameLen - 7] = '~';
outputString[fileNameLen - 6] = '.';
outputString[fileNameLen - 5] = 'g';
outputString[fileNameLen - 4] = 'c';
outputString[fileNameLen - 3] = 'o';
outputString[fileNameLen - 2] = 'd';
outputString[fileNameLen - 1] = 'e';
}
outputString[fileNameLen] = '\0';
#if ENABLED(KNUTWURST_DGUS2_TFT)
if (fileNameWasCut) {
outputString[MAX_PRINTABLE_FILENAME_LEN - 7] = '~';
outputString[MAX_PRINTABLE_FILENAME_LEN - 6] = '.';
outputString[MAX_PRINTABLE_FILENAME_LEN - 5] = 'g';
outputString[MAX_PRINTABLE_FILENAME_LEN - 4] = 'c';
outputString[MAX_PRINTABLE_FILENAME_LEN - 3] = 'o';
outputString[MAX_PRINTABLE_FILENAME_LEN - 2] = 'd';
outputString[MAX_PRINTABLE_FILENAME_LEN - 1] = 'e';
outputString[MAX_PRINTABLE_FILENAME_LEN] = '\0';
} else if (currentFileList.isDir()) {
for (unsigned char i = fileNameLen; i < MAX_PRINTABLE_FILENAME_LEN - 7; i++) {
outputString[i] = ' ';
}
outputString[MAX_PRINTABLE_FILENAME_LEN - 7] = '\0';
} else {
for (unsigned char i = fileNameLen; i < MAX_PRINTABLE_FILENAME_LEN; i++) {
outputString[i] = ' ';
}
outputString[MAX_PRINTABLE_FILENAME_LEN] = '\0';
}
#else
outputString[fileNameLen] = '\0';
#endif
if (currentFileList.isDir()) {
#if ENABLED(KNUTWURST_DGUS2_TFT)

View File

@@ -150,7 +150,7 @@ enum AnycubicMediaPauseState {
#endif // !KNUTWURST_DGUS2_TFT
#if ENABLED(KNUTWURST_DGUS2_TFT)
#define SM_DIR_UP_L "<<< BACK <<< .gcode"
#define SM_DIR_UP_L "/.. .gcode"
#define SM_DIR_UP_S "DIR_UP~1.GCO"
#define SM_SPECIAL_MENU_L "<Special Menu> .gcode"
#define SM_SPECIAL_MENU_S "<SPECI~1.GCO"