diff options
author | dec05eba <dec05eba@protonmail.com> | 2022-02-11 01:02:11 +0100 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2022-02-11 01:02:32 +0100 |
commit | a3eb2a9d6315f8a953f7dee72ebe4d17a4b9d42e (patch) | |
tree | f1c34ef90312f77f1581cbc366063f9f5534327b /src/plugins | |
parent | 1f74222bf4cfadead768b095c6b3f8d422ebf84c (diff) |
Add local_manga_sort_by_name and local_manga_sort_chapters_by_name config
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/LocalManga.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/plugins/LocalManga.cpp b/src/plugins/LocalManga.cpp index 06b5cf0..4deb229 100644 --- a/src/plugins/LocalManga.cpp +++ b/src/plugins/LocalManga.cpp @@ -33,7 +33,7 @@ namespace QuickMedia { static std::vector<LocalMangaChapter> get_chapters_in_manga(const Path &directory) { std::vector<LocalMangaChapter> chapter_list; - for_files_in_dir_sort_last_modified(directory, [&chapter_list](const Path &filepath) -> bool { + auto callback = [&chapter_list](const Path &filepath) -> bool { if(get_file_type(filepath) != FileType::DIRECTORY) return true; @@ -45,13 +45,19 @@ namespace QuickMedia { chapter_list.push_back(std::move(local_manga_chapter)); return true; - }); + }; + + if(get_config().local_manga_sort_chapters_by_name) + for_files_in_dir_sort_name(directory, std::move(callback), FileSortDirection::DESC); + else + for_files_in_dir_sort_last_modified(directory, std::move(callback)); + return chapter_list; } static std::vector<LocalManga> get_manga_in_directory(const Path &directory) { std::vector<LocalManga> manga_list; - for_files_in_dir_sort_last_modified(directory, [&manga_list](const Path &filepath) -> bool { + auto callback = [&manga_list](const Path &filepath) -> bool { if(get_file_type(filepath) != FileType::DIRECTORY) return true; @@ -63,7 +69,13 @@ namespace QuickMedia { manga_list.push_back(std::move(local_manga)); return true; - }); + }; + + if(get_config().local_manga_sort_by_name) + for_files_in_dir_sort_name(directory, std::move(callback), FileSortDirection::ASC); + else + for_files_in_dir_sort_last_modified(directory, std::move(callback)); + return manga_list; } |