Unity 8
 All Classes Functions Properties
WaitingDots.qml
1 /*
2  * Copyright (C) 2014 Canonical, Ltd.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; version 3.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  */
16 
17 import QtQuick 2.2
18 import Ubuntu.Components 0.1
19 
20 Item {
21  id: waitingDots
22 
23  // center in parent; waitingDots has no size therefore anchors.centerIn cannot be used
24  x: parent.width / 2
25  y: parent.height / 2
26 
27  property var dots: [dot1, dot2, dot3]
28  property var vertices: [[-units.gu(1), -units.gu(1)],
29  [units.gu(1), -units.gu(1)],
30  [0, units.gu(1)]]
31  property int shift: 0
32 
33  function cycle () {
34  var n = vertices.length;
35  shift = (shift + 1) % n;
36 
37  for (var i = 0; i < n; i++) {
38  dots[i].x = vertices[(i+shift) % n][0];
39  dots[i].y = vertices[(i+shift) % n][1];
40  }
41  }
42 
43  Timer {
44  interval: 800
45  running: waitingDots.visible
46  repeat: true
47  triggeredOnStart: true
48  onTriggered: waitingDots.cycle()
49  }
50 
51 
52  Dot {
53  id: dot1
54  x: vertices[0][0]
55  y: vertices[0][1]
56  Behavior on x {XAnimator {duration: UbuntuAnimation.BriskDuration; easing: UbuntuAnimation.StandardEasing}}
57  Behavior on y {YAnimator {duration: UbuntuAnimation.BriskDuration; easing: UbuntuAnimation.StandardEasing}}
58  }
59 
60  Dot {
61  id: dot2
62  x: vertices[1][0]
63  y: vertices[1][1]
64  Behavior on x {XAnimator {duration: UbuntuAnimation.BriskDuration; easing: UbuntuAnimation.StandardEasing}}
65  Behavior on y {YAnimator {duration: UbuntuAnimation.BriskDuration; easing: UbuntuAnimation.StandardEasing}}
66 
67  }
68 
69  Dot {
70  id: dot3
71  x: vertices[2][0]
72  y: vertices[2][1]
73  Behavior on x {XAnimator {duration: UbuntuAnimation.BriskDuration; easing: UbuntuAnimation.StandardEasing}}
74  Behavior on y {YAnimator {duration: UbuntuAnimation.BriskDuration; easing: UbuntuAnimation.StandardEasing}}
75  }
76 }