Refactoring

This commit is contained in:
Jonas Kvinge
2024-10-22 18:12:33 +02:00
parent dfcf715291
commit 8da2b9cd94
623 changed files with 9071 additions and 5126 deletions

View File

@@ -51,11 +51,11 @@
#include <taglib/tstring.h>
#include "core/iconloader.h"
#include "engine/enginemetadata.h"
#include "core/enginemetadata.h"
#include "utilities/strutils.h"
#include "utilities/timeutils.h"
#include "utilities/coverutils.h"
#include "utilities/timeconstants.h"
#include "constants/timeconstants.h"
#include "utilities/sqlhelper.h"
#include "song.h"
@@ -1960,3 +1960,43 @@ QString Song::TitleRemoveMisc(const QString &title) {
return StripRegexList(title, kTitleMisc);
}
QString Song::GetNameForNewPlaylist(const SongList &songs) {
if (songs.isEmpty()) {
return QObject::tr("Playlist");
}
QSet<QString> artists;
QSet<QString> albums;
artists.reserve(songs.count());
albums.reserve(songs.count());
for (const Song &song : songs) {
artists << (song.effective_albumartist().isEmpty() ? QObject::tr("Unknown") : song.effective_albumartist());
albums << (song.album().isEmpty() ? QObject::tr("Unknown") : song.album());
if (artists.size() > 1) {
break;
}
}
bool various_artists = artists.size() > 1;
QString result;
if (various_artists) {
result = QObject::tr("Various artists");
}
else {
QStringList artist_names = artists.values();
result = artist_names.first();
}
if (!various_artists && albums.size() == 1) {
QStringList album_names = albums.values();
result += " - "_L1 + album_names.first();
}
return result;
}