on xenial help sign in
Smore more preview handling. Handle other activation responses.
b47b4d3Pawel Stolowski
plugins/Unity/preview.cpp+5
@@ -42,6 +42,11 @@ void Preview::setUnityPreview(unity::dash::Preview::Ptr unityPreview)
42 m_unityPreview = unityPreview;
42 m_unityPreview = unityPreview;
43}
43}
44
44
45+QString Preview::rendererName() const
46+{
47+ return QString::fromStdString(m_unityPreview->renderer_name());
48+}
49+
45QString Preview::title() const
50QString Preview::title() const
46{
51{
47 return QString::fromStdString(m_unityPreview->title());
52 return QString::fromStdString(m_unityPreview->title());
plugins/Unity/preview.h+2
@@ -32,6 +32,7 @@ class Preview : public QObject
32{
32{
33 Q_OBJECT
33 Q_OBJECT
34
34
35+ Q_PROPERTY(QString rendererName READ rendererName)
35 Q_PROPERTY(QString title READ title)
36 Q_PROPERTY(QString title READ title)
36 Q_PROPERTY(QString subtitle READ subtitle)
37 Q_PROPERTY(QString subtitle READ subtitle)
37
38
@@ -39,6 +40,7 @@ public:
39 explicit Preview(QObject *parent = 0);
40 explicit Preview(QObject *parent = 0);
40 static Preview* newFromUnityPreview(unity::dash::Preview::Ptr unityPreview);
41 static Preview* newFromUnityPreview(unity::dash::Preview::Ptr unityPreview);
41
42
43+ QString rendererName() const;
42 QString title() const;
44 QString title() const;
43 QString subtitle () const;
45 QString subtitle () const;
44
46
plugins/Unity/scope.cpp+25−3
@@ -159,15 +159,37 @@ void Scope::preview(const QVariant &uri, const QVariant &icon_hint, const QVaria
159 m_unityScope->Preview(res);
159 m_unityScope->Preview(res);
160}
160}
161
161
162−void Scope::onActivated(unity::dash::LocalResult const& result, unity::dash::ScopeHandledType type, unity::glib::HintsMap const&)
162+void Scope::onActivated(unity::dash::LocalResult const& result, unity::dash::ScopeHandledType type, unity::glib::HintsMap const& hints)
163{
163{
164+ // note: we will not get called on SHOW_PREVIEW, instead UnityCore will signal preview_ready.
165+ switch (type)
166+ {
164− if (type == unity::dash::NOT_HANDLED) {
167+ case unity::dash::NOT_HANDLED:
165− fallbackActivate(QString::fromStdString(result.uri));
168+ fallbackActivate(QString::fromStdString(result.uri));
169+ break;
170+ case unity::dash::SHOW_DASH:
171+ Q_EMIT showDash();
172+ break;
173+ case unity::dash::HIDE_DASH:
174+ Q_EMIT hideDash();
175+ break;
176+ case unity::dash::GOTO_DASH_URI:
177+ if (hints.contains("goto-uri")) {
178+ Q_EMIT gotoUri(QString::fromStdString(hints["goto-uri"]));
179+ } else {
180+ qWarning() << "Missing goto-uri hint for GOTO_DASH_URI activation reply";
181+ }
182+ break;
183+ default:
184+ qWarning() << "Unhandled activation response:" << type;
166 }
185 }
167}
186}
168
187
169void Scope::onPreviewReady(unity::dash::LocalResult const& result, unity::dash::Preview::Ptr const& preview)
188void Scope::onPreviewReady(unity::dash::LocalResult const& result, unity::dash::Preview::Ptr const& preview)
170{
189{
190+ auto res = createLocalResult(uri, icon_hint, category, result_type, mimetype, title, comment, dnd_uri, metadata);
191+ auto prv = Preview::newFromUnityPreview(preview);
192+ Q_EMIT previewReady(prv);
171}
193}
172
194
173void Scope::fallbackActivate(const QString& uri)
195void Scope::fallbackActivate(const QString& uri)
plugins/Unity/scope.h+6−1
@@ -99,7 +99,12 @@ Q_SIGNALS:
99 void searchFinished(const std::string&, unity::glib::HintsMap const&, unity::glib::Error const&);
99 void searchFinished(const std::string&, unity::glib::HintsMap const&, unity::glib::Error const&);
100 void searchQueryChanged();
100 void searchQueryChanged();
101 void noResultsHintChanged();
101 void noResultsHintChanged();
102+
103+ // signals triggered by activate(..) or preview(..) requests.
102 void previewReady(const Preview &preview);
104 void previewReady(const Preview &preview);
105+ void showDash();
106+ void hideDash();
107+ void gotoUri(const QString &uri);
103
108
104private Q_SLOTS:
109private Q_SLOTS:
105 void synchronizeStates();
110 void synchronizeStates();
@@ -117,7 +122,7 @@ private:
117 const QVariant &mimetype, const QVariant &title,
122 const QVariant &mimetype, const QVariant &title,
118 const QVariant &comment, const QVariant &dnd_uri,
123 const QVariant &comment, const QVariant &dnd_uri,
119 const QVariant &metadata);
124 const QVariant &metadata);
120− void onActivated(unity::dash::LocalResult const& result, unity::dash::ScopeHandledType type, unity::glib::HintsMap const&);
125+ void onActivated(unity::dash::LocalResult const& result, unity::dash::ScopeHandledType type, unity::glib::HintsMap const& hints);
121 void onPreviewReady(unity::dash::LocalResult const& result, unity::dash::Preview::Ptr const& preview);
126 void onPreviewReady(unity::dash::LocalResult const& result, unity::dash::Preview::Ptr const& preview);
122 void fallbackActivate(const QString& uri);
127 void fallbackActivate(const QString& uri);
123
128