media library: toggle sort more: fetch data only if mtimes are not there
This commit is contained in:
@@ -919,20 +919,32 @@ void MediaLibrary::toggleSortMode()
|
|||||||
Config.media_library_sort_by_mtime ? "modification time" : "name");
|
Config.media_library_sort_by_mtime ? "modification time" : "name");
|
||||||
if (hasTwoColumns)
|
if (hasTwoColumns)
|
||||||
{
|
{
|
||||||
std::sort(Albums.beginV(), Albums.endV(), SortAlbumEntries());
|
withUnfilteredMenuReapplyFilter(Albums, [this]() {
|
||||||
|
std::sort(Albums.beginV(), Albums.endV(), SortAlbumEntries());
|
||||||
|
});
|
||||||
Albums.refresh();
|
Albums.refresh();
|
||||||
Songs.clear();
|
Songs.clear();
|
||||||
if (Config.titles_visibility)
|
if (Config.titles_visibility)
|
||||||
{
|
{
|
||||||
std::string item_type = boost::locale::to_lower(
|
std::string item_type = boost::locale::to_lower(
|
||||||
tagTypeToString(Config.media_lib_primary_tag));
|
tagTypeToString(Config.media_lib_primary_tag));
|
||||||
std::string and_mtime = Config.media_library_sort_by_mtime ? " and mtime" : "";
|
std::string and_mtime = Config.media_library_sort_by_mtime ? (" " "and mtime") : "";
|
||||||
Albums.setTitle("Albums (sorted by " + item_type + and_mtime + ")");
|
Albums.setTitle("Albums (sorted by " + item_type + and_mtime + ")");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Tags.clear();
|
withUnfilteredMenuReapplyFilter(Tags, [this]() {
|
||||||
|
// if we already have modification times,
|
||||||
|
// just resort. otherwise refetch the list.
|
||||||
|
if (!Tags.empty() && Tags[0].value().mtime() > 0)
|
||||||
|
{
|
||||||
|
std::sort(Tags.beginV(), Tags.endV(), SortPrimaryTags());
|
||||||
|
Tags.refresh();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Tags.clear();
|
||||||
|
});
|
||||||
Albums.clear();
|
Albums.clear();
|
||||||
Songs.clear();
|
Songs.clear();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user