From 6f59de4d3e4103f98f49eff5c6dd35ba1c1594a0 Mon Sep 17 00:00:00 2001 From: Arno Date: Sun, 8 Sep 2019 23:00:04 +0200 Subject: Fix the date display (again) Hopefully this time for good. Don't duplicate albums when they have multiple artists. Grab the one with the most instead and be good. --- collectiondatesview.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/collectiondatesview.cpp b/collectiondatesview.cpp index 6dad995..f0991cb 100644 --- a/collectiondatesview.cpp +++ b/collectiondatesview.cpp @@ -23,7 +23,7 @@ void CollectionDatesView::populate(){ QSqlQuery songQ(db); songQ.prepare("SELECT sipos, ttitle, tfullpath, igenres_id, artists.tartists_name, albums.talbum_name, ilength FROM songs, artists, albums WHERE albums.ialbums_id = :id AND songs.iartists_id = artists.iartists_id and songs.ialbums_id = albums.ialbums_id ORDER BY sipos"); QSqlQuery artistQ(db); - artistQ.prepare("SELECT DISTINCT(tartists_name) FROM artists, songs WHERE songs.ialbums_id = :aid AND songs.iartists_id = artists.iartists_id LIMIT 1"); + artistQ.prepare("SELECT DISTINCT(tartists_name), COUNT(tartists_name) FROM artists, songs WHERE songs.ialbums_id = :aid AND songs.iartists_id = artists.iartists_id GROUP BY tartists_name"); QHash years; QHash yearMonths; QSqlQuery q1("SELECT ialbums_id, talbum_name, dadded FROM albums ORDER BY dadded DESC", db); @@ -53,11 +53,16 @@ void CollectionDatesView::populate(){ } QStandardItem *albumItem = new QStandardItem; QString artist; + int artistCount = 0; artistQ.bindValue(":aid", q1.value(0)); artistQ.exec(); while(artistQ.next()){ - artist = artistQ.value(0).toString(); + if(artistQ.value(1).toInt() > artistCount){ + artistCount = artistQ.value(1).toInt(); + artist = artistQ.value(0).toString(); + } } + QString albumText = QString("%1 - %2").arg(artist).arg(q1.value(1).toString()); albumItem->setText(albumText); albumItem->setIcon(albumIcon); -- cgit v1.2.3-70-g09d2