aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2022-02-11 01:02:11 +0100
committerdec05eba <dec05eba@protonmail.com>2022-02-11 01:02:32 +0100
commita3eb2a9d6315f8a953f7dee72ebe4d17a4b9d42e (patch)
treef1c34ef90312f77f1581cbc366063f9f5534327b /src
parent1f74222bf4cfadead768b095c6b3f8d422ebf84c (diff)
Add local_manga_sort_by_name and local_manga_sort_chapters_by_name config
Diffstat (limited to 'src')
-rw-r--r--src/Config.cpp14
-rw-r--r--src/plugins/LocalManga.cpp20
2 files changed, 27 insertions, 7 deletions
diff --git a/src/Config.cpp b/src/Config.cpp
index 7f71f21..31da8f0 100644
--- a/src/Config.cpp
+++ b/src/Config.cpp
@@ -133,9 +133,9 @@ namespace QuickMedia {
if(use_system_fonts_json.isBool())
config->use_system_fonts = use_system_fonts_json.asBool();
- const Json::Value &use_system_mpv_config = json_root["use_system_mpv_config"];
- if(use_system_mpv_config.isBool())
- config->use_system_mpv_config = use_system_mpv_config.asBool();
+ const Json::Value &use_system_mpv_config_json = json_root["use_system_mpv_config"];
+ if(use_system_mpv_config_json.isBool())
+ config->use_system_mpv_config = use_system_mpv_config_json.asBool();
const Json::Value &theme_json = json_root["theme"];
if(theme_json.isString())
@@ -156,6 +156,14 @@ namespace QuickMedia {
const Json::Value &local_manga_directory_json = json_root["local_manga_directory"];
if(local_manga_directory_json.isString())
config->local_manga_directory = local_manga_directory_json.asString();
+
+ const Json::Value &local_manga_sort_by_name_json = json_root["local_manga_sort_by_name"];
+ if(local_manga_sort_by_name_json.isBool())
+ config->local_manga_sort_by_name = local_manga_sort_by_name_json.asBool();
+
+ const Json::Value &local_manga_sort_chapters_by_name_json = json_root["local_manga_sort_chapters_by_name"];
+ if(local_manga_sort_chapters_by_name_json.isBool())
+ config->local_manga_sort_chapters_by_name = local_manga_sort_chapters_by_name_json.asBool();
}
const Config& get_config() {
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;
}