on xenial help sign in
PreviewSharing widget now accepts both string and array of widgetData["share-data"]["uri"] Fixes: #1549056

Approved by: Albert Astals Cid, Pawel Stolowski

commit1cd3a52b7a6274dd04b66bbe39b5e86c04a18da0 authorAndrea Cimitan <andrea.cimitan@gmail.com> dateThu 10 Mar 2016, 22:42 (11 years ago) parentec9a398de52626
2 files changed+34−10
qml/Dash/Previews/PreviewSharing.qml+17−7 tests/qmltests/Dash/Previews/tst_PreviewSharing.qml+17−3
qml/Dash/Previews/PreviewSharing.qml+17−7
@@ -44,6 +44,22 @@ Item {
4444 }
4545 }
4646
47+ function createExportedItems(url) {
48+ var items = new Array();
49+ if (typeof url === "string") {
50+ var exportItem = exportItemComponent.createObject();
51+ exportItem.url = url;
52+ items.push(exportItem);
53+ } else {
54+ for (var i = 0; i < url.length; i++) {
55+ var exportItem = exportItemComponent.createObject();
56+ exportItem.url = url[i];
57+ items.push(exportItem);
58+ }
59+ }
60+ return items;
61+ }
62+
4763 Component {
4864 id: exportItemComponent
4965 ContentItem {
@@ -76,13 +92,7 @@ Item {
7692 onPeerSelected: {
7793 var transfer = peer.request();
7894 if (transfer.state === ContentTransfer.InProgress) {
79− var items = new Array();
80− for (var i = 0; i < url.length; i++) {
81− var exportItem = exportItemComponent.createObject();
82− exportItem.url = url[i];
83− items.push(exportItem);
84− }
85− transfer.items = items;
95+ transfer.items = createExportedItems(url);
8696 transfer.state = ContentTransfer.Charged;
8797 }
8898 peerPicker.visible = false;
tests/qmltests/Dash/Previews/tst_PreviewSharing.qml+17−3
@@ -28,13 +28,18 @@ Rectangle {
2828
2929 property var shareData: {
3030 "uri": [
31− "Text here",
32− "text here 2",
33− "text here 3"
31+ "file:///this/is/an/url",
32+ "file:///this/is/an/url/2",
33+ "file:///this/is/an/url/3"
3434 ],
3535 "content-type": "text"
3636 }
3737
38+ property var shareDataString: {
39+ "uri": "file:///this/is/an/url",
40+ "content-type": "text"
41+ }
42+
3843 PreviewSharing {
3944 id: previewSharing
4045 anchors { left: parent.left; bottom: parent.bottom; }
@@ -55,5 +60,14 @@ Rectangle {
5560 mouseClick(previewSharing);
5661 compare(peerPicker.visible, true);
5762 }
63+
64+ function test_createExportedItems() {
65+ var exportedItems = previewSharing.createExportedItems(shareData["uri"]);
66+ for (var i = 0; i < exportedItems.length; i++) {
67+ compare(exportedItems[i].url, shareData["uri"][i]);
68+ }
69+ exportedItems = previewSharing.createExportedItems(shareDataString["uri"]);
70+ compare(exportedItems[0].url, shareDataString["uri"]);
71+ }
5872 }
5973}