🚸 Update Ender3 V2/S1 Pro UI (#23878)

This commit is contained in:
Miguel Risco-Castillo
2022-03-11 15:06:49 -05:00
committed by Scott Lahteine
parent b045c91f26
commit eabeac29fd
40 changed files with 1577 additions and 1211 deletions

View File

@ -195,7 +195,7 @@ char *createFilename(char * const buffer, const dir_t &p) {
}
//
// Return 'true' if the item is something Marlin can read
// Return 'true' if the item is a folder, G-code file or Binary file
//
bool CardReader::is_visible_entity(const dir_t &p OPTARG(CUSTOM_FIRMWARE_UPLOAD, bool onlyBin/*=false*/)) {
//uint8_t pn0 = p.name[0];
@ -212,14 +212,15 @@ bool CardReader::is_visible_entity(const dir_t &p OPTARG(CUSTOM_FIRMWARE_UPLOAD,
) return false;
flag.filenameIsDir = DIR_IS_SUBDIR(&p); // We know it's a File or Folder
setBinFlag(p.name[8] == 'B' && // List .bin files (a firmware file for flashing)
p.name[9] == 'I' &&
p.name[10]== 'N');
return (
flag.filenameIsDir // All Directories are ok
|| fileIsBinary() // BIN files are accepted
|| (!onlyBin && p.name[8] == 'G'
&& p.name[9] != '~') // Non-backup *.G* files are accepted
|| ( onlyBin && p.name[8] == 'B'
&& p.name[9] == 'I'
&& p.name[10] == 'N') // BIN files are accepted
);
}
@ -867,6 +868,7 @@ void CardReader::selectFileByIndex(const uint16_t nr) {
strcpy(filename, sortshort[nr]);
strcpy(longFilename, sortnames[nr]);
flag.filenameIsDir = IS_DIR(nr);
setBinFlag(strcmp_P(strrchr(filename, '.'), PSTR(".BIN")) == 0);
return;
}
#endif
@ -884,6 +886,7 @@ void CardReader::selectFileByName(const char * const match) {
strcpy(filename, sortshort[nr]);
strcpy(longFilename, sortnames[nr]);
flag.filenameIsDir = IS_DIR(nr);
setBinFlag(strcmp_P(strrchr(filename, '.'), PSTR(".BIN")) == 0);
return;
}
#endif

View File

@ -80,6 +80,9 @@ typedef struct {
filenameIsDir:1,
workDirIsRoot:1,
abort_sd_printing:1
#if DO_LIST_BIN_FILES
, filenameIsBin:1
#endif
#if ENABLED(BINARY_FILE_TRANSFER)
, binary_mode:1
#endif
@ -218,6 +221,10 @@ public:
static void removeJobRecoveryFile();
#endif
// Binary flag for the current file
static bool fileIsBinary() { return TERN0(DO_LIST_BIN_FILES, flag.filenameIsBin); }
static void setBinFlag(const bool bin) { TERN(DO_LIST_BIN_FILES, flag.filenameIsBin = bin, UNUSED(bin)); }
// Current Working Dir - Set by cd, cdup, cdroot, and diveToFile(true, ...)
static char* getWorkDirName() { workDir.getDosName(filename); return filename; }
static SdFile& getWorkDir() { return workDir.isOpen() ? workDir : root; }