on xenial help sign in
Pass album and artist to albumart image provider.
commitb89e21f55809d8c966d8dadc7cf38645780247f5 authorPawel Stolowski <pawel.stolowski@canonical.com> dateTue 8 Oct 2013, 11:36 (13 years ago) parent9e79b6e
5 files changed+18−7
plugins/Unity/categoryresults.cpp+1−1 plugins/Unity/iconutils.cpp+14−3 plugins/Unity/iconutils.h+2−1 plugins/Unity/preview.cpp+1−1 plugins/Utils/mediaartcache.cpp−1
plugins/Unity/categoryresults.cpp+1−1
@@ -83,7 +83,7 @@ CategoryResults::data(const QModelIndex& index, int role) const
8383 if (giconString.isEmpty()) {
8484 QString mimetype(DeeListModel::data(index, ResultsColumn::MIMETYPE).toString());
8585 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()));
8787 if (!thumbnailerUri.isNull()) {
8888 return QVariant::fromValue(thumbnailerUri);
8989 }
plugins/Unity/iconutils.cpp+14−3
@@ -92,11 +92,22 @@ QString gIconToDeclarativeImageProviderString(QString const &giconString)
9292 return result;
9393}
9494
95−QString uriToThumbnailerProviderString(QString const &uri, QString const &mimetype)
95+QString uriToThumbnailerProviderString(QString const &uri, QString const &mimetype, QVariantHash const &metadata)
9696{
9797 if (uri.startsWith(QLatin1String("file:///"))) {
98− QString thumbnailerUri(mimetype.startsWith(QLatin1String("audio/")) ? BASE_ALBUMART_URI : BASE_THUMBNAILER_URI);
99− thumbnailerUri.append(uri.midRef(7));
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;
109+ thumbnailerUri.append(uri.midRef(7));
110+ }
100111 return thumbnailerUri;
101112 }
102113
plugins/Unity/iconutils.h+2−1
@@ -21,8 +21,9 @@
2121#define ICONUTILS_H
2222
2323#include <QString>
24+#include <QVariant>
2425
2526QString 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);
2728
2829#endif
plugins/Unity/preview.cpp+1−1
@@ -113,7 +113,7 @@ QString Preview::image() const
113113 return result;
114114 } else {
115115 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()));
117117 if (!thumbnailUri.isNull()) return thumbnailUri;
118118 }
119119 } else {
plugins/Utils/mediaartcache.cpp−1
@@ -176,4 +176,3 @@ void MediaArtCache::prune() {
176176 }
177177 }
178178}
179−