diff options
author | Arno <arno@disconnect.de> | 2019-09-08 20:02:50 +0200 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2019-09-08 20:02:50 +0200 |
commit | 8e6dcd6db53eacdb4426f7a21dbdc211fe6b05f2 (patch) | |
tree | b7de970364d79d18b66318363f5eb52573dfee12 | |
parent | 0e0d7944883fd7aad7c8334c9d7cc636d84a0630 (diff) | |
download | BeetPlayer-8e6dcd6db53eacdb4426f7a21dbdc211fe6b05f2.tar.gz BeetPlayer-8e6dcd6db53eacdb4426f7a21dbdc211fe6b05f2.tar.bz2 BeetPlayer-8e6dcd6db53eacdb4426f7a21dbdc211fe6b05f2.zip |
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.
-rw-r--r-- | collectiondatesview.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
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<int, QStandardItem*> years; QHash<QString, QStandardItem*> 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); |