diff --git a/src/screens/FileSelectionScreen.cpp b/src/screens/FileSelectionScreen.cpp index b11c4c2..de03733 100644 --- a/src/screens/FileSelectionScreen.cpp +++ b/src/screens/FileSelectionScreen.cpp @@ -3,8 +3,10 @@ #include #include -void caseInsensitiveSort(std::vector& strs) { +void sortFileList(std::vector& strs) { std::sort(begin(strs), end(strs), [](const std::string& str1, const std::string& str2) { + if (str1.back() == '/' && str2.back() != '/') return true; + if (str1.back() != '/' && str2.back() == '/') return false; return lexicographical_compare( begin(str1), end(str1), begin(str2), end(str2), [](const char& char1, const char& char2) { return tolower(char1) < tolower(char2); }); @@ -35,7 +37,7 @@ void FileSelectionScreen::loadFiles() { file.close(); } root.close(); - caseInsensitiveSort(files); + sortFileList(files); } void FileSelectionScreen::onEnter() {