Use album sort order in UI, fixes #616

This commit is contained in:
emeric
2025-02-22 19:57:06 +01:00
parent 7518d68ed2
commit d19d6f04b2
6 changed files with 14 additions and 6 deletions
-1
View File
@@ -205,7 +205,6 @@ namespace lms::db
: _mbid{ mbid ? mbid->getAsString() : "" } : _mbid{ mbid ? mbid->getAsString() : "" }
{ {
setName(name); setName(name);
_sortName = _name;
} }
Artist::pointer Artist::create(Session& session, const std::string& name, const std::optional<core::UUID>& mbid) Artist::pointer Artist::create(Session& session, const std::string& name, const std::optional<core::UUID>& mbid)
+3
View File
@@ -218,6 +218,9 @@ namespace lms::db
case ReleaseSortMethod::Name: case ReleaseSortMethod::Name:
query.orderBy("r.name COLLATE NOCASE"); query.orderBy("r.name COLLATE NOCASE");
break; break;
case ReleaseSortMethod::SortName:
query.orderBy("r.sort_name COLLATE NOCASE");
break;
case ReleaseSortMethod::ArtistNameThenName: case ReleaseSortMethod::ArtistNameThenName:
query.orderBy("a.name COLLATE NOCASE, r.name COLLATE NOCASE"); query.orderBy("a.name COLLATE NOCASE, r.name COLLATE NOCASE");
break; break;
+2
View File
@@ -239,6 +239,8 @@ namespace lms::db
utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS release_mbid_idx ON release(mbid)"); utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS release_mbid_idx ON release(mbid)");
utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS release_name_idx ON release(name)"); utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS release_name_idx ON release(name)");
utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS release_name_nocase_idx ON release(name COLLATE NOCASE)"); utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS release_name_nocase_idx ON release(name COLLATE NOCASE)");
utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS release_sort_name_idx ON release(sort_name)");
utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS release_sort_name_nocase_idx ON release(sort_name COLLATE NOCASE)");
utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS release_type_id_idx ON release_type(id)"); utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS release_type_id_idx ON release_type(id)");
utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS release_type_name_idx ON release_type(name COLLATE NOCASE)"); utils::executeCommand(_session, "CREATE INDEX IF NOT EXISTS release_type_name_idx ON release_type(name COLLATE NOCASE)");
@@ -147,6 +147,7 @@ namespace lms::db
None, None,
Id, Id,
Name, Name,
SortName,
ArtistNameThenName, ArtistNameThenName,
DateAsc, DateAsc,
DateDesc, DateDesc,
@@ -55,8 +55,8 @@ namespace lms::scanner
if (artistInfo.mbid) if (artistInfo.mbid)
artist.modify()->setMBID(artistInfo.mbid); artist.modify()->setMBID(artistInfo.mbid);
if (artistInfo.sortName)
artist.modify()->setSortName(*artistInfo.sortName); artist.modify()->setSortName(artistInfo.sortName ? *artistInfo.sortName : artistInfo.name);
return artist; return artist;
} }
@@ -163,8 +163,11 @@ namespace lms::scanner
{ {
if (release->getName() != releaseInfo.name) if (release->getName() != releaseInfo.name)
release.modify()->setName(releaseInfo.name); release.modify()->setName(releaseInfo.name);
if (release->getSortName() != releaseInfo.sortName) {
release.modify()->setSortName(releaseInfo.sortName); std::string_view sortName{ !releaseInfo.sortName.empty() ? releaseInfo.sortName : releaseInfo.name };
if (release->getSortName() != sortName)
release.modify()->setSortName(sortName);
}
if (release->getGroupMBID() != releaseInfo.groupMBID) if (release->getGroupMBID() != releaseInfo.groupMBID)
release.modify()->setGroupMBID(releaseInfo.groupMBID); release.modify()->setGroupMBID(releaseInfo.groupMBID);
if (release->getTotalDisc() != releaseInfo.mediumCount) if (release->getTotalDisc() != releaseInfo.mediumCount)
+1 -1
View File
@@ -117,7 +117,7 @@ namespace lms::ui
{ {
Release::FindParameters params; Release::FindParameters params;
params.setFilters(getDbFilters()); params.setFilters(getDbFilters());
params.setSortMethod(ReleaseSortMethod::Name); params.setSortMethod(ReleaseSortMethod::SortName);
params.setKeywords(getSearchKeywords()); params.setKeywords(getSearchKeywords());
params.setRange(range); params.setRange(range);