diff options
author | Dominik Holland <dominik.holland@pelagicore.com> | 2017-03-06 13:28:21 +0100 |
---|---|---|
committer | Dominik Holland <dominik.holland@pelagicore.com> | 2017-03-08 10:46:30 +0000 |
commit | 5dcadb7b9196255d73ae524f2dd72913c08d584a (patch) | |
tree | f6a1cd265b94710e7eb344dce3665e03d8e17b8c | |
parent | dcb3657094eac5f4f8de5ea7c135dc5f4f0d9167 (diff) |
media_simulator: Return coverArts for artist and albums
Now the generic data field is used to return more metadata
for artists and albums
Change-Id: I8fd03a3e42e281cfa5906f7cb77aa61991deea9e
Reviewed-by: Robert Griebl <robert.griebl@pelagicore.com>
-rw-r--r-- | src/plugins/ivimedia/media_simulator/searchandbrowsebackend.cpp | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/src/plugins/ivimedia/media_simulator/searchandbrowsebackend.cpp b/src/plugins/ivimedia/media_simulator/searchandbrowsebackend.cpp index 0fcaa84..62e7f1e 100644 --- a/src/plugins/ivimedia/media_simulator/searchandbrowsebackend.cpp +++ b/src/plugins/ivimedia/media_simulator/searchandbrowsebackend.cpp @@ -91,12 +91,16 @@ void SearchAndBrowseBackend::fetchData(const QUuid &identifier, const QString &t order = QString(QLatin1String("ORDER BY %1")).arg(createSortOrder(current_type, orderTerms)); QString columns; - if (current_type == QLatin1String("artist")) - columns = QLatin1String("DISTINCT artistName"); - else if (current_type == QLatin1String("album")) - columns = QLatin1String("DISTINCT artistName, albumName"); - else + QString groupBy; + if (current_type == QLatin1String("artist")) { + columns = QLatin1String("artistName, coverArtUrl"); + groupBy = QLatin1String("artistName"); + } else if (current_type == QLatin1String("album")) { + columns = QLatin1String("artistName, albumName, coverArtUrl"); + groupBy = QLatin1String("artistName, albumName"); + } else { columns = QLatin1String("artistName, albumName, trackName, genre, number, file, id, coverArtUrl"); + } QString filterClause = createWhereClause(current_type, term); if (!filterClause.isEmpty()) @@ -104,13 +108,13 @@ void SearchAndBrowseBackend::fetchData(const QUuid &identifier, const QString &t QString whereClause = where_clauses.join(" AND "); - QString countQuery = QString(QLatin1String("SELECT count() FROM (SELECT %1 FROM track %2)")) + QString countQuery = QString(QLatin1String("SELECT count() FROM (SELECT %1 FROM track %2 %3)")) .arg(columns) - .arg(whereClause.isEmpty() ? QString() : QLatin1String("WHERE ") + whereClause); + .arg(whereClause.isEmpty() ? QString() : QLatin1String("WHERE ") + whereClause) + .arg(groupBy.isEmpty() ? QString() : QLatin1String("GROUP BY ") + groupBy); QSqlQuery query(m_db); - qDebug() << countQuery; if (query.exec(countQuery)) { while (query.next()) { emit countChanged(identifier, query.value(0).toInt()); @@ -119,10 +123,11 @@ void SearchAndBrowseBackend::fetchData(const QUuid &identifier, const QString &t qDebug() << query.lastError().text(); } - QString queryString = QString(QLatin1String("SELECT %1 FROM track %2 %3 LIMIT %4, %5")) + QString queryString = QString(QLatin1String("SELECT %1 FROM track %2 %3 %4 LIMIT %5, %6")) .arg(columns) .arg(whereClause.isEmpty() ? QString() : QLatin1String("WHERE ") + whereClause) .arg(order) + .arg(groupBy.isEmpty() ? QString() : QLatin1String("GROUP BY ") + groupBy) .arg(start) .arg(count); @@ -159,8 +164,12 @@ void SearchAndBrowseBackend::search(const QUuid &identifier, const QString &quer item.setType(type); if (type == QLatin1String("artist")) { item.setName(artist); + item.setData(QVariantMap{{"coverArtUrl", QUrl::fromLocalFile(query.value(1).toString())}}); } else if (type == QLatin1String("album")) { item.setName(album); + item.setData(QVariantMap{{"artist", artist}, + {"coverArtUrl", QUrl::fromLocalFile(query.value(2).toString())} + }); } list.append(QVariant::fromValue(item)); } |