Enable Daemon Option, submit for testing
[googlelatitude] / qml / MainPage.qml
1 import QtQuick 1.0
2 import com.meego 1.0
3
4 Page {
5     id: mainPage
6     Column {
7         spacing: 16
8         Row {
9             width: rootWindow.width
10             Button {
11                 id: do_auth
12                 width: rootWindow.width / 3
13                 text: "Auth"
14                 enabled: false
15                 onClicked: {
16                     Qt.openUrlExternally(latitude.getUserAuthorization())
17                 }
18             }
19             Button {
20                 id: do_start
21                 width: rootWindow.width / 3
22                 text: "Start"
23                 enabled: false
24                 onClicked: {
25                     do_start.enabled = false;
26                     do_stop.enabled = true;
27                     if (!demonio.demonio_start()) {
28                         gps.startUpdates()
29                     }
30                 }
31             }
32             Button {
33                 id: do_stop
34                 width: rootWindow.width / 3
35                 text: "Stop"
36                 enabled: false
37                 onClicked: {
38                     do_start.enabled = true;
39                     do_stop.enabled = false;
40                     if (!demonio.demonio_stop()) {
41                         gps.stopUpdates(true)
42                     }
43                 }
44             }
45         }
46         Row {
47             Label {
48                 id: method_label
49                 text: "Method"
50                 width: rootWindow.width / 4
51                 anchors.verticalCenter: method_button.verticalCenter
52             }
53             ButtonRow {
54                 id: method_button
55                 width: rootWindow.width * 2 / 3
56                 Button {
57                     id: method_cell
58                     text: "Cell Tower"
59                     checked: gps.getPositioningMethod() == "cell" ? true : false
60                     onClicked: gps.setPositioningMethod("cell")
61                 }
62                 Button {
63                     id: method_all
64                     text: "Both"
65                     checked: gps.getPositioningMethod() == "all" ? true : false
66                     onClicked: gps.setPositioningMethod("all")
67                 }
68                 Button {
69                     id: method_agps
70                     text: "Only GPS"
71                     checked: gps.getPositioningMethod() == "gps" ? true : false
72                     onClicked: gps.setPositioningMethod("gps")
73                 }
74             }
75         }
76         Row {
77             Label {
78                 id: timeout_label
79                 text: "Time Out"
80                 width: rootWindow.width / 4
81                 anchors.verticalCenter: timeout_slider.verticalCenter
82             }
83             Slider {
84                 id: timeout_slider
85                 width: rootWindow.width / 2
86                 valueIndicatorVisible: true
87                 minimumValue: 5
88                 maximumValue: 120
89                 stepSize: 5
90                 value: gps.getTimeOut()
91             }
92             Label {
93                 id: timeout_value
94                 text: timeout_slider.value + " seg."
95                 width: rootWindow.width / 4
96                 anchors.verticalCenter: timeout_slider.verticalCenter
97             }
98             Connections {
99                 target: timeout_slider
100                 onValueChanged: {
101                     timeout_value.text = timeout_slider.value + " seg."
102                     gps.setTimeOut(timeout_slider.value)
103                 }
104             }
105         }
106         Row {
107             Label {
108                 id: interval_label
109                 text: "Interval"
110                 width: rootWindow.width / 4
111                 anchors.verticalCenter: interval_slider.verticalCenter
112             }
113             Slider {
114                 id: interval_slider
115                 width: rootWindow.width / 2
116                 valueIndicatorVisible: true
117                 minimumValue: 5
118                 maximumValue: 60
119                 stepSize: 5
120                 value: gps.getInterval() / 60
121             }
122             Label {
123                 id: interval_value
124                 text:  interval_slider.value + " min."
125                 width: rootWindow.width / 4
126                 anchors.verticalCenter: interval_slider.verticalCenter
127             }
128             Connections {
129                 target: interval_slider
130                 onValueChanged: {
131                     interval_value.text = interval_slider.value + " min."
132                     gps.setInterval(interval_slider.value*60)
133                 }
134             }
135         }
136         Row {
137             Label {
138                 id: connect_label
139                 text: "Auto Connect"
140                 width: rootWindow.width / 4
141                 anchors.verticalCenter: connect_switch.verticalCenter
142             }
143             Switch {
144                 id: connect_switch
145                 width: rootWindow.width / 2
146                 checked: latitude.getAutoConnect() ? true : false
147                 onCheckedChanged: {
148                     connect_value.text = checked
149                     latitude.setAutoConnect(checked)
150                 }
151             }
152             Label {
153                 id: connect_value
154                 text:  connect_switch.checked
155                 width: rootWindow.width / 4
156                 anchors.verticalCenter: connect_switch.verticalCenter
157             }
158         }
159
160         Connections {
161             target: latitude
162             onGotToken: {
163                 do_auth.enabled = false;
164                 if (demonio.demonio_status()) {
165                     do_start.enabled = false;
166                     do_stop.enabled = true;
167                 } else {
168                     do_start.enabled = true;
169                     do_stop.enabled = false;
170                 }
171             }
172         }
173         Connections {
174             target: latitude
175             onNotToken: {
176                 do_auth.enabled = true;
177                 do_start.enabled = false;
178                 do_stop.enabled = false;
179                 if (!demonio.demonio_stop()) {
180                     gps.stopUpdates(true)
181                 }
182             }
183         }
184         Connections {
185             target: latitude
186             onNeedAuth: {
187                 do_auth.enabled = true;
188             }
189         }
190
191         Connections {
192             target: gps
193             onGotFix: {
194                 latitude.setCurrentLocation(gps.getCurrentLatitude(),
195                                             gps.getCurrentLongitude(),
196                                             gps.getCurrentAccuracy())
197                 latitude.sendCurrentLocation()
198             }
199         }
200     }
201 }