diff options
Diffstat (limited to 'playerwidget.cpp')
-rw-r--r-- | playerwidget.cpp | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/playerwidget.cpp b/playerwidget.cpp index 0fb97ed..4464479 100644 --- a/playerwidget.cpp +++ b/playerwidget.cpp @@ -1472,9 +1472,18 @@ void PlayerWidget::searchMusicbrainzLeft(){ mWebDownloader->fetchData(artist, album); } - void PlayerWidget::webDlDone(){ QString aId = mWebDownloader->artistId(); + QString artist = mWebDownloader->artist(); + QHash<QString, QString> dbAlbums; + QSqlDatabase db = QSqlDatabase::database("beetplayerdb"); + QSqlQuery aQ(db); + aQ.prepare("SELECT DISTINCT(albums.talbum_name), siyear FROM artists, albums, songs WHERE artists.tartists_name = :aname AND artists.iartists_id = songs.iartists_id AND songs.ialbums_id = albums.ialbums_id"); + aQ.bindValue(":aname", artist); + aQ.exec(); + while(aQ.next()){ + dbAlbums.insert(aQ.value(0).toString(), aQ.value(1).toString()); + } QString text; if(!aId.isEmpty()){ text.append(QString(tr("<b>Musicbrainz:</b><table style=\"margin-bottom: 20px\">"))); @@ -1487,18 +1496,27 @@ void PlayerWidget::webDlDone(){ std::sort(other.begin(), other.end(), [](auto a, auto b){ return a.at(2).toInt() < b.at(2).toInt(); }); - text.append(QString(tr("<b>All Albums (%1):</b><ul>")).arg(QString::number(other.count()))); + text.append(QString(tr("<b>All Albums (%1):</b><dl>")).arg(QString::number(other.count()))); foreach(const QVariant vl, other){ QVariantList cur = vl.toList(); QString id = cur.at(0).toString(); QString album = cur.at(1).toString(); QString year = cur.at(2).toString(); + bool present = false; if(year == "-1"){ year = "nota"; } - text.append(QString("<li>%1: <a href=\"https://musicbrainz.org/release-group/%2\">%3</a></li>").arg(year).arg(id).arg(album)); + if(dbAlbums.contains(album)){ + year = dbAlbums.value(album); + present = true; + } + if(present){ + text.append(QString("<dt>♂ %1: <a href=\"https://musicbrainz.org/release-group/%2\">%3</a></dt>").arg(year).arg(id).arg(album)); + }else{ + text.append(QString("<dt>♀ %1: <a href=\"https://musicbrainz.org/release-group/%2\">%3</a></dt>").arg(year).arg(id).arg(album)); + } } - text.append("</ul>"); + text.append("</dl>"); }else{ text.append(QString(tr("<b>Musicbrainz: No match!</b><br/>"))); const QMap<QString, QString> alt = mWebDownloader->alternateArtists(); |