Merge lp:~azzar1/unity8/launcher-tooltips into lp:unity8
- launcher-tooltips
- Merge into trunk
Status: | Superseded |
---|---|
Proposed branch: | lp:~azzar1/unity8/launcher-tooltips |
Merge into: | lp:unity8 |
Diff against target: |
380 lines (+239/-52) 5 files modified
qml/Components/UbuntuShapeForItem.qml (+0/-47) qml/Launcher/LauncherDelegate.qml (+1/-0) qml/Launcher/LauncherPanel.qml (+150/-3) qml/Stages/DesktopSpread.qml (+2/-2) tests/qmltests/Launcher/tst_Launcher.qml (+86/-0) |
To merge this branch: | bzr merge lp:~azzar1/unity8/launcher-tooltips |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Unity Team | Pending | ||
Review via email: mp+306344@code.launchpad.net |
This proposal has been superseded by a proposal from 2016-09-26.
Commit message
Description of the change
- 2607. By Andrea Azzarone
-
Use a s StateMachine to handle tooltip logic.
- 2608. By Andrea Azzarone
-
Update tests.
- 2609. By Andrea Azzarone
-
Merge with trunk.
- 2610. By Andrea Azzarone
-
Add comment.
- 2611. By Andrea Azzarone
-
Merge with lp:~azzar1/unity8/remove-UbuntuShapeForItem
- 2612. By Andrea Azzarone
-
Refactor and simplify tooltip layout logic.
- 2613. By Andrea Azzarone
-
Merge with trunk.
- 2614. By Andrea Azzarone
-
Use conditional bindings.
- 2615. By Andrea Azzarone
-
Rebase on unified-stages branch.
- 2616. By Andrea Azzarone
-
Remove trailing space.
- 2617. By Andrea Azzarone
-
Resync with lp:~azzar1/unity8/remove-UbuntuShapeForItem
- 2618. By Andrea Azzarone
-
Remove mouseEventEater as we have hoverEnabled equals to true in dndArea.
- 2619. By Andrea Azzarone
-
Move Tooltip in a different component.
- 2620. By Andrea Azzarone
-
Remove useless code in Tooltip.qml
- 2621. By Andrea Azzarone
-
Add a delay in mouseMove.
- 2622. By Andrea Azzarone
-
Refactor the way we deal with tooltip delay timer.
- 2623. By Andrea Azzarone
-
Use revealByPush.
- 2624. By Andrea Azzarone
-
waitForRenderin
g(launcher) when using revealyByEdgePush - 2625. By Andrea Azzarone
-
Add deps to qml-module-
qtqml-statemach ine. - 2626. By Andrea Azzarone
-
Revert change to revealByEdgePush
- 2627. By Andrea Azzarone
-
Disable the tests.
- 2628. By Andrea Azzarone
-
Disable enableHovered to debug test failures.
- 2629. By Andrea Azzarone
-
Re-enable tooltips and tests.
- 2630. By Andrea Azzarone
-
Resync with lp:~azzar1/unity8/remove-UbuntuShapeForItem
- 2631. By Andrea Azzarone
-
Mark hoveredItem and itemCenter as readonly
- 2632. By Andrea Azzarone
-
Avoid type conversion.
- 2633. By Andrea Azzarone
-
Merge with trunk.
- 2634. By Andrea Azzarone
-
Fix broken test.
Unmerged revisions
Preview Diff
1 | === removed file 'qml/Components/UbuntuShapeForItem.qml' | |||
2 | --- qml/Components/UbuntuShapeForItem.qml 2016-03-23 20:05:10 +0000 | |||
3 | +++ qml/Components/UbuntuShapeForItem.qml 1970-01-01 00:00:00 +0000 | |||
4 | @@ -1,47 +0,0 @@ | |||
5 | 1 | /* | ||
6 | 2 | * Copyright (C) 2012 Canonical, Ltd. | ||
7 | 3 | * | ||
8 | 4 | * This program is free software; you can redistribute it and/or modify | ||
9 | 5 | * it under the terms of the GNU General Public License as published by | ||
10 | 6 | * the Free Software Foundation; version 3. | ||
11 | 7 | * | ||
12 | 8 | * This program is distributed in the hope that it will be useful, | ||
13 | 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | 11 | * GNU General Public License for more details. | ||
16 | 12 | * | ||
17 | 13 | * You should have received a copy of the GNU General Public License | ||
18 | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
19 | 15 | */ | ||
20 | 16 | |||
21 | 17 | import QtQuick 2.4 | ||
22 | 18 | import Ubuntu.Components 1.3 | ||
23 | 19 | |||
24 | 20 | /* FIXME: This component is duplicating the UbuntuShape from the SDK, but shapes more | ||
25 | 21 | * general (Item-based) components. This ability should be incorporated into the SDK's | ||
26 | 22 | * UbuntuShape so this file can be removed. | ||
27 | 23 | * Bug: https://bugs.launchpad.net/tavastia/+bug/1089595 | ||
28 | 24 | */ | ||
29 | 25 | |||
30 | 26 | Item { | ||
31 | 27 | id: root | ||
32 | 28 | |||
33 | 29 | property alias radius: shape.radius | ||
34 | 30 | property alias image: source.sourceItem | ||
35 | 31 | property alias aspect: shape.aspect | ||
36 | 32 | |||
37 | 33 | ShaderEffectSource { | ||
38 | 34 | id: source | ||
39 | 35 | anchors.centerIn: parent // Placed under shape, so it's hidden | ||
40 | 36 | width: 1 | ||
41 | 37 | height: 1 | ||
42 | 38 | hideSource: true | ||
43 | 39 | } | ||
44 | 40 | |||
45 | 41 | Shape { | ||
46 | 42 | id: shape | ||
47 | 43 | image: source | ||
48 | 44 | |||
49 | 45 | anchors.fill: parent | ||
50 | 46 | } | ||
51 | 47 | } | ||
52 | 48 | 0 | ||
53 | === modified file 'qml/Launcher/LauncherDelegate.qml' | |||
54 | --- qml/Launcher/LauncherDelegate.qml 2016-06-03 11:13:46 +0000 | |||
55 | +++ qml/Launcher/LauncherDelegate.qml 2016-09-26 13:07:23 +0000 | |||
56 | @@ -22,6 +22,7 @@ | |||
57 | 22 | 22 | ||
58 | 23 | property int itemIndex: 0 | 23 | property int itemIndex: 0 |
59 | 24 | property string iconName | 24 | property string iconName |
60 | 25 | property string name | ||
61 | 25 | property int count: 0 | 26 | property int count: 0 |
62 | 26 | property bool countVisible: false | 27 | property bool countVisible: false |
63 | 27 | property int progress: -1 | 28 | property int progress: -1 |
64 | 28 | 29 | ||
65 | === modified file 'qml/Launcher/LauncherPanel.qml' | |||
66 | --- qml/Launcher/LauncherPanel.qml 2016-07-27 14:51:26 +0000 | |||
67 | +++ qml/Launcher/LauncherPanel.qml 2016-09-26 13:07:23 +0000 | |||
68 | @@ -15,6 +15,7 @@ | |||
69 | 15 | */ | 15 | */ |
70 | 16 | 16 | ||
71 | 17 | import QtQuick 2.4 | 17 | import QtQuick 2.4 |
72 | 18 | import QtQml.StateMachine 1.0 as DSM | ||
73 | 18 | import Ubuntu.Components 1.3 | 19 | import Ubuntu.Components 1.3 |
74 | 19 | import Unity.Launcher 0.1 | 20 | import Unity.Launcher 0.1 |
75 | 20 | import Ubuntu.Components.Popups 1.3 | 21 | import Ubuntu.Components.Popups 1.3 |
76 | @@ -41,7 +42,7 @@ | |||
77 | 41 | signal kbdNavigationCancelled() | 42 | signal kbdNavigationCancelled() |
78 | 42 | 43 | ||
79 | 43 | onXChanged: { | 44 | onXChanged: { |
81 | 44 | if (quickList.state == "open") { | 45 | if (quickList.state === "open") { |
82 | 45 | quickList.state = "" | 46 | quickList.state = "" |
83 | 46 | } | 47 | } |
84 | 47 | } | 48 | } |
85 | @@ -226,6 +227,7 @@ | |||
86 | 226 | // the right app when running autopilot tests for | 227 | // the right app when running autopilot tests for |
87 | 227 | // multiple apps. | 228 | // multiple apps. |
88 | 228 | readonly property string appId: model.appId | 229 | readonly property string appId: model.appId |
89 | 230 | name: model.name | ||
90 | 229 | itemIndex: index | 231 | itemIndex: index |
91 | 230 | itemHeight: launcherListView.itemHeight | 232 | itemHeight: launcherListView.itemHeight |
92 | 231 | itemWidth: launcherListView.itemWidth | 233 | itemWidth: launcherListView.itemWidth |
93 | @@ -399,6 +401,7 @@ | |||
94 | 399 | id: dndArea | 401 | id: dndArea |
95 | 400 | objectName: "dndArea" | 402 | objectName: "dndArea" |
96 | 401 | acceptedButtons: Qt.LeftButton | Qt.RightButton | 403 | acceptedButtons: Qt.LeftButton | Qt.RightButton |
97 | 404 | hoverEnabled: true | ||
98 | 402 | anchors { | 405 | anchors { |
99 | 403 | fill: parent | 406 | fill: parent |
100 | 404 | topMargin: launcherListView.topMargin | 407 | topMargin: launcherListView.topMargin |
101 | @@ -632,7 +635,7 @@ | |||
102 | 632 | } | 635 | } |
103 | 633 | } | 636 | } |
104 | 634 | 637 | ||
106 | 635 | UbuntuShapeForItem { | 638 | UbuntuShape { |
107 | 636 | id: quickListShape | 639 | id: quickListShape |
108 | 637 | objectName: "quickListShape" | 640 | objectName: "quickListShape" |
109 | 638 | anchors.fill: quickList | 641 | anchors.fill: quickList |
110 | @@ -645,7 +648,10 @@ | |||
111 | 645 | UbuntuNumberAnimation {} | 648 | UbuntuNumberAnimation {} |
112 | 646 | } | 649 | } |
113 | 647 | 650 | ||
115 | 648 | image: quickList | 651 | source: ShaderEffectSource { |
116 | 652 | sourceItem: quickList | ||
117 | 653 | hideSource: true | ||
118 | 654 | } | ||
119 | 649 | 655 | ||
120 | 650 | Image { | 656 | Image { |
121 | 651 | anchors { | 657 | anchors { |
122 | @@ -825,4 +831,145 @@ | |||
123 | 825 | } | 831 | } |
124 | 826 | } | 832 | } |
125 | 827 | } | 833 | } |
126 | 834 | |||
127 | 835 | UbuntuShape { | ||
128 | 836 | id: tooltipShape | ||
129 | 837 | objectName: "tooltipShape" | ||
130 | 838 | anchors.fill: tooltip | ||
131 | 839 | opacity: tooltipShownState.active ? 0.95 : 0 | ||
132 | 840 | visible: opacity > 0 | ||
133 | 841 | rotation: root.rotation | ||
134 | 842 | aspect: UbuntuShape.Flat | ||
135 | 843 | |||
136 | 844 | Behavior on opacity { | ||
137 | 845 | UbuntuNumberAnimation { | ||
138 | 846 | duration: UbuntuAnimation.BriskDuration | ||
139 | 847 | } | ||
140 | 848 | } | ||
141 | 849 | |||
142 | 850 | source: ShaderEffectSource { | ||
143 | 851 | sourceItem: tooltip | ||
144 | 852 | hideSource: true | ||
145 | 853 | } | ||
146 | 854 | |||
147 | 855 | Image { | ||
148 | 856 | anchors { | ||
149 | 857 | right: parent.left | ||
150 | 858 | rightMargin: -units.dp(4) | ||
151 | 859 | verticalCenter: parent.verticalCenter | ||
152 | 860 | verticalCenterOffset: -tooltip.offset * (root.inverted ? -1 : 1) | ||
153 | 861 | } | ||
154 | 862 | height: units.gu(1) | ||
155 | 863 | width: units.gu(2) | ||
156 | 864 | source: "graphics/quicklist_tooltip.png" | ||
157 | 865 | rotation: 90 | ||
158 | 866 | } | ||
159 | 867 | } | ||
160 | 868 | |||
161 | 869 | Rectangle { | ||
162 | 870 | id: tooltip | ||
163 | 871 | objectName: "tooltip" | ||
164 | 872 | |||
165 | 873 | color: theme.palette.normal.background | ||
166 | 874 | visible: tooltipShape.visible | ||
167 | 875 | |||
168 | 876 | width: tooltipLabel.contentWidth + units.gu(4) | ||
169 | 877 | height: tooltipLabel.contentHeight + units.gu(2) | ||
170 | 878 | |||
171 | 879 | y: itemCenter - (height / 2) + offset | ||
172 | 880 | rotation: root.rotation | ||
173 | 881 | |||
174 | 882 | anchors { | ||
175 | 883 | left: root.inverted ? undefined : parent.right | ||
176 | 884 | right: root.inverted ? parent.left : undefined | ||
177 | 885 | margins: units.gu(1) | ||
178 | 886 | } | ||
179 | 887 | |||
180 | 888 | property var hoveredItem: dndArea.containsMouse ? launcherListView.itemAt(dndArea.mouseX, dndArea.mouseY + launcherListView.realContentY) : null | ||
181 | 889 | |||
182 | 890 | property int itemCenter | ||
183 | 891 | property int offset: itemCenter + (height/2) + units.gu(1) > parent.height ? -itemCenter - (height/2) - units.gu(1) + parent.height : | ||
184 | 892 | itemCenter - (height/2) < units.gu(1) ? (height/2) - itemCenter + units.gu(1) : 0 | ||
185 | 893 | |||
186 | 894 | // This avoids artifacts on fade-out animation | ||
187 | 895 | onHoveredItemChanged : { | ||
188 | 896 | if (hoveredItem != null && !root.moving) { | ||
189 | 897 | itemCenter = root.mapFromItem(hoveredItem, 0, 0).y + (hoveredItem.height / 2) + hoveredItem.offset | ||
190 | 898 | tooltipLabel.text = tooltip.hoveredItem.name | ||
191 | 899 | } | ||
192 | 900 | } | ||
193 | 901 | |||
194 | 902 | Label { | ||
195 | 903 | id: tooltipLabel | ||
196 | 904 | height: parent.height | ||
197 | 905 | anchors.centerIn: parent | ||
198 | 906 | verticalAlignment: Label.AlignVCenter | ||
199 | 907 | color: theme.palette.normal.backgroundText | ||
200 | 908 | } | ||
201 | 909 | |||
202 | 910 | DSM.StateMachine { | ||
203 | 911 | id: tooltipStateMachine | ||
204 | 912 | initialState: tooltipHiddenState | ||
205 | 913 | running: true | ||
206 | 914 | |||
207 | 915 | DSM.State { | ||
208 | 916 | id: tooltipHiddenState | ||
209 | 917 | |||
210 | 918 | DSM.SignalTransition { | ||
211 | 919 | targetState: tooltipShownState | ||
212 | 920 | signal: tooltip.hoveredItemChanged | ||
213 | 921 | // !dndArea.pressed allows us to filter out touch input events | ||
214 | 922 | guard: tooltip.hoveredItem != null && !dndArea.pressed && !root.moving | ||
215 | 923 | } | ||
216 | 924 | } | ||
217 | 925 | |||
218 | 926 | DSM.State { | ||
219 | 927 | id: tooltipShownState | ||
220 | 928 | |||
221 | 929 | DSM.SignalTransition { | ||
222 | 930 | targetState: tooltipHiddenState | ||
223 | 931 | signal: tooltip.hoveredItemChanged | ||
224 | 932 | guard: tooltip.hoveredItem == null | ||
225 | 933 | } | ||
226 | 934 | |||
227 | 935 | DSM.SignalTransition { | ||
228 | 936 | targetState: tooltipHiddenState | ||
229 | 937 | signal: dndArea.exited | ||
230 | 938 | } | ||
231 | 939 | |||
232 | 940 | DSM.SignalTransition { | ||
233 | 941 | targetState: tooltipDismissedState | ||
234 | 942 | signal: dndArea.onPressed | ||
235 | 943 | } | ||
236 | 944 | |||
237 | 945 | DSM.SignalTransition { | ||
238 | 946 | targetState: tooltipDismissedState | ||
239 | 947 | signal: quickList.stateChanged | ||
240 | 948 | guard: quickList.state === "open" | ||
241 | 949 | } | ||
242 | 950 | |||
243 | 951 | DSM.SignalTransition { | ||
244 | 952 | targetState: tooltipDismissedState | ||
245 | 953 | signal: root.movingChanged | ||
246 | 954 | guard: root.moving | ||
247 | 955 | } | ||
248 | 956 | } | ||
249 | 957 | |||
250 | 958 | DSM.State { | ||
251 | 959 | id: tooltipDismissedState | ||
252 | 960 | |||
253 | 961 | DSM.SignalTransition { | ||
254 | 962 | targetState: tooltipHiddenState | ||
255 | 963 | signal: dndArea.positionChanged | ||
256 | 964 | guard: quickList.state != "open" && !dndArea.pressed && !dndArea.moving | ||
257 | 965 | } | ||
258 | 966 | |||
259 | 967 | DSM.SignalTransition { | ||
260 | 968 | targetState: tooltipHiddenState | ||
261 | 969 | signal: dndArea.exited | ||
262 | 970 | guard: quickList.state != "open" | ||
263 | 971 | } | ||
264 | 972 | } | ||
265 | 973 | } | ||
266 | 974 | } | ||
267 | 828 | } | 975 | } |
268 | 829 | 976 | ||
269 | === modified file 'qml/Stages/DesktopSpread.qml' | |||
270 | --- qml/Stages/DesktopSpread.qml 2016-06-15 14:08:18 +0000 | |||
271 | +++ qml/Stages/DesktopSpread.qml 2016-09-26 13:07:23 +0000 | |||
272 | @@ -311,10 +311,10 @@ | |||
273 | 311 | anchors { left: parent.left; top: parent.top; right: parent.right } | 311 | anchors { left: parent.left; top: parent.top; right: parent.right } |
274 | 312 | spacing: units.gu(1) | 312 | spacing: units.gu(1) |
275 | 313 | 313 | ||
277 | 314 | UbuntuShapeForItem { | 314 | UbuntuShape { |
278 | 315 | Layout.preferredHeight: Math.min(units.gu(6), root.height * .05) | 315 | Layout.preferredHeight: Math.min(units.gu(6), root.height * .05) |
279 | 316 | Layout.preferredWidth: height * 8 / 7.6 | 316 | Layout.preferredWidth: height * 8 / 7.6 |
281 | 317 | image: Image { | 317 | source: Image { |
282 | 318 | anchors.fill: parent | 318 | anchors.fill: parent |
283 | 319 | source: model.application.icon | 319 | source: model.application.icon |
284 | 320 | Rectangle { | 320 | Rectangle { |
285 | 321 | 321 | ||
286 | === modified file 'tests/qmltests/Launcher/tst_Launcher.qml' | |||
287 | --- tests/qmltests/Launcher/tst_Launcher.qml 2016-08-01 11:23:49 +0000 | |||
288 | +++ tests/qmltests/Launcher/tst_Launcher.qml 2016-09-26 13:07:23 +0000 | |||
289 | @@ -1353,5 +1353,91 @@ | |||
290 | 1353 | mouseWheel(launcherPanel, launcherPanel.width/2, launcherPanel.height/2, Qt.RightButton); | 1353 | mouseWheel(launcherPanel, launcherPanel.width/2, launcherPanel.height/2, Qt.RightButton); |
291 | 1354 | tryCompare(clickThroughSpy, "count", 0); | 1354 | tryCompare(clickThroughSpy, "count", 0); |
292 | 1355 | } | 1355 | } |
293 | 1356 | |||
294 | 1357 | function test_tooltip() { | ||
295 | 1358 | launcher.lockedVisible = true; | ||
296 | 1359 | dragLauncherIntoView(); | ||
297 | 1360 | |||
298 | 1361 | var item = findChild(launcher, "launcherDelegate0"); | ||
299 | 1362 | var tooltipShape = findChild(launcher, "tooltipShape"); | ||
300 | 1363 | |||
301 | 1364 | // Make sure we don't start the test with the mouse hovering the launcher | ||
302 | 1365 | mouseMove(root, root.width, root.height / 2); | ||
303 | 1366 | |||
304 | 1367 | // Initial state | ||
305 | 1368 | tryCompare(tooltipShape, "visible", false); | ||
306 | 1369 | |||
307 | 1370 | // Move the mouse on the launcher icon | ||
308 | 1371 | mouseMove(item, item.width / 2, item.height / 2); | ||
309 | 1372 | mouseMove(item, item.width / 2 + 1, item.height / 2); | ||
310 | 1373 | tryCompare(tooltipShape, "visible", true); | ||
311 | 1374 | |||
312 | 1375 | // Move the mouse away | ||
313 | 1376 | mouseMove(root, root.width, root.height / 2); | ||
314 | 1377 | tryCompare(tooltipShape, "visible", false); | ||
315 | 1378 | } | ||
316 | 1379 | |||
317 | 1380 | function test_quicklist_dismisses_tooltip() { | ||
318 | 1381 | launcher.lockedVisible = true; | ||
319 | 1382 | dragLauncherIntoView(); | ||
320 | 1383 | |||
321 | 1384 | var item = findChild(launcher, "launcherDelegate0"); | ||
322 | 1385 | var tooltipShape = findChild(launcher, "tooltipShape"); | ||
323 | 1386 | var quickListShape = findChild(launcher, "quickListShape"); | ||
324 | 1387 | |||
325 | 1388 | // Make sure we don't start the test with the mouse hovering the launcher | ||
326 | 1389 | mouseMove(root, root.width, root.height / 2); | ||
327 | 1390 | |||
328 | 1391 | // Initial state | ||
329 | 1392 | tryCompare(tooltipShape, "visible", false); | ||
330 | 1393 | |||
331 | 1394 | // Move the mouse on the launcher icon | ||
332 | 1395 | mouseMove(item, item.width / 2, item.height / 2); | ||
333 | 1396 | mouseMove(item, item.width / 2 + 1, item.height / 2); | ||
334 | 1397 | tryCompare(tooltipShape, "visible", true); | ||
335 | 1398 | |||
336 | 1399 | // Right click to show the quicklist | ||
337 | 1400 | mouseClick(item, item.width / 2, item.height / 2, Qt.RightButton); | ||
338 | 1401 | tryCompare(quickListShape, "visible", true); | ||
339 | 1402 | tryCompare(tooltipShape, "visible", false); | ||
340 | 1403 | |||
341 | 1404 | // Left click hides the quicklist, tooltip is still dismissed | ||
342 | 1405 | mouseClick(item, item.width / 2, item.height / 2, Qt.LefftButton); | ||
343 | 1406 | tryCompare(quickListShape, "visible", false); | ||
344 | 1407 | tryCompare(tooltipShape, "visible", false); | ||
345 | 1408 | |||
346 | 1409 | // Mouse motion should should show tooltip again | ||
347 | 1410 | mouseMove(item, item.width / 2, item.height / 2); | ||
348 | 1411 | mouseMove(item, item.width / 2 + 1, item.height / 2); | ||
349 | 1412 | tryCompare(tooltipShape, "visible", true); | ||
350 | 1413 | } | ||
351 | 1414 | |||
352 | 1415 | function test_click_dismisses_tooltip() { | ||
353 | 1416 | launcher.lockedVisible = true; | ||
354 | 1417 | dragLauncherIntoView(); | ||
355 | 1418 | |||
356 | 1419 | var item = findChild(launcher, "launcherDelegate0"); | ||
357 | 1420 | var tooltipShape = findChild(launcher, "tooltipShape"); | ||
358 | 1421 | |||
359 | 1422 | // Make sure we don't start the test with the mouse hovering the launcher | ||
360 | 1423 | mouseMove(root, root.width, root.height / 2); | ||
361 | 1424 | |||
362 | 1425 | // Initial state | ||
363 | 1426 | compare(tooltipShape.visible, false); | ||
364 | 1427 | |||
365 | 1428 | // Move the mouse on the launcher icon | ||
366 | 1429 | mouseMove(item, item.width / 2, item.height / 2); | ||
367 | 1430 | mouseMove(item, item.width / 2 + 1, item.height / 2); | ||
368 | 1431 | tryCompare(tooltipShape, "visible", true); | ||
369 | 1432 | |||
370 | 1433 | // Left click should dismiss the tooltip | ||
371 | 1434 | mouseClick(item, item.width / 2 + 1, item.height / 2, Qt.LeftButton); | ||
372 | 1435 | tryCompare(tooltipShape, "visible", false); | ||
373 | 1436 | |||
374 | 1437 | // Mouse motion should should show tooltip again | ||
375 | 1438 | mouseMove(item, item.width / 2, item.height / 2); | ||
376 | 1439 | mouseMove(item, item.width / 2 + 1, item.height / 2); | ||
377 | 1440 | tryCompare(tooltipShape, "visible", true); | ||
378 | 1441 | } | ||
379 | 1356 | } | 1442 | } |
380 | 1357 | } | 1443 | } |