on xenial help sign in
Merge
commit16146ca00c69c995577a343121d1c579412ac1a5 authorAlbert Astals Cid <albert.astals@canonical.com> dateThu 13 Aug 2015, 11:07 (11 years ago) parentf03aec2dda4169
20 files changed+271−43
debian/changelog+19−6 plugins/Unity/Launcher/launchermodel.cpp−1 qml/Components/UnityInputInfo/UnityInputInfo.qml+2 qml/Dash/Previews/PreviewActions.qml+1−1 qml/Dash/Previews/PreviewAudioPlayback.qml+1−1 qml/Dash/Previews/PreviewHeader.qml+1−1 qml/Dash/Previews/PreviewRatingDisplay.qml+1−1 qml/Launcher/Launcher.qml+2−1 qml/Launcher/LauncherDelegate.qml+12 qml/Launcher/LauncherPanel.qml+1 qml/OrientedShell.qml+3 qml/Panel/IndicatorItem.qml+3−3 qml/Panel/IndicatorItemRow.qml+1−1 qml/Panel/IndicatorsBar.qml+1−1 tests/plugins/Unity/Launcher/launchermodeltest.cpp+16 tests/qmltests/Dash/Previews/tst_PreviewExpandable.qml+147−6 tests/qmltests/Launcher/tst_Launcher.qml+36−5 tests/qmltests/Panel/tst_IndicatorItem.qml+12−12 tests/qmltests/tst_Shell.qml+3−3 tests/utils/modules/Unity/Test/UnityTestCase.qml+9
debian/changelog+19−6
@@ -1,13 +1,26 @@
1−unity8 (8.11+15.04.20150811-0ubuntu1) vivid; urgency=medium
1+unity8 (8.11+15.04.20150812-0ubuntu1) vivid; urgency=medium
22
33 [ Albert Astals Cid ]
4− * Increase version because of new scopes shell communication protocol
4+ * Add a test that checks that items in an expandable are the correct
5+ size after expanding the expandable
6+ * Fix the expandable test
7+ * Replace some waitForRendering with wait(0)
8+ * Workaround for bug 1473471 (LP: #1473471)
59
6− [ CI Train Bot ]
7− * New rebuild forced.
8− * Resync trunk.
10+ [ Gary.Wzl ]
11+ * Fix layout issue when adding audio track widget in expandable widget
12+
13+ [ handsome_feng ]
14+ * Added indication for running apps. (LP: #1471577)
15+ * Adjust the color to highlighting indicator. (LP: #1457098)
16+ * Convert the MouseArea to MultiPointTouchArea to track multiple touch
17+ points. (LP: #1445472)
18+
19+ [ handsome_feng<445865575@qq.com> ]
20+ * Convert the MouseArea to MultiPointTouchArea to track multiple touch
21+ points. (LP: #1445472)
922
10− -- CI Train Bot <ci-train-bot@canonical.com> Tue, 11 Aug 2015 14:45:12 +0000
23+ -- CI Train Bot <ci-train-bot@canonical.com> Wed, 12 Aug 2015 08:41:24 +0000
1124
1225unity8 (8.10+15.10.20150804-0ubuntu1) wily; urgency=medium
1326
plugins/Unity/Launcher/launchermodel.cpp−1
@@ -516,7 +516,6 @@ void LauncherModel::applicationAdded(const QModelIndex &parent, int row)
516516 Q_EMIT dataChanged(index(itemIndex), index(itemIndex), {RoleRecent});
517517 }
518518 item->setRunning(true);
519− // TODO Shall we paint some running/recent app highlight? If yes, do it here.
520519 } else {
521520 LauncherItem *item = new LauncherItem(app->appId(), app->name(), app->icon().toString(), this);
522521 item->setRecent(true);
qml/Components/UnityInputInfo/UnityInputInfo.qml+2
@@ -18,6 +18,8 @@ pragma Singleton
1818
1919import QtQuick 2.3
2020import Unity.InputInfo 0.1
21+// Workaround https://bugs.launchpad.net/ubuntu/+source/unity8/+bug/1473471
22+import Ubuntu.Components 1.3
2123
2224Item {
2325 id: root
qml/Dash/Previews/PreviewActions.qml+1−1
@@ -25,7 +25,7 @@ import Ubuntu.Components 1.3
2525PreviewWidget {
2626 id: root
2727
28− height: row.height + units.gu(1)
28+ implicitHeight: row.height + units.gu(1)
2929
3030 Row {
3131 id: row
qml/Dash/Previews/PreviewAudioPlayback.qml+1−1
@@ -34,7 +34,7 @@ import Ubuntu.Components 1.3
3434
3535PreviewWidget {
3636 id: root
37− height: childrenRect.height
37+ implicitHeight: childrenRect.height
3838
3939 onIsCurrentPreviewChanged: if (!isCurrentPreview) audio.stop()
4040
qml/Dash/Previews/PreviewHeader.qml+1−1
@@ -30,7 +30,7 @@ import "../"
3030PreviewWidget {
3131 id: root
3232
33− height: childrenRect.height
33+ implicitHeight: childrenRect.height
3434
3535 Item {
3636 id: headerRoot
qml/Dash/Previews/PreviewRatingDisplay.qml+1−1
@@ -38,7 +38,7 @@ import "../../Components"
3838
3939PreviewWidget {
4040 id: root
41− height: childrenRect.height
41+ implicitHeight: childrenRect.height
4242
4343 Column {
4444 anchors { left: parent.left; right: parent.right; }
qml/Launcher/Launcher.qml+2−1
@@ -177,7 +177,8 @@ Item {
177177 }
178178
179179 }
180− MouseArea {
180+
181+ MultiPointTouchArea {
181182 id: closeMouseArea
182183 anchors {
183184 left: launcherDragArea.right
qml/Launcher/LauncherDelegate.qml+12
@@ -24,6 +24,7 @@ Item {
2424 property int count: 0
2525 property bool countVisible: false
2626 property int progress: -1
27+ property bool itemRunning: false
2728 property bool itemFocused: false
2829 property real maxAngle: 0
2930 property bool inverted: false
@@ -216,6 +217,17 @@ Item {
216217 }
217218 }
218219
220+ Image {
221+ objectName: "runningHighlight"
222+ anchors {
223+ left: parent.left
224+ verticalCenter: parent.verticalCenter
225+ }
226+ visible: root.itemRunning
227+ rotation: 180
228+ source: "graphics/focused_app_arrow.png"
229+ }
230+
219231 Image {
220232 objectName: "focusedHighlight"
221233 anchors {
qml/Launcher/LauncherPanel.qml+1
@@ -193,6 +193,7 @@ Rectangle {
193193 count: model.count
194194 countVisible: model.countVisible
195195 progress: model.progress
196+ itemRunning: model.running
196197 itemFocused: model.focused
197198 inverted: root.inverted
198199 alerting: model.alerting
qml/OrientedShell.qml+3
@@ -21,6 +21,9 @@ import GSettings 1.0
2121import "Components"
2222import "Components/UnityInputInfo"
2323import "Rotation"
24+// Backup Workaround https://bugs.launchpad.net/ubuntu/+source/unity8/+bug/1473471
25+// in case we remove the UnityInputInfo import
26+import Ubuntu.Components 1.3
2427
2528Rectangle {
2629 id: root
qml/Panel/IndicatorItem.qml+3−3
@@ -31,9 +31,9 @@ IndicatorDelegate {
3131 property bool selected: false
3232 property real iconHeight: units.gu(2)
3333 readonly property color color: {
34− if (!expanded) return "#ededed";
35− if (!selected) return "#4c4c4c";
36− return "#ededed";
34+ if (!expanded) return "#ffffff";
35+ if (!selected) return "#888888";
36+ return "#ffffff";
3737 }
3838
3939 signal clicked()
qml/Panel/IndicatorItemRow.qml+1−1
@@ -31,7 +31,7 @@ Item {
3131 property real unitProgress: 0.0
3232 property real selectionChangeBuffer: units.gu(2)
3333 property bool enableLateralChanges: false
34− property color hightlightColor: "#ededed"
34+ property color hightlightColor: "#ffffff"
3535
3636 property real lateralPosition: -1
3737 onLateralPositionChanged: {
qml/Panel/IndicatorsBar.qml+1−1
@@ -123,7 +123,7 @@ Item {
123123 width: parent.width
124124 anchors.bottom: parent.bottom
125125
126− color: "#4c4c4c"
126+ color: "#888888"
127127 opacity: expanded ? 1.0 : 0.0
128128 Behavior on opacity { NumberAnimation { duration: UbuntuAnimation.SnapDuration } }
129129 }
tests/plugins/Unity/Launcher/launchermodeltest.cpp+16
@@ -298,6 +298,22 @@ private Q_SLOTS:
298298 QCOMPARE(launcherModel->rowCount(QModelIndex()), 1);
299299 }
300300
301+ void testApplicationRunning() {
302+ launcherModel->pin("abs-icon");
303+ launcherModel->pin("no-icon");
304+
305+ QCOMPARE(launcherModel->get(0)->running(), true);
306+ QCOMPARE(launcherModel->get(1)->running(), true);
307+
308+ appManager->stopApplication("abs-icon");
309+ QCOMPARE(launcherModel->get(0)->running(), false);
310+ QCOMPARE(launcherModel->get(1)->running(), true);
311+
312+ appManager->stopApplication("no-icon");
313+ QCOMPARE(launcherModel->get(0)->running(), false);
314+ QCOMPARE(launcherModel->get(1)->running(), false);
315+ }
316+
301317 void testApplicationFocused() {
302318 // all apps unfocused at beginning...
303319 QCOMPARE(launcherModel->get(0)->focused(), false);
tests/qmltests/Dash/Previews/tst_PreviewExpandable.qml+147−6
@@ -34,21 +34,122 @@ Rectangle {
3434 "values": [ [ "Long Label 1", "Value 1"], [ "Label 2", "Long Value 2"], [ "Label 3", "Value 3"], [ "Label 4", "Value 4"], [ "Label 5", "Value 5"] ]
3535 }
3636
37+ property var actionsData: {
38+ "actions": [ {"label": "Some Label", "id": "someid"} ]
39+ }
40+
41+ property var audioData: {
42+ "tracks": [ { title: "Some track name", length: "30", source: "/not/existing/path/testsound1" } ]
43+ }
44+
45+ property var commentData: {
46+ "author": "Claire Thompson",
47+ "comment": "C.",
48+ "source": "../../graphics/avatars/amanda@12.png"
49+ }
50+
51+ property var commentInputData: {
52+ "submit-label": "TestSubmitLabel"
53+ }
54+
55+ property var galleryData: {
56+ "sources": [
57+ "../../graphics/phone_background.jpg",
58+ "../../graphics/tablet_background.jpg",
59+ "../../graphics/clock@18.png",
60+ "../../graphics/borked"
61+ ]
62+ }
63+
64+ property var headerData: {
65+ "title": "THE TITLE",
66+ "subtitle": "Something catchy"
67+ }
68+
69+ property var iconActionsData: {
70+ "actions": [ {"label": "10", "id": "s", "icon": Qt.resolvedUrl("../artwork/avatar@12.png") } ]
71+ }
72+
73+ property var imageData: {
74+ "source": "../../graphics/phone_background.jpg",
75+ "zoomable": false
76+ }
77+
78+ property var paymentsData: {
79+ "source": { "price" : 0.99, "currency": "USD", "store_item_id": "com.example.package" }
80+ }
81+
82+ property var progressData: {
83+ "type": "progress",
84+ "source": { "dbus-name" : "somename", "dbus-object": "somestring" }
85+ }
86+
87+ property var ratingInputData: {
88+ "visible": "both",
89+ "required": "both"
90+ }
91+
92+ property var ratingEditData: {
93+ "visible": "both",
94+ "required": "both",
95+ author: "Some dude",
96+ rating: 4.5,
97+ review: "Very cool app"
98+ }
99+
100+ property var reviewsData: {
101+ "reviews": [ { author: "Some dude", rating: 4.5, review: "Very cool app" } ]
102+ }
103+
104+ property var videoData: {
105+ "source": "",
106+ "screenshot": "../../../tests/qmltests/Components/tst_LazyImage/square.png"
107+ }
108+
37109 ListModel {
38110 id: widgetsModel
39111 }
40112
113+ ListModel {
114+ id: allWidgetsModel
115+ }
116+
41117 property var widgetData: {
42118 "title": "Title here",
43119 "collapsed-widgets": 2,
44120 "widgets": widgetsModel
45121 }
46122
123+ property var allWidgetsData: {
124+ "title": "Title here",
125+ "collapsed-widgets": 0,
126+ "widgets": allWidgetsModel
127+ }
128+
129+
47130 Component.onCompleted: {
48131 widgetsModel.append({"type": "text", "widgetId": "text1", "properties": { "text": longText }});
49− widgetsModel.append({"type": "text", "widgetId": "table1", "properties": { "text": tableData }});
132+ widgetsModel.append({"type": "table", "widgetId": "table1", "properties": tableData });
50133 widgetsModel.append({"type": "text", "widgetId": "text3", "properties": { "text": shortText }});
51− widgetsModel.append({"type": "text", "widgetId": "text4", "properties": { "text": longText }});
134+ widgetsModel.append({"type": "text", "widgetId": "text4", "properties": { "text": longText2 }});
135+
136+ allWidgetsModel.append({"type": "actions", "widgetId": "actions1", "properties": actionsData });
137+ allWidgetsModel.append({"type": "audio", "widgetId": "audio1", "properties": audioData });
138+ allWidgetsModel.append({"type": "comment", "widgetId": "comment1", "properties": commentData });
139+ allWidgetsModel.append({"type": "comment-input", "widgetId": "comment-input1", "properties": commentInputData });
140+ // "expandable" For now we're not testing inception of expandables
141+ allWidgetsModel.append({"type": "gallery", "widgetId": "gallery1", "properties": galleryData });
142+ allWidgetsModel.append({"type": "header", "widgetId": "header1", "properties": headerData });
143+ allWidgetsModel.append({"type": "icon-actions", "widgetId": "icon-actions1", "properties": iconActionsData } );
144+ allWidgetsModel.append({"type": "image", "widgetId": "image1", "properties": imageData });
145+ allWidgetsModel.append({"type": "payments", "widgetId": "payments1", "properties": paymentsData });
146+ allWidgetsModel.append({"type": "progress", "widgetId": "progress1", "properties": progressData });
147+ allWidgetsModel.append({"type": "rating-input", "widgetId": "rating-input1", "properties": ratingInputData });
148+ allWidgetsModel.append({"type": "rating-edit", "widgetId": "rating-edit1", "properties": ratingEditData });
149+ allWidgetsModel.append({"type": "reviews", "widgetId": "reviews1", "properties": reviewsData });
150+ allWidgetsModel.append({"type": "table", "widgetId": "table1", "properties": tableData });
151+ allWidgetsModel.append({"type": "text", "widgetId": "text1", "properties": { "text": longText }});
152+ allWidgetsModel.append({"type": "video", "widgetId": "video1", "properties": videoData });
52153 }
53154
54155 PreviewWidgetFactory {
@@ -58,6 +159,12 @@ Rectangle {
58159 widgetData: root.widgetData
59160 }
60161
162+ PreviewWidgetFactory {
163+ id: previewWidgetFactory
164+ anchors { left: parent.left; right: parent.right; top: previewExpandable.bottom }
165+ opacity: 0
166+ }
167+
61168 UT.UnityTestCase {
62169 name: "PreviewExpandableTest"
63170 when: windowShown
@@ -78,13 +185,10 @@ Rectangle {
78185 }
79186
80187 function init() {
188+ previewExpandable.widgetData = widgetData;
81189 checkInitialState();
82190 }
83191
84− function test_collapsed_by_default() {
85− // Nothing init does this already
86− }
87−
88192 function test_expand_collapse() {
89193 var expandButton = findChild(previewExpandable, "expandButton")
90194 mouseClick(expandButton);
@@ -105,5 +209,42 @@ Rectangle {
105209
106210 checkInitialState();
107211 }
212+
213+ function test_all_widgets_height() {
214+ previewExpandable.widgetData = allWidgetsData;
215+
216+ var repeater = findChild(previewExpandable, "repeater")
217+ for (var i = 0; i < repeater.count; ++i) {
218+ tryCompare(repeater.itemAt(i), "height", 0);
219+ }
220+
221+ var expandButton = findChild(previewExpandable, "expandButton")
222+ mouseClick(expandButton);
223+
224+ var repeater = findChild(previewExpandable, "repeater")
225+ for (var i = 0; i < repeater.count; ++i) {
226+ previewWidgetFactory.active = false;
227+ wait(0); // spin the event loop otherwise we get warnings because the previous item from the
228+ // widget factory has still not been deleted and we change the widgetData
229+ previewWidgetFactory.widgetData = allWidgetsModel.get(i).properties;
230+ previewWidgetFactory.widgetType = allWidgetsModel.get(i).type;
231+ previewWidgetFactory.active = true;
232+
233+ // Wait for the height ot settle by waiting twice the time of the
234+ // longest of the height behaviour animations
235+ wait(UbuntuAnimation.SnapDuration * 2);
236+
237+ // Check the item inside the expandable has the same height
238+ // as the one straight from the factory
239+ verify(repeater.itemAt(i).height > 0);
240+ tryCompare(repeater.itemAt(i), "height", previewWidgetFactory.height);
241+ }
242+
243+ mouseClick(expandButton);
244+ compare(previewExpandable.expanded, false);
245+ for (var i = 0; i < repeater.count; ++i) {
246+ tryCompare(repeater.itemAt(i), "height", 0);
247+ }
248+ }
108249 }
109250}
tests/qmltests/Launcher/tst_Launcher.qml+36−5
@@ -382,6 +382,15 @@ Item {
382382 }
383383 }
384384
385+ function test_runningHighlight() {
386+ dragLauncherIntoView();
387+ var launcherListView = findChild(launcher, "launcherListView");
388+ for (var i = 0; i < launcherListView.count; ++i) {
389+ var delegate = findChild(launcherListView, "launcherDelegate" + i)
390+ compare(findChild(delegate, "runningHighlight").visible, LauncherModel.get(i).running)
391+ }
392+ }
393+
385394 function test_focusedHighlight() {
386395 dragLauncherIntoView();
387396 var launcherListView = findChild(launcher, "launcherListView");
@@ -520,7 +529,14 @@ Item {
520529 waitUntilLauncherDisappears();
521530 }
522531
523− function test_dragndrop_cancel() {
532+ function test_dragndrop_cancel_data() {
533+ return [
534+ {tag: "by mouse", mouse: true},
535+ {tag: "by touch", mouse: false}
536+ ]
537+ }
538+
539+ function test_dragndrop_cancel(data) {
524540 dragLauncherIntoView();
525541 var draggedItem = findChild(launcher, "launcherDelegate4")
526542 var item0 = findChild(launcher, "launcherDelegate0")
@@ -529,22 +545,37 @@ Item {
529545 // Doing longpress
530546 var currentMouseX = draggedItem.width / 2
531547 var currentMouseY = draggedItem.height / 2
532− mousePress(draggedItem, currentMouseX, currentMouseY)
548+
549+ if(data.mouse) {
550+ mousePress(draggedItem, currentMouseX, currentMouseY)
551+ } else {
552+ touchPress(draggedItem, currentMouseX, currentMouseY)
553+ }
554+
533555 // DraggedItem needs to hide and fakeDragItem become visible
534556 tryCompare(draggedItem, "itemOpacity", 0)
535557 tryCompare(fakeDragItem, "visible", true)
536558
537559 // Dragging
538560 currentMouseX -= units.gu(20)
539− mouseMove(draggedItem, currentMouseX, currentMouseY)
561+
562+ if(data.mouse) {
563+ mouseMove(draggedItem, currentMouseX, currentMouseY)
564+ } else {
565+ touchMove(draggedItem, currentMouseX, currentMouseY)
566+ }
540567
541568 // Make sure we're in the dragging state
542569 var dndArea = findChild(launcher, "dndArea");
543570 tryCompare(draggedItem, "dragging", true)
544571 tryCompare(dndArea, "draggedIndex", 4)
545572
546− // Tap somewhere in the middle of the screen to close/hide the launcher
547− tap(root)
573+ // Click/Tap somewhere in the middle of the screen to close/hide the launcher
574+ if(data.mouse) {
575+ mouseClick(root)
576+ } else {
577+ tap(root)
578+ }
548579
549580 // Make sure the dnd operation has been stopped
550581 tryCompare(draggedItem, "dragging", false)
tests/qmltests/Panel/tst_IndicatorItem.qml+12−12
@@ -181,25 +181,25 @@ Rectangle {
181181 }
182182
183183 function test_select() {
184− tryCompare(findChild(indicatorItem, "icon0"), "color", "#ededed");
184+ tryCompare(findChild(indicatorItem, "icon0"), "color", "#ffffff");
185185 tryCompare(findChild(indicatorItem, "icon0"), "opacity", 1.0);
186− tryCompare(findChild(indicatorItem, "leftLabel"), "color", "#ededed");
187− tryCompare(findChild(indicatorItem, "rightLabel"), "color", "#ededed");
188− tryCompare(findChild(indicatorItem, "indicatorName"), "color", "#ededed");
186+ tryCompare(findChild(indicatorItem, "leftLabel"), "color", "#ffffff");
187+ tryCompare(findChild(indicatorItem, "rightLabel"), "color", "#ffffff");
188+ tryCompare(findChild(indicatorItem, "indicatorName"), "color", "#ffffff");
189189
190190 indicatorItem.expanded = true;
191− tryCompare(findChild(indicatorItem, "icon0"), "color", "#4c4c4c");
191+ tryCompare(findChild(indicatorItem, "icon0"), "color", "#888888");
192192 tryCompare(findChild(indicatorItem, "icon0"), "opacity", 0.6);
193− tryCompare(findChild(indicatorItem, "leftLabel"), "color", "#4c4c4c");
194− tryCompare(findChild(indicatorItem, "rightLabel"), "color", "#4c4c4c");
195− tryCompare(findChild(indicatorItem, "indicatorName"), "color", "#4c4c4c");
193+ tryCompare(findChild(indicatorItem, "leftLabel"), "color", "#888888");
194+ tryCompare(findChild(indicatorItem, "rightLabel"), "color", "#888888");
195+ tryCompare(findChild(indicatorItem, "indicatorName"), "color", "#888888");
196196
197197 indicatorItem.selected = true;
198− tryCompare(findChild(indicatorItem, "icon0"), "color", "#ededed");
198+ tryCompare(findChild(indicatorItem, "icon0"), "color", "#ffffff");
199199 tryCompare(findChild(indicatorItem, "icon0"), "opacity", 1.0);
200− tryCompare(findChild(indicatorItem, "leftLabel"), "color", "#ededed");
201− tryCompare(findChild(indicatorItem, "rightLabel"), "color", "#ededed");
202− tryCompare(findChild(indicatorItem, "indicatorName"), "color", "#ededed");
200+ tryCompare(findChild(indicatorItem, "leftLabel"), "color", "#ffffff");
201+ tryCompare(findChild(indicatorItem, "rightLabel"), "color", "#ffffff");
202+ tryCompare(findChild(indicatorItem, "indicatorName"), "color", "#ffffff");
203203 }
204204 }
205205}
tests/qmltests/tst_Shell.qml+3−3
@@ -1505,7 +1505,7 @@ Rectangle {
15051505 while (appRepeater.highlightedIndex != i && x <= 4000) {
15061506 x+=10;
15071507 mouseMove(shell, x, y)
1508− waitForRendering(shell)
1508+ wait(0); // spin the loop so bindings get evaluated
15091509 }
15101510 }
15111511
@@ -1536,7 +1536,7 @@ Rectangle {
15361536 while (appRepeater.highlightedIndex !== 2 && x <= 4000) {
15371537 x+=10;
15381538 mouseMove(shell, x, y)
1539− waitForRendering(shell)
1539+ wait(0); // spin the loop so bindings get evaluated
15401540 }
15411541 tryCompare(closeMouseArea, "enabled", true)
15421542
@@ -1582,7 +1582,7 @@ Rectangle {
15821582 while (appRepeater.highlightedIndex !== 2 && x <= 4000) {
15831583 x+=10;
15841584 mouseMove(shell, x, y)
1585− waitForRendering(shell)
1585+ wait(0); // spin the loop so bindings get evaluated
15861586 }
15871587 tryCompare(decoratedWindow, "highlightShown", true);
15881588
tests/utils/modules/Unity/Test/UnityTestCase.qml+9
@@ -351,6 +351,15 @@ TestCase {
351351 event.commit()
352352 }
353353
354+ function touchMove(item, tox, toy) {
355+ var root = fetchRootItem(item)
356+ var rootPoint = item.mapToItem(root, tox, toy)
357+
358+ var event = touchEvent(item);
359+ event.move(0 /* touchId */, rootPoint.x, rootPoint.y);
360+ event.commit();
361+ }
362+
354363 function touchPinch(item, x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End) {
355364 // Make sure the item is rendered
356365 waitForRendering(item);