@@ -22,6 +22,7 @@
2222
2323// local
2424#include "categories.h"
25+#include "preview.h"
2526#include "variantutils.h"
2627
2728// Qt
@@ -121,9 +122,12 @@ void Scope::setNoResultsHint(const QString& hint) {
121122 }
122123}
123124
124−void Scope::activate(const QVariant &uri, const QVariant &icon_hint, const QVariant &category,
125− const QVariant &result_type, const QVariant &mimetype, const QVariant &title,
126− const QVariant &comment, const QVariant &dnd_uri, const QVariant &metadata)
125+
126+unity::dash::LocalResult Scope::createLocalResult(const QVariant &uri, const QVariant &icon_hint,
127+ const QVariant &category, const QVariant &result_type,
128+ const QVariant &mimetype, const QVariant &title,
129+ const QVariant &comment, const QVariant &dnd_uri,
130+ const QVariant &metadata)
127131{
128132 unity::dash::LocalResult res;
129133 res.uri = uri.toString().toStdString();
@@ -136,9 +140,25 @@ void Scope::activate(const QVariant &uri, const QVariant &icon_hint, const QVari
136140 res.dnd_uri = dnd_uri.toString().toStdString();
137141 res.hints = hintsMapFromQVariant(metadata);
138142
143+ return res;
144+}
145+
146+void Scope::activate(const QVariant &uri, const QVariant &icon_hint, const QVariant &category,
147+ const QVariant &result_type, const QVariant &mimetype, const QVariant &title,
148+ const QVariant &comment, const QVariant &dnd_uri, const QVariant &metadata)
149+{
150+ auto res = createLocalResult(uri, icon_hint, category, result_type, mimetype, title, comment, dnd_uri, metadata);
139151 m_unityScope->Activate(res);
140152}
141153
154+void Scope::preview(const QVariant &uri, const QVariant &icon_hint, const QVariant &category,
155+ const QVariant &result_type, const QVariant &mimetype, const QVariant &title,
156+ const QVariant &comment, const QVariant &dnd_uri, const QVariant &metadata)
157+{
158+ auto res = createLocalResult(uri, icon_hint, category, result_type, mimetype, title, comment, dnd_uri, metadata);
159+ m_unityScope->Preview(res);
160+}
161+
142162void Scope::onActivated(unity::dash::LocalResult const& result, unity::dash::ScopeHandledType type, unity::glib::HintsMap const&)
143163{
144164 if (type == unity::dash::NOT_HANDLED) {
@@ -146,6 +166,10 @@ void Scope::onActivated(unity::dash::LocalResult const& result, unity::dash::Sco
146166 }
147167}
148168
169+void Scope::onPreviewReady(unity::dash::LocalResult const& result, unity::dash::Preview::Ptr const& preview)
170+{
171+}
172+
149173void Scope::fallbackActivate(const QString& uri)
150174{
151175 /* FIXME: stripping all content before the first column because for some
@@ -217,6 +241,8 @@ void Scope::setUnityScope(const unity::dash::Scope::Ptr& scope)
217241 /* FIXME: signal should be forwarded instead of calling the handler directly */
218242 m_unityScope->activated.connect(sigc::mem_fun(this, &Scope::onActivated));
219243
244+ m_unityScope->preview_ready.connect(sigc::mem_fun(this, &Scope::onPreviewReady));
245+
220246 /* Synchronize local states with m_unityScope right now and whenever
221247 m_unityScope becomes connected */
222248 /* FIXME: should emit change notification signals for all properties */