@@ -22,6 +22,7 @@
24#include "categories.h"
24#include "categories.h"
25#include "variantutils.h"
26#include "variantutils.h"
@@ -121,9 +122,12 @@ void Scope::setNoResultsHint(const QString& hint) {
124−void Scope::activate(const QVariant &uri, const QVariant &icon_hint, const QVariant &category,
126+unity::dash::LocalResult Scope::createLocalResult(const QVariant &uri, const QVariant &icon_hint,
127+ const QVariant &category, const QVariant &result_type,
125− const QVariant &result_type, const QVariant &mimetype, const QVariant &title,
128+ const QVariant &mimetype, const QVariant &title,
126− const QVariant &comment, const QVariant &dnd_uri, const QVariant &metadata)
129+ const QVariant &comment, const QVariant &dnd_uri,
130+ const QVariant &metadata)
128 unity::dash::LocalResult res;
132 unity::dash::LocalResult res;
129 res.uri = uri.toString().toStdString();
133 res.uri = uri.toString().toStdString();
@@ -136,9 +140,25 @@ void Scope::activate(const QVariant &uri, const QVariant &icon_hint, const QVari
136 res.dnd_uri = dnd_uri.toString().toStdString();
140 res.dnd_uri = dnd_uri.toString().toStdString();
137 res.hints = hintsMapFromQVariant(metadata);
141 res.hints = hintsMapFromQVariant(metadata);
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)
150+ auto res = createLocalResult(uri, icon_hint, category, result_type, mimetype, title, comment, dnd_uri, metadata);
139 m_unityScope->Activate(res);
151 m_unityScope->Activate(res);
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)
158+ auto res = createLocalResult(uri, icon_hint, category, result_type, mimetype, title, comment, dnd_uri, metadata);
159+ m_unityScope->Preview(res);
142void Scope::onActivated(unity::dash::LocalResult const& result, unity::dash::ScopeHandledType type, unity::glib::HintsMap const&)
162void Scope::onActivated(unity::dash::LocalResult const& result, unity::dash::ScopeHandledType type, unity::glib::HintsMap const&)
144 if (type == unity::dash::NOT_HANDLED) {
164 if (type == unity::dash::NOT_HANDLED) {
@@ -146,6 +166,10 @@ void Scope::onActivated(unity::dash::LocalResult const& result, unity::dash::Sco
169+void Scope::onPreviewReady(unity::dash::LocalResult const& result, unity::dash::Preview::Ptr const& preview)
149void Scope::fallbackActivate(const QString& uri)
173void Scope::fallbackActivate(const QString& uri)
151 /* FIXME: stripping all content before the first column because for some
175 /* FIXME: stripping all content before the first column because for some
@@ -217,6 +241,8 @@ void Scope::setUnityScope(const unity::dash::Scope::Ptr& scope)
217 /* FIXME: signal should be forwarded instead of calling the handler directly */
241 /* FIXME: signal should be forwarded instead of calling the handler directly */
218 m_unityScope->activated.connect(sigc::mem_fun(this, &Scope::onActivated));
242 m_unityScope->activated.connect(sigc::mem_fun(this, &Scope::onActivated));
244+ m_unityScope->preview_ready.connect(sigc::mem_fun(this, &Scope::onPreviewReady));
220 /* Synchronize local states with m_unityScope right now and whenever
246 /* Synchronize local states with m_unityScope right now and whenever
221 m_unityScope becomes connected */
247 m_unityScope becomes connected */
222 /* FIXME: should emit change notification signals for all properties */
248 /* FIXME: should emit change notification signals for all properties */