on xenial help sign in
Use thumbnailer for previews as well
94bccabMichal Hruby
plugins/Unity/categoryresults.cpp+2−3
@@ -81,9 +81,8 @@ CategoryResults::data(const QModelIndex& index, int role) const
81 QString giconString(DeeListModel::data(index, ResultsColumn::ICON_HINT).toString());
81 QString giconString(DeeListModel::data(index, ResultsColumn::ICON_HINT).toString());
82 if (giconString.isEmpty()) {
82 if (giconString.isEmpty()) {
83 QString uri(DeeListModel::data(index, ResultsColumn::URI).toString());
83 QString uri(DeeListModel::data(index, ResultsColumn::URI).toString());
84− if (uri.startsWith(QLatin1String("file:///"))) {
84+ QString thumbnailerUri(uriToThumbnailerProviderString(uri));
85− QString thumbnailerUri("image://thumbnailer/");
85+ if (!thumbnailerUri.isNull()) {
86− thumbnailerUri.append(uri.midRef(7));
87 return QVariant::fromValue(thumbnailerUri);
86 return QVariant::fromValue(thumbnailerUri);
88 }
87 }
89 }
88 }
plugins/Unity/iconutils.cpp+13
@@ -24,6 +24,7 @@
24#include "iconutils.h"
24#include "iconutils.h"
25
25
26#define BASE_THEME_ICON_URI "image://theme/"
26#define BASE_THEME_ICON_URI "image://theme/"
27+#define BASE_THUMBNAILER_URI "image://thumbnailer/"
27
28
28QString gIconToDeclarativeImageProviderString(QString const &giconString)
29QString gIconToDeclarativeImageProviderString(QString const &giconString)
29{
30{
@@ -89,3 +90,15 @@ QString gIconToDeclarativeImageProviderString(QString const &giconString)
89
90
90 return result;
91 return result;
91}
92}
93+
94+QString uriToThumbnailerProviderString(QString const &uri)
95+{
96+ if (uri.startsWith(QLatin1String("file:///"))) {
97+ QString thumbnailerUri(BASE_THUMBNAILER_URI);
98+ thumbnailerUri.append(uri.midRef(7));
99+ return thumbnailerUri;
100+ }
101+
102+ return QString::null;
103+}
104+
plugins/Unity/iconutils.h+1
@@ -23,5 +23,6 @@
23#include <QString>
23#include <QString>
24
24
25QString gIconToDeclarativeImageProviderString(QString const &giconString);
25QString gIconToDeclarativeImageProviderString(QString const &giconString);
26+QString uriToThumbnailerProviderString(QString const &uri);
26
27
27#endif
28#endif
plugins/Unity/preview.cpp+10−14
@@ -106,20 +106,16 @@ QVariantMap Preview::infoHintsHash() const
106QString Preview::image() const
106QString Preview::image() const
107{
107{
108 if (m_unityPreview) {
108 if (m_unityPreview) {
109+ if (m_unityPreview->image() != nullptr) {
109− auto giconString = g_icon_to_string(m_unityPreview->image());
110+ auto giconString = g_icon_to_string(m_unityPreview->image());
110− QString result(gIconToDeclarativeImageProviderString(QString::fromUtf8(giconString)));
111+ QString result(gIconToDeclarativeImageProviderString(QString::fromUtf8(giconString)));
111− g_free(giconString);
112+ g_free(giconString);
112− return result;
113+ return result;
113− } else {
114+ } else {
114− qWarning() << "Preview not set";
115− }
116− return QString::null;
117−}
118−
119−QString Preview::imageSourceUri() const
120−{
121− if (m_unityPreview) {
122− return QString::fromStdString(m_unityPreview->image_source_uri());
115+ QString sourceMedia(QString::fromStdString(m_unityPreview->image_source_uri()));
116+ QString thumbnailUri(uriToThumbnailerProviderString(sourceMedia));
117+ if (!thumbnailUri.isNull()) return thumbnailUri;
118+ }
123 } else {
119 } else {
124 qWarning() << "Preview not set";
120 qWarning() << "Preview not set";
125 }
121 }
plugins/Unity/preview.h−2
@@ -47,7 +47,6 @@ class Q_DECL_EXPORT Preview : public QObject
47 Q_PROPERTY(QVariant infoHints READ infoHints NOTIFY previewChanged)
47 Q_PROPERTY(QVariant infoHints READ infoHints NOTIFY previewChanged)
48 Q_PROPERTY(QVariantMap infoMap READ infoHintsHash NOTIFY previewChanged)
48 Q_PROPERTY(QVariantMap infoMap READ infoHintsHash NOTIFY previewChanged)
49 Q_PROPERTY(QString image READ image NOTIFY previewChanged)
49 Q_PROPERTY(QString image READ image NOTIFY previewChanged)
50− Q_PROPERTY(QString imageSourceUri READ imageSourceUri NOTIFY previewChanged)
51 Q_PROPERTY(QVariant result READ result NOTIFY previewChanged)
50 Q_PROPERTY(QVariant result READ result NOTIFY previewChanged)
52
51
53public:
52public:
@@ -62,7 +61,6 @@ public:
62 QVariant infoHints();
61 QVariant infoHints();
63 QVariantMap infoHintsHash() const;
62 QVariantMap infoHintsHash() const;
64 QString image() const;
63 QString image() const;
65− QString imageSourceUri() const;
66 QVariant result() const;
64 QVariant result() const;
67
65
68 Q_INVOKABLE void execute(const QString& actionId, const QHash<QString, QVariant>& hints);
66 Q_INVOKABLE void execute(const QString& actionId, const QHash<QString, QVariant>& hints);
tests/mocks/Unity/fake_preview.cpp−5
@@ -56,11 +56,6 @@ QString Preview::image() const
56 return "";
56 return "";
57}
57}
58
58
59−QString Preview::imageSourceUri() const
60−{
61− return "";
62−}
63−
64void Preview::execute(const QString& actionId, const QHash<QString, QVariant>& hints)
59void Preview::execute(const QString& actionId, const QHash<QString, QVariant>& hints)
65{
60{
66 Q_UNUSED(actionId);
61 Q_UNUSED(actionId);
tests/mocks/Unity/fake_preview.h−2
@@ -36,7 +36,6 @@ class Q_DECL_EXPORT Preview : public QObject
36 Q_PROPERTY(QVariant infoHints READ infoHints NOTIFY previewChanged)
36 Q_PROPERTY(QVariant infoHints READ infoHints NOTIFY previewChanged)
37 Q_PROPERTY(QVariantMap infoMap READ infoHintsHash NOTIFY previewChanged)
37 Q_PROPERTY(QVariantMap infoMap READ infoHintsHash NOTIFY previewChanged)
38 Q_PROPERTY(QString image READ image NOTIFY previewChanged)
38 Q_PROPERTY(QString image READ image NOTIFY previewChanged)
39− Q_PROPERTY(QString imageSourceUri READ imageSourceUri NOTIFY previewChanged)
40
39
41public:
40public:
42 explicit Preview(QObject *parent = 0);
41 explicit Preview(QObject *parent = 0);
@@ -49,7 +48,6 @@ public:
49 QVariant infoHints();
48 QVariant infoHints();
50 QVariantMap infoHintsHash() const;
49 QVariantMap infoHintsHash() const;
51 QString image() const;
50 QString image() const;
52− QString imageSourceUri() const;
53
51
54 Q_INVOKABLE void execute(const QString& actionId, const QHash<QString, QVariant>& hints);
52 Q_INVOKABLE void execute(const QString& actionId, const QHash<QString, QVariant>& hints);
55
53