From 7c1e9298ee8710284166004aa109bcb149b3d98f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sun, 14 Jan 2024 08:36:12 +0100 Subject: [PATCH] Add a method to get the list of libraries sorted like they are shown in the UI --- YACReaderLibrary/yacreader_libraries.cpp | 8 ++++++++ YACReaderLibrary/yacreader_libraries.h | 1 + 2 files changed, 9 insertions(+) diff --git a/YACReaderLibrary/yacreader_libraries.cpp b/YACReaderLibrary/yacreader_libraries.cpp index 6154cc6d..94f5bf83 100644 --- a/YACReaderLibrary/yacreader_libraries.cpp +++ b/YACReaderLibrary/yacreader_libraries.cpp @@ -1,4 +1,5 @@ #include "yacreader_libraries.h" +#include "qnaturalsorting.h" #include "yacreader_global.h" void writeIdToLibraryFolder(const QString &path, const QUuid &id) @@ -117,6 +118,13 @@ QList YACReaderLibraries::getLibraries() const return libraries; } +QList YACReaderLibraries::sortedLibraries() const +{ + auto sortedLibraries = libraries; + std::sort(sortedLibraries.begin(), sortedLibraries.end(), [](const YACReaderLibrary &library1, const YACReaderLibrary &library2) { return naturalSortLessThanCI(library1.getName(), library2.getName()); }); + return sortedLibraries; +} + QUuid YACReaderLibraries::getLibraryIdFromLegacyId(int legacyId) const { auto library = std::find_if(libraries.cbegin(), libraries.cend(), [legacyId](const YACReaderLibrary &library) { return library.getLegacyId() == legacyId; }); diff --git a/YACReaderLibrary/yacreader_libraries.h b/YACReaderLibrary/yacreader_libraries.h index 4ad852e9..0d0bee0a 100644 --- a/YACReaderLibrary/yacreader_libraries.h +++ b/YACReaderLibrary/yacreader_libraries.h @@ -26,6 +26,7 @@ public: int getIdFromUuid(const QUuid &uuid); YACReaderLibraries &operator=(const YACReaderLibraries &source); QList getLibraries() const; + QList sortedLibraries() const; QUuid getLibraryIdFromLegacyId(int legacyId) const; public slots: void addLibrary(const QString &name, const QString &path);