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);