on xenial help sign in
Send preview requests from overridden results to proper scopes
d1ffebaMichal Hruby
Dash/Apps/FrequentlyUsedAppsModel.qml+16−16
@@ -18,54 +18,54 @@ import QtQuick 2.0
18
18
19ListModel {
19ListModel {
20 ListElement {
20 ListElement {
21− uri: "application:///usr/share/applications/dialer-app.desktop"
21+ uri: "application://dialer-app.desktop"
22 icon: "../../graphics/applicationIcons/phone-app.png"
22 icon: "../../graphics/applicationIcons/phone-app.png"
23 category: 0
23 category: 0
24 mimetype: "application/x-desktop"
24 mimetype: "application/x-desktop"
25 title: "Dialer"
25 title: "Dialer"
26 comment: ""
26 comment: ""
27 dndUri: "file:///usr/share/applications/dialer-app.desktop"
27 dndUri: "file:///usr/share/applications/dialer-app.desktop"
28− metadata: ""
28+ metadata: "subscope:applications.scope/applications-non-click.scope"
29 }
29 }
30 ListElement {
30 ListElement {
31− uri: "application:///usr/share/applications/messaging-app.desktop"
31+ uri: "application://messaging-app.desktop"
32 icon: "../../graphics/applicationIcons/messages-app.png"
32 icon: "../../graphics/applicationIcons/messages-app.png"
33 category: 0
33 category: 0
34 mimetype: "application/x-desktop"
34 mimetype: "application/x-desktop"
35 title: "Messaging"
35 title: "Messaging"
36 comment: ""
36 comment: ""
37 dndUri: "file:///usr/share/applications/messaging-app.desktop"
37 dndUri: "file:///usr/share/applications/messaging-app.desktop"
38− metadata: ""
38+ metadata: "subscope:applications.scope/applications-non-click.scope"
39 }
39 }
40 ListElement {
40 ListElement {
41− uri: "application:///usr/share/applications/address-book-app.desktop"
41+ uri: "application://address-book-app.desktop"
42 icon: "../../graphics/applicationIcons/contacts-app.png"
42 icon: "../../graphics/applicationIcons/contacts-app.png"
43 category: 0
43 category: 0
44 mimetype: "application/x-desktop"
44 mimetype: "application/x-desktop"
45 title: "Contacts"
45 title: "Contacts"
46 comment: ""
46 comment: ""
47 dndUri: "file:///usr/share/applications/address-book-app.desktop"
47 dndUri: "file:///usr/share/applications/address-book-app.desktop"
48− metadata: ""
48+ metadata: "subscope:applications.scope/applications-non-click.scope"
49 }
49 }
50 ListElement {
50 ListElement {
51− uri: "application:///usr/share/applications/camera-app.desktop"
51+ uri: "application://camera-app.desktop"
52 icon: "../../graphics/applicationIcons/camera.png"
52 icon: "../../graphics/applicationIcons/camera.png"
53 category: 0
53 category: 0
54 mimetype: "application/x-desktop"
54 mimetype: "application/x-desktop"
55 title: "Camera"
55 title: "Camera"
56 comment: ""
56 comment: ""
57 dndUri: "file:///usr/share/applications/camera-app.desktop"
57 dndUri: "file:///usr/share/applications/camera-app.desktop"
58− metadata: ""
58+ metadata: "subscope:applications.scope/applications-non-click.scope"
59 }
59 }
60 ListElement {
60 ListElement {
61− uri: "application:///usr/share/applications/gallery-app.desktop"
61+ uri: "application://gallery-app.desktop"
62 icon: "../../graphics/applicationIcons/gallery.png"
62 icon: "../../graphics/applicationIcons/gallery.png"
63 category: 0
63 category: 0
64 mimetype: "application/x-desktop"
64 mimetype: "application/x-desktop"
65 title: "Gallery"
65 title: "Gallery"
66 comment: ""
66 comment: ""
67 dndUri: "file:///usr/share/applications/gallery.desktop"
67 dndUri: "file:///usr/share/applications/gallery.desktop"
68− metadata: ""
68+ metadata: "subscope:applications.scope/applications-non-click.scope"
69 }
69 }
70 ListElement {
70 ListElement {
71 uri: "appid://com.ubuntu.developer.webapps.webapp-facebook/webapp-facebook/current-user-version"
71 uri: "appid://com.ubuntu.developer.webapps.webapp-facebook/webapp-facebook/current-user-version"
@@ -75,17 +75,17 @@ ListModel {
75 title: "Facebook"
75 title: "Facebook"
76 comment: ""
76 comment: ""
77 dndUri: "appid://com.ubuntu.developer.webapps.webapp-facebook/webapp-facebook/current-user-version"
77 dndUri: "appid://com.ubuntu.developer.webapps.webapp-facebook/webapp-facebook/current-user-version"
78− metadata: ""
78+ metadata: "subscope:applications.scope/applications-click.scope"
79 }
79 }
80 ListElement {
80 ListElement {
81− uri: "application:///usr/share/applications/webbrowser-app.desktop"
81+ uri: "application://webbrowser-app.desktop"
82 icon: "../../graphics/applicationIcons/browser.png"
82 icon: "../../graphics/applicationIcons/browser.png"
83 category: 0
83 category: 0
84 mimetype: "application/x-desktop"
84 mimetype: "application/x-desktop"
85 title: "Browser"
85 title: "Browser"
86 comment: ""
86 comment: ""
87 dndUri: "file:///usr/share/applications/webbrowser-app.desktop"
87 dndUri: "file:///usr/share/applications/webbrowser-app.desktop"
88− metadata: ""
88+ metadata: "subscope:applications.scope/applications-non-click.scope"
89 }
89 }
90 ListElement {
90 ListElement {
91 uri: "appid://com.ubuntu.developer.webapps.webapp-gmail/webapp-gmail/current-user-version"
91 uri: "appid://com.ubuntu.developer.webapps.webapp-gmail/webapp-gmail/current-user-version"
@@ -95,16 +95,16 @@ ListModel {
95 title: "GMail"
95 title: "GMail"
96 comment: ""
96 comment: ""
97 dndUri: "appid://com.ubuntu.developer.webapps.webapp-gmail/webapp-gmail/current-user-version"
97 dndUri: "appid://com.ubuntu.developer.webapps.webapp-gmail/webapp-gmail/current-user-version"
98− metadata: ""
98+ metadata: "subscope:applications.scope/applications-click.scope"
99 }
99 }
100 ListElement {
100 ListElement {
101− uri: "application:///usr/share/applications/ubuntu-system-settings.desktop"
101+ uri: "application://ubuntu-system-settings.desktop"
102 icon: "../../graphics/applicationIcons/system-settings.png"
102 icon: "../../graphics/applicationIcons/system-settings.png"
103 category: 0
103 category: 0
104 mimetype: "application/x-desktop"
104 mimetype: "application/x-desktop"
105 title: "System Settings"
105 title: "System Settings"
106 comment: ""
106 comment: ""
107 dndUri: "file:///usr/share/applications/ubuntu-system-settings.desktop"
107 dndUri: "file:///usr/share/applications/ubuntu-system-settings.desktop"
108− metadata: ""
108+ metadata: "subscope:applications.scope/applications-non-click.scope"
109 }
109 }
110}
110}
plugins/Unity/scope.cpp+18−1
@@ -203,7 +203,24 @@ void Scope::preview(const QVariant &uri, const QVariant &icon_hint, const QVaria
203 const QVariant &result_type, const QVariant &mimetype, const QVariant &title,
203 const QVariant &result_type, const QVariant &mimetype, const QVariant &title,
204 const QVariant &comment, const QVariant &dnd_uri, const QVariant &metadata)
204 const QVariant &comment, const QVariant &dnd_uri, const QVariant &metadata)
205{
205{
206+ QVariant real_metadata(metadata);
207+ // handle overridden results, since QML doesn't support defining maps
208+ if (metadata.type() == QVariant::String) {
209+ QString metadata_uri(metadata.toString());
210+ if (metadata_uri.startsWith(QLatin1String("subscope:"))) {
211+ QString subscope_uri(metadata_uri.mid(9));
212+ QStringList parts(subscope_uri.split(QChar('/')));
213+ QVariantHash new_metadata;
214+ for (int i = parts.size() - 1; i >= 0; i--) {
215+ QVariantHash inner;
216+ inner["scope-id"] = QVariant::fromValue(parts[i]);
217+ inner["content"] = QVariant::fromValue(new_metadata);
218+ new_metadata = inner;
219+ }
220+ real_metadata = QVariant::fromValue(new_metadata);
221+ }
222+ }
206− auto res = createLocalResult(uri, icon_hint, category, result_type, mimetype, title, comment, dnd_uri, metadata);
223+ auto res = createLocalResult(uri, icon_hint, category, result_type, mimetype, title, comment, dnd_uri, real_metadata);
207 m_previewCancellable.Renew();
224 m_previewCancellable.Renew();
208
225
209 // canned queries don't have previews, must be activated
226 // canned queries don't have previews, must be activated