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() : "" }
{
setName(name);
_sortName = _name;
}
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:
query.orderBy("r.name COLLATE NOCASE");
break;
case ReleaseSortMethod::SortName:
query.orderBy("r.sort_name COLLATE NOCASE");
break;
case ReleaseSortMethod::ArtistNameThenName:
query.orderBy("a.name COLLATE NOCASE, r.name COLLATE NOCASE");
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_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_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_name_idx ON release_type(name COLLATE NOCASE)");
@@ -147,6 +147,7 @@ namespace lms::db
None,
Id,
Name,
SortName,
ArtistNameThenName,
DateAsc,
DateDesc,
@@ -55,8 +55,8 @@ namespace lms::scanner
if (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;
}
@@ -163,8 +163,11 @@ namespace lms::scanner
{
if (release->getName() != 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)
release.modify()->setGroupMBID(releaseInfo.groupMBID);
if (release->getTotalDisc() != releaseInfo.mediumCount)
+1 -1
View File
@@ -117,7 +117,7 @@ namespace lms::ui
{
Release::FindParameters params;
params.setFilters(getDbFilters());
params.setSortMethod(ReleaseSortMethod::Name);
params.setSortMethod(ReleaseSortMethod::SortName);
params.setKeywords(getSearchKeywords());
params.setRange(range);