From 8e6dcd6db53eacdb4426f7a21dbdc211fe6b05f2 Mon Sep 17 00:00:00 2001 From: Arno Date: Sun, 8 Sep 2019 20:02:50 +0200 Subject: Fix date lookup This was broken from the beginning, I guess. Fix it by looking up the artist in an extra query instead of using a broken join. --- collectiondatesview.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'collectiondatesview.cpp') diff --git a/collectiondatesview.cpp b/collectiondatesview.cpp index 59fd5d2..6dad995 100644 --- a/collectiondatesview.cpp +++ b/collectiondatesview.cpp @@ -22,9 +22,11 @@ void CollectionDatesView::populate(){ QIcon songIcon(":/song.png"); 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"); QHash years; QHash yearMonths; - QSqlQuery q1("SELECT DISTINCT(albums.ialbums_id), talbum_name, dadded, tartists_name FROM albums, artists, songs WHERE albums.ialbums_id = songs.ialbums_id AND songs.iartists_id = artists.iartists_id ORDER BY dadded DESC", db); + QSqlQuery q1("SELECT ialbums_id, talbum_name, dadded FROM albums ORDER BY dadded DESC", db); while(q1.next()){ QDate added = q1.value(2).toDate(); int year = added.year(); @@ -50,7 +52,13 @@ void CollectionDatesView::populate(){ yearItem->appendRow(ymItem); } QStandardItem *albumItem = new QStandardItem; - QString albumText = QString("%1 - %2").arg(q1.value(3).toString()).arg(q1.value(1).toString()); + QString artist; + artistQ.bindValue(":aid", q1.value(0)); + artistQ.exec(); + while(artistQ.next()){ + artist = artistQ.value(0).toString(); + } + QString albumText = QString("%1 - %2").arg(artist).arg(q1.value(1).toString()); albumItem->setText(albumText); albumItem->setIcon(albumIcon); albumItem->setData(Album, TypeRole); -- cgit v1.2.3-70-g09d2