Rebuild SD file sort array on Stop SD Print (#9976)

Thanks Chuck Hellebuyck.
This commit is contained in:
Scott Lahteine
2018-03-07 01:42:11 -06:00
committed by GitHub
parent 920d92aa46
commit 22a017a856
4 changed files with 38 additions and 14 deletions

View File

@ -328,12 +328,19 @@ void CardReader::startFileprint() {
}
}
void CardReader::stopSDPrint() {
void CardReader::stopSDPrint(
#if SD_RESORT
const bool re_sort/*=false*/
#endif
) {
#if ENABLED(ADVANCED_PAUSE_FEATURE)
did_pause_print = 0;
#endif
sdprinting = false;
if (isFileOpen()) file.close();
#if SD_RESORT
if (re_sort) presort();
#endif
}
void CardReader::openLogFile(char* name) {
@ -700,14 +707,14 @@ int8_t CardReader::updir() {
*/
void CardReader::presort() {
// Throw away old sort index
flush_presort();
// Sorting may be turned off
#if ENABLED(SDSORT_GCODE)
if (!sort_alpha) return;
#endif
// Throw away old sort index
flush_presort();
// If there are files, sort up to the limit
uint16_t fileCnt = getnrfilenames();
if (fileCnt > 0) {
@ -940,7 +947,6 @@ void CardReader::printingHasFinished() {
#if ENABLED(SDCARD_SORT_ALPHA)
presort();
#endif
#if ENABLED(SD_REPRINT_LAST_SELECTED_FILE)
lcd_reselect_last_file();
#endif