on xenial help sign in
Pass album and artist to albumart image provider.
b89e21fPawel Stolowski
plugins/Unity/categoryresults.cpp+1−1
@@ -83,7 +83,7 @@ CategoryResults::data(const QModelIndex& index, int role) const
83 if (giconString.isEmpty()) {
83 if (giconString.isEmpty()) {
84 QString mimetype(DeeListModel::data(index, ResultsColumn::MIMETYPE).toString());
84 QString mimetype(DeeListModel::data(index, ResultsColumn::MIMETYPE).toString());
85 QString uri(DeeListModel::data(index, ResultsColumn::URI).toString());
85 QString uri(DeeListModel::data(index, ResultsColumn::URI).toString());
86− QString thumbnailerUri(uriToThumbnailerProviderString(uri, mimetype));
86+ QString thumbnailerUri(uriToThumbnailerProviderString(uri, mimetype, DeeListModel::data(index, ResultsColumn::METADATA).toHash()));
87 if (!thumbnailerUri.isNull()) {
87 if (!thumbnailerUri.isNull()) {
88 return QVariant::fromValue(thumbnailerUri);
88 return QVariant::fromValue(thumbnailerUri);
89 }
89 }
plugins/Unity/iconutils.cpp+14−3
@@ -92,11 +92,22 @@ QString gIconToDeclarativeImageProviderString(QString const &giconString)
92 return result;
92 return result;
93}
93}
94
94
95−QString uriToThumbnailerProviderString(QString const &uri, QString const &mimetype)
95+QString uriToThumbnailerProviderString(QString const &uri, QString const &mimetype, QVariantHash const &metadata)
96{
96{
97 if (uri.startsWith(QLatin1String("file:///"))) {
97 if (uri.startsWith(QLatin1String("file:///"))) {
98− QString thumbnailerUri(mimetype.startsWith(QLatin1String("audio/")) ? BASE_ALBUMART_URI : BASE_THUMBNAILER_URI);
98+ bool isAudio = mimetype.startsWith(QLatin1String("audio/"));
99+ QString thumbnailerUri;
100+ if (isAudio) {
101+ thumbnailerUri = BASE_ALBUMART_URI;
102+ const QString album = metadata["album"].toString();
103+ const QString artist = metadata["artist"].toString();
104+ thumbnailerUri.append(album);
105+ thumbnailerUri.append("§"); //FIXME: change to proper escaping
106+ thumbnailerUri.append(artist);
107+ } else {
108+ thumbnailerUri = BASE_THUMBNAILER_URI;
99− thumbnailerUri.append(uri.midRef(7));
109+ thumbnailerUri.append(uri.midRef(7));
110+ }
100 return thumbnailerUri;
111 return thumbnailerUri;
101 }
112 }
102
113
plugins/Unity/iconutils.h+2−1
@@ -21,8 +21,9 @@
21#define ICONUTILS_H
21#define ICONUTILS_H
22
22
23#include <QString>
23#include <QString>
24+#include <QVariant>
24
25
25QString gIconToDeclarativeImageProviderString(QString const &giconString);
26QString gIconToDeclarativeImageProviderString(QString const &giconString);
26−QString uriToThumbnailerProviderString(QString const &uri, QString const &mimetype);
27+QString uriToThumbnailerProviderString(QString const &uri, QString const &mimetype, QVariantHash const &metadata);
27
28
28#endif
29#endif
plugins/Unity/preview.cpp+1−1
@@ -113,7 +113,7 @@ QString Preview::image() const
113 return result;
113 return result;
114 } else {
114 } else {
115 QString sourceMedia(QString::fromStdString(m_unityPreview->image_source_uri()));
115 QString sourceMedia(QString::fromStdString(m_unityPreview->image_source_uri()));
116− QString thumbnailUri(uriToThumbnailerProviderString(sourceMedia, m_result->mimeType()));
116+ QString thumbnailUri(uriToThumbnailerProviderString(sourceMedia, m_result->mimeType(), m_result->metadata().toHash()));
117 if (!thumbnailUri.isNull()) return thumbnailUri;
117 if (!thumbnailUri.isNull()) return thumbnailUri;
118 }
118 }
119 } else {
119 } else {
plugins/Utils/mediaartcache.cpp−1
@@ -176,4 +176,3 @@ void MediaArtCache::prune() {
176 }
176 }
177 }
177 }
178}
178}
179−