aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDominik Holland <dominik.holland@pelagicore.com>2017-03-06 13:28:21 +0100
committerDominik Holland <dominik.holland@pelagicore.com>2017-03-08 10:46:30 +0000
commit5dcadb7b9196255d73ae524f2dd72913c08d584a (patch)
treef6a1cd265b94710e7eb344dce3665e03d8e17b8c
parentdcb3657094eac5f4f8de5ea7c135dc5f4f0d9167 (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.cpp27
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));
}