mirror of
https://github.com/clementine-player/Clementine
synced 2025-02-01 11:56:45 +01:00
Show embedded cover art in the album cover manager too, but only for the first file in an album
This commit is contained in:
parent
f64cdb23e9
commit
0d0f1521f2
@ -603,7 +603,8 @@ LibraryBackend::AlbumList LibraryBackend::GetAlbums(const QString& artist,
|
||||
AlbumList ret;
|
||||
|
||||
LibraryQuery query(opt);
|
||||
query.SetColumnSpec("album, artist, compilation, sampler, art_automatic, art_manual");
|
||||
query.SetColumnSpec("album, artist, compilation, sampler, art_automatic, "
|
||||
"art_manual, filename");
|
||||
query.SetOrderBy("album");
|
||||
|
||||
if (compilation) {
|
||||
@ -626,6 +627,7 @@ LibraryBackend::AlbumList LibraryBackend::GetAlbums(const QString& artist,
|
||||
info.album_name = query.Value(0).toString();
|
||||
info.art_automatic = query.Value(4).toString();
|
||||
info.art_manual = query.Value(5).toString();
|
||||
info.first_filename = query.Value(6).toString();
|
||||
|
||||
if (info.artist == last_artist && info.album_name == last_album)
|
||||
continue;
|
||||
@ -645,7 +647,7 @@ LibraryBackend::Album LibraryBackend::GetAlbumArt(const QString& artist, const Q
|
||||
ret.artist = artist;
|
||||
|
||||
LibraryQuery query = LibraryQuery(QueryOptions());
|
||||
query.SetColumnSpec("art_automatic, art_manual");
|
||||
query.SetColumnSpec("art_automatic, art_manual, filename");
|
||||
query.AddWhere("artist", artist);
|
||||
query.AddWhere("album", album);
|
||||
|
||||
@ -655,6 +657,7 @@ LibraryBackend::Album LibraryBackend::GetAlbumArt(const QString& artist, const Q
|
||||
if (query.Next()) {
|
||||
ret.art_automatic = query.Value(0).toString();
|
||||
ret.art_manual = query.Value(1).toString();
|
||||
ret.first_filename = query.Value(2).toString();
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
@ -42,15 +42,18 @@ class LibraryBackend : public QObject {
|
||||
struct Album {
|
||||
Album() {}
|
||||
Album(const QString& _artist, const QString& _album_name,
|
||||
const QString& _art_automatic, const QString& _art_manual)
|
||||
const QString& _art_automatic, const QString& _art_manual,
|
||||
const QString& _first_filename)
|
||||
: artist(_artist), album_name(_album_name),
|
||||
art_automatic(_art_automatic), art_manual(_art_manual) {}
|
||||
art_automatic(_art_automatic), art_manual(_art_manual),
|
||||
first_filename(_first_filename) {}
|
||||
|
||||
QString artist;
|
||||
QString album_name;
|
||||
|
||||
QString art_automatic;
|
||||
QString art_manual;
|
||||
QString first_filename;
|
||||
};
|
||||
typedef QList<Album> AlbumList;
|
||||
|
||||
|
@ -255,12 +255,13 @@ void AlbumCoverManager::ArtistChanged(QListWidgetItem* current) {
|
||||
QListWidgetItem* item = new QListWidgetItem(no_cover_icon_, info.album_name, ui_->albums);
|
||||
item->setData(Role_ArtistName, info.artist);
|
||||
item->setData(Role_AlbumName, info.album_name);
|
||||
item->setData(Role_FirstFilename, info.first_filename);
|
||||
item->setData(Qt::TextAlignmentRole, QVariant(Qt::AlignTop | Qt::AlignHCenter));
|
||||
item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsDragEnabled);
|
||||
|
||||
if (!info.art_automatic.isEmpty() || !info.art_manual.isEmpty()) {
|
||||
quint64 id = cover_loader_->Worker()->LoadImageAsync(
|
||||
info.art_automatic, info.art_manual);
|
||||
info.art_automatic, info.art_manual, info.first_filename);
|
||||
item->setData(Role_PathAutomatic, info.art_automatic);
|
||||
item->setData(Role_PathManual, info.art_manual);
|
||||
cover_loading_tasks_[id] = item;
|
||||
|
@ -100,6 +100,7 @@ class AlbumCoverManager : public QMainWindow {
|
||||
Role_AlbumName,
|
||||
Role_PathAutomatic,
|
||||
Role_PathManual,
|
||||
Role_FirstFilename,
|
||||
};
|
||||
|
||||
enum HideCovers {
|
||||
|
Loading…
x
Reference in New Issue
Block a user