Skip to content

Commit edc784e

Browse files
committed
fix misconceptions
1 parent 2412e93 commit edc784e

File tree

2 files changed

+22
-12
lines changed

2 files changed

+22
-12
lines changed

src/Utils.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -480,13 +480,13 @@ void Utils::popualteSongToSongDataMap() {
480480
const std::filesystem::path& theirPath = Utils::toProblematicString(song);
481481
SongData songData = {
482482
.actualFilePath = std::string(song),
483-
.fileExtension = theirPath.extension(),
484-
.fileName = theirPath.filename(),
485-
.displayName = theirPath.stem(),
483+
.fileExtension = Utils::toNormalizedString(theirPath.extension()),
484+
.fileName = Utils::toNormalizedString(theirPath.filename()),
486485
.type = songType,
487486
.isFromConfigOrAltDir = Utils::isFromConfigOrAlternateDir(theirPath.parent_path()),
488487
.isEmpty = false
489488
};
489+
songData.displayName = Utils::toNormalizedString(SongListLayer::generateDisplayName(songData)),
490490

491491
songToSongData.emplace(theirPath, songData);
492492
tempKeys.push_back(theirPath);

src/ui/SongListLayer.cpp

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ void SongListLayer::addSongsToScrollLayer(geode::ScrollLayer* scrollLayer, SongM
4646
const std::vector<std::string>& songsVector = songManager.getSongs();
4747
float desiredContentHeight = SEARCH_BAR_ENABLED ? 36.f : 0.f; // always start with the height of the blank song cell, which is guaranteed to be 36.f units
4848

49+
const SongToSongData& songToSongData = songManager.getSongToSongDataEntries();
50+
4951
for (const std::string& song : songsVector) {
5052
if (std::ranges::find(alreadyAdded.begin(), alreadyAdded.end(), song) != alreadyAdded.end()) continue;
5153

@@ -55,19 +57,27 @@ void SongListLayer::addSongsToScrollLayer(geode::ScrollLayer* scrollLayer, SongM
5557

5658
if (songListFavoritesOnlyMode && songType != SongType::Favorited) continue;
5759

60+
SongData songData {};
61+
bool songDataFromTheMap = false;
5862
const std::filesystem::path& songFilePath = Utils::toProblematicString(song);
59-
SongData songData = {
60-
.actualFilePath = Utils::toNormalizedString(songFilePath),
61-
.fileExtension = Utils::toNormalizedString(songFilePath.extension()),
62-
.fileName = Utils::toNormalizedString(songFilePath.filename()),
63-
.type = songType,
64-
.isFromConfigOrAltDir = Utils::isFromConfigOrAlternateDir(songFilePath.parent_path()),
65-
.isEmpty = false
66-
};
63+
auto songDataIterator = songToSongData.find(songFilePath);
64+
if (songDataIterator != songToSongData.end()) {
65+
songData = songDataIterator->second;
66+
songDataFromTheMap = true;
67+
} else {
68+
songData = {
69+
.actualFilePath = Utils::toNormalizedString(songFilePath),
70+
.fileExtension = Utils::toNormalizedString(songFilePath.extension()),
71+
.fileName = Utils::toNormalizedString(songFilePath.filename()),
72+
.type = songType,
73+
.isFromConfigOrAltDir = Utils::isFromConfigOrAlternateDir(songFilePath.parent_path()),
74+
.isEmpty = false
75+
};
76+
}
6777

6878
songData.displayName = SongListLayer::generateDisplayName(songData);
6979

70-
if (SONG_SORTING_ENABLED && SAVED("songListSortSongLength")) songData.songLength = SongListLayer::getLength(songData.actualFilePath, reverse);
80+
if (SONG_SORTING_ENABLED && SAVED("songListSortSongLength") && !songDataFromTheMap) songData.songLength = SongListLayer::getLength(songData.actualFilePath, reverse);
7181

7282
if (SEARCH_BAR_ENABLED && !queryString.empty()) {
7383
const bool contains = geode::utils::string::contains(geode::utils::string::toLower(songData.displayName), geode::utils::string::toLower(queryString));

0 commit comments

Comments
 (0)