Merge lp:~costales/unav/0.67-set-mode-routes into lp:unav

Proposed by costales
Status: Merged
Merged at revision: 174
Proposed branch: lp:~costales/unav/0.67-set-mode-routes
Merge into: lp:unav
Diff against target: 1655 lines (+726/-271)
14 files modified
nav/class/Settings.js (+1/-1)
nav/class/UI.js (+91/-25)
nav/class/WebAPI.js (+13/-4)
nav/css/unav.css (+37/-6)
nav/img/mode/bike.svg (+6/-6)
nav/img/mode/car.svg (+6/-6)
nav/img/mode/noroute.svg (+149/-0)
nav/img/mode/steps.svg (+54/-0)
nav/img/states/not_found.svg (+223/-0)
nav/index.html (+35/-9)
po/unav.pot (+87/-127)
qml/Location.qml (+2/-2)
qml/Main.qml (+18/-6)
qml/SettingsPage.qml (+4/-79)
To merge this branch: bzr merge lp:~costales/unav/0.67-set-mode-routes
Reviewer Review Type Date Requested Status
uNav developers Pending
Review via email: mp+317721@code.launchpad.net

Description of the change

Choose route mode in each new route or simulation

To post a comment you must log in.
184. By costales

Choose route mode

185. By costales

New empty state

186. By costales

New empty state

187. By costales

Ended

188. By costales

Wrong index

189. By costales

Updated Settings

190. By costales

i18n

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'nav/class/Settings.js'
2--- nav/class/Settings.js 2016-06-24 09:22:29 +0000
3+++ nav/class/Settings.js 2017-02-19 22:22:23 +0000
4@@ -16,7 +16,7 @@
5 function Settings() {
6 this.sound = true;
7 this.unit = this.KM;
8- this.routing_mode = 0; // 0 car, 1 walk, 2 bike
9+ this.routing_mode = 0; // 0 car, 1 walk, 2 bike, 3 multimodal
10 this.avoid_tolls = false;
11 this.alert_radars = true;
12 this.ui_speed = true;
13
14=== modified file 'nav/class/UI.js'
15--- nav/class/UI.js 2017-01-15 12:10:13 +0000
16+++ nav/class/UI.js 2017-02-19 22:22:23 +0000
17@@ -28,7 +28,6 @@
18 this.center_1st_pos = true;
19 this.zoom_unav = true;
20 this.map_stretched = true;
21- this.confirm_route = true;
22
23 this.marker_pos = new ol.Overlay({
24 positioning: 'center-center',
25@@ -195,6 +194,51 @@
26 return this.online_layer;
27 }
28
29+UI.prototype.set_confirm_btn_color = function(mode) {
30+ switch (mode) {
31+ case 0:
32+ $("#btn1_set_car").css( {"background": this.COLOR_ORANGE, "border-color":this.COLOR_ORANGE});
33+ $("#btn1_set_walk").css( {"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
34+ $("#btn1_set_bike").css( {"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
35+ $("#btn1_set_public").css({"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
36+ $("#btn2_set_car").css( {"background": this.COLOR_ORANGE, "border-color":this.COLOR_ORANGE});
37+ $("#btn2_set_walk").css( {"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
38+ $("#btn2_set_bike").css( {"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
39+ $("#btn2_set_public").css({"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
40+ break;
41+ case 1:
42+ $("#btn1_set_car").css( {"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
43+ $("#btn1_set_walk").css( {"background": this.COLOR_ORANGE, "border-color":this.COLOR_ORANGE});
44+ $("#btn1_set_bike").css( {"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
45+ $("#btn1_set_public").css({"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
46+ $("#btn2_set_car").css( {"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
47+ $("#btn2_set_walk").css( {"background": this.COLOR_ORANGE, "border-color":this.COLOR_ORANGE});
48+ $("#btn2_set_bike").css( {"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
49+ $("#btn2_set_public").css({"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
50+ break;
51+ case 2:
52+ $("#btn1_set_car").css( {"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
53+ $("#btn1_set_walk").css( {"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
54+ $("#btn1_set_bike").css( {"background": this.COLOR_ORANGE, "border-color":this.COLOR_ORANGE});
55+ $("#btn1_set_public").css({"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
56+ $("#btn2_set_car").css( {"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
57+ $("#btn2_set_walk").css( {"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
58+ $("#btn2_set_bike").css( {"background": this.COLOR_ORANGE, "border-color":this.COLOR_ORANGE});
59+ $("#btn2_set_public").css({"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
60+ break;
61+ case 3:
62+ $("#btn1_set_car").css( {"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
63+ $("#btn1_set_walk").css( {"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
64+ $("#btn1_set_bike").css( {"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
65+ $("#btn1_set_public").css({"background": this.COLOR_ORANGE, "border-color":this.COLOR_ORANGE});
66+ $("#btn2_set_car").css( {"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
67+ $("#btn2_set_walk").css( {"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
68+ $("#btn2_set_bike").css( {"background": this.COLOR_BLACK, "border-color":this.COLOR_BLACK});
69+ $("#btn2_set_public").css({"background": this.COLOR_ORANGE, "border-color":this.COLOR_ORANGE});
70+ break;
71+ }
72+}
73+
74 UI.prototype.set_map_layer = function(layer) {
75 var aux_center = this.map.getView().getCenter();
76 var aux_zoom = this.map.getView().getZoom();
77@@ -251,14 +295,6 @@
78 this.zoom_unav = zoom;
79 }
80
81-UI.prototype.get_confirm_route = function() {
82- return this.confirm_route;
83-}
84-
85-UI.prototype.set_confirm_route = function(confirm) {
86- this.confirm_route = confirm;
87-}
88-
89 UI.prototype.markers = function(start_lat, start_lng, end_lat, end_lng) {
90 this.marker_start.setPosition(undefined);
91 this.marker_end.setPosition(undefined);
92@@ -278,6 +314,25 @@
93 }
94 }
95
96+UI.prototype.btns_confirm_route = function(show) {
97+ if (show) {
98+ $('#btn_start').show();
99+ $('#btn_cancel').show();
100+ $('#btn_notfound').hide();
101+ $('#p_review_time2left').show();
102+ $('#p_review_total_dist').show();
103+ $('#p_review_time2arrive').show();
104+ }
105+ else {
106+ $('#btn_start').hide();
107+ $('#btn_cancel').hide();
108+ $('#btn_notfound').show();
109+ $('#p_review_time2left').hide();
110+ $('#p_review_total_dist').hide();
111+ $('#p_review_time2arrive').hide();
112+ }
113+}
114+
115 UI.prototype.route = function(redraw_map) {
116 if (this.nav.get_route_status() !== 'drawing' && this.nav.get_route_status() !== 'simulate_drawing') {
117 this.routeSource.clear();
118@@ -314,6 +369,7 @@
119 aux_height = aux_height + $('#panel_msg').height();
120 aux_height = aux_height + 110;
121 this.map.getView().fit(this.routeSource.getExtent(), this.map.getSize(), {padding: [150, 25, aux_height, 25]});
122+ map.updateSize();
123 }
124 }
125
126@@ -534,6 +590,7 @@
127 $('#panel_msg').show();
128 break;
129 case '2review':
130+ case 'calculating_error':
131 $('#p_review_time2left').html(this.maths.time2human(route_indicator['time'], false));
132 $('#p_review_total_dist').html(this.maths.dist2human(route_indicator['distance_total'], this.settings.get_unit()));
133 $('#p_review_time2arrive').html(this.maths.time2human(route_indicator['time'], true));
134@@ -587,8 +644,15 @@
135 $('#panel_msg').show();
136 break;
137 case 'simulate_error':
138- $('#p_msg').html(t("Error simulating route. Try different points"));
139- $('#panel_msg').show();
140+ $('#p_time2left').html('');
141+ $('#p_total_dist').html('');
142+ $('#p_time2arrive').html('');
143+ $('#p_speed').hide();
144+ $('#p_txt_ind').html(this.compose_btns_routing());
145+ this.set_confirm_btn_color(this.settings.get_routing_mode());
146+ $('#p_img_ind').attr('src', 'img/mode/noroute.svg');
147+ $('#panel_navigation').show();
148+ $('#panel_indication, #panel_txt_ind').css('background-color', this.COLOR_BLACK);
149 break;
150 case 'simulate_done_bike':
151 case 'simulate_done_walk':
152@@ -598,27 +662,29 @@
153 $('#p_total_dist').html(this.maths.dist2human(route_indicator['distance_total'], this.settings.get_unit()));
154 $('#p_time2arrive').html(this.maths.time2human(route_indicator['time'], true));
155 $('#p_speed').hide();
156- switch (this.nav.get_route_status()) {
157- case 'simulate_done_public':
158- $('#p_img_ind').attr('src', 'img/mode/public.svg');
159- break;
160- case 'simulate_done_bike':
161- $('#p_img_ind').attr('src', 'img/mode/bike.svg');
162- break;
163- case 'simulate_done_walk':
164- $('#p_img_ind').attr('src', 'img/mode/walk.svg');
165- break;
166- default:
167- $('#p_img_ind').attr('src', 'img/mode/car.svg');
168- }
169 $('#p_next_dist').html('');
170- $('#p_txt_ind').html(t("Click onto the icon for reviewing the route"));
171+ $('#p_txt_ind').html(this.compose_btns_routing());
172+ this.set_confirm_btn_color(this.settings.get_routing_mode());
173+ $('#p_img_ind').attr('src', 'img/mode/steps.svg');
174 $('#panel_navigation').show();
175 $('#panel_indication, #panel_txt_ind').css('background-color', this.COLOR_BLACK);
176 break;
177 }
178 }
179
180+UI.prototype.compose_btns_routing = function() {
181+ return "<table class='tg' id='panel_review_btns'> \
182+ <tr> \
183+ <th class='tg-yw4l'> \
184+ <button data-role='button' id='btn2_set_car' class='btns2_mode_route negative' onClick='javascript:set_simulate_mode(0)'><img class='img2_btn_route' src='img/mode/car.svg'></button> \
185+ <button data-role='button' id='btn2_set_walk' class='btns2_mode_route negative' onClick='javascript:set_simulate_mode(1)'><img class='img2_btn_route' src='img/mode/walk.svg'></button> \
186+ <button data-role='button' id='btn2_set_bike' class='btns2_mode_route negative' onClick='javascript:set_simulate_mode(2)'><img class='img2_btn_route' src='img/mode/bike.svg'></button> \
187+ <button data-role='button' id='btn2_set_public' class='btns2_mode_route negative' onClick='javascript:set_simulate_mode(3)'><img class='img2_btn_route' src='img/mode/public.svg'></button> \
188+ </th> \
189+ </tr> \
190+ </table>";
191+}
192+
193 UI.prototype.scale_line = function() {
194 switch(this.nav.get_route_status()) {
195 case 'no':
196
197=== modified file 'nav/class/WebAPI.js'
198--- nav/class/WebAPI.js 2016-12-22 19:23:03 +0000
199+++ nav/class/WebAPI.js 2017-02-19 22:22:23 +0000
200@@ -17,6 +17,7 @@
201 this.nav = nav;
202 this.ui = ui;
203 this.settings = settings;
204+ this.confirm_route = '';
205
206 this.route_status = '';
207 this.t_prev = $.now() - 1;
208@@ -24,12 +25,13 @@
209
210
211 // Route
212-WebAPI.prototype.set_route = function(lat1, lng1, lat2, lng2) {
213+WebAPI.prototype.set_route = function(lat1, lng1, lat2, lng2, confirm_route) {
214 if (this.nav.get_route_status() == 'calculating' || this.nav.get_route_status() == 'calculating_from_out')
215 return;
216
217- if (this.t_prev < $.now()) { // Avoid several calls in a small time
218+ if (confirm_route || this.t_prev < $.now()) { // Avoid several calls in a small time
219
220+ this.confirm_route = confirm_route;
221 if (this.nav.get_route_status() == "errorAPI") // Avoid so many calls
222 this.t_prev = $.now() + 60000;
223 else
224@@ -108,8 +110,15 @@
225 qml_show_notification('critical', 'calcfromout_error');
226 }
227 else {
228- this.nav.set_route_status('errorAPI');
229- qml_show_notification('critical', 'webapi_error');
230+ if (this.confirm_route) {
231+ this.nav.set_route_status('calculating_error');
232+ this.ui.route(false);
233+ this.ui.btns_confirm_route(false);
234+ }
235+ else {
236+ this.nav.set_route_status('errorAPI');
237+ qml_show_notification('critical', 'webapi_error');
238+ }
239 }
240 }
241
242
243=== modified file 'nav/css/unav.css'
244--- nav/css/unav.css 2016-07-15 13:22:55 +0000
245+++ nav/css/unav.css 2017-02-19 22:22:23 +0000
246@@ -89,8 +89,15 @@
247
248 .btns_route {
249 width:95%;
250- max-width: 300px;
251+ max-width: 200px;
252 height:40px;
253+ margin-top: 5px;
254+ margin-bottom: 3px;
255+}
256+
257+#btn_start {
258+ background: #398DFF;
259+ border-color: #398DFF;
260 }
261
262 #gps_progress {
263@@ -99,12 +106,36 @@
264 height:10px;
265 margin-bottom: 8px;
266 }
267-#btn_start {
268+
269+.btns1_mode_route {
270 margin-top: 5px;
271- margin-bottom: 3px;
272-}
273-#btn_cancel {
274- margin-bottom: 3px;
275+ margin-left: 10px;
276+ margin-right: 10px;
277+ margin-bottom: 3px;
278+ width: 50px;
279+ height: 40px;
280+}
281+
282+.img1_btn_route {
283+ width: 25px;
284+ height: 25px;
285+}
286+
287+.btns2_mode_route {
288+ margin-top: 15px;
289+ margin-left: 5px;
290+ margin-right: 5px;
291+ width: 35px;
292+ height: 35x;
293+}
294+
295+.img2_btn_route {
296+ width: 20px;
297+ height: 20px;
298+}
299+
300+#btn_notfound {
301+ max-width: 274px;
302 }
303
304 .ol-scale-line {
305
306=== modified file 'nav/img/mode/bike.svg'
307--- nav/img/mode/bike.svg 2016-04-29 21:22:30 +0000
308+++ nav/img/mode/bike.svg 2017-02-19 22:22:23 +0000
309@@ -31,20 +31,20 @@
310 guidetolerance="10"
311 inkscape:pageopacity="0"
312 inkscape:pageshadow="2"
313- inkscape:window-width="1366"
314- inkscape:window-height="744"
315+ inkscape:window-width="1440"
316+ inkscape:window-height="824"
317 id="namedview6"
318 showgrid="false"
319 inkscape:zoom="2.7230142"
320- inkscape:cx="-6.8710741"
321- inkscape:cy="30.019466"
322+ inkscape:cx="-5.8601662"
323+ inkscape:cy="29.5628"
324 inkscape:window-x="0"
325- inkscape:window-y="0"
326+ inkscape:window-y="24"
327 inkscape:window-maximized="1"
328 inkscape:current-layer="svg2"
329 showborder="true"
330 inkscape:showpageshadow="false" /><path
331- d="m 76.14832,56.00316 c -1.9964,0 -3.9146,0.33488 -5.7086,0.94208 -1.39104,-3.08384 -3.01668,-6.69208 -4.92016,-10.92776 l 1.2144,-3.3396 4.17404,-0.07636 0,-3.4914 -15.71176,0 c -1.37448,1.88048 0.5566,1.8722 7.51456,3.41504 l -1.2144,3.41596 -31.04356,0 c 2.091161,-7.30388 0.909881,-6.77212 10.322401,-6.75556 l 0,-3.56684 c -12.95728,0.12604 -10.71064,-1.334 -17.64928,20.9852 C 22.064281,56.40612 20.9704,56.29756 19.85076,56.29756 10.00768,56.29756 2,64.30616 2,74.14924 2,83.99232 10.00768,92 19.85076,92 c 9.844,0 17.851681,-8.00768 17.851681,-17.85076 0,-7.36552 -4.485,-13.7034 -10.86704,-16.4266 0.38824,-1.22176 0.80592,-2.52632 1.25396,-3.92012 26.11512,27.54572 16.31804,23.08004 30.371039,23.63848 0.06716,0 0.13156,-9.2e-4 0.19872,-0.0018 1.66428,8.13188 8.874321,14.26736 17.489201,14.26736 C 85.992321,91.70652 94,83.69884 94,73.85576 94,64.01268 85.992321,56.00316 76.148321,56.00316 Z M 33.52656,74.14924 c 0,7.54032 -6.13456,13.67488 -13.67488,13.67488 -7.54032,0 -13.6758,-6.13456 -13.6758,-13.67488 0,-7.54032 6.13456,-13.67488 13.67488,-13.67488 0.67988,0 1.3478,0.05152 2.001,0.14812 -4.3562,13.73744 -3.83364,12.17344 -3.86032,13.33172 -0.02116,0.97704 0.76728,1.75168 1.75904,1.81884 1.77744,-0.18032 1.37724,0.11408 5.819,-14.04012 4.692,2.16752 7.95708,6.91564 7.95708,12.41632 z m 17.6272,-0.851 L 29.55492,49.76096 59.9324,49.70668 51.15376,73.29824 Z m 7.14472,0.49404 -3.3212,-0.01012 8.61764,-22.62096 3.34328,7.40784 c -5.15752,3.1188 -8.61672,8.77312 -8.63972,15.22324 z M 68.67332,62.4128 73.829,73.83644 62.47436,73.80424 c 0.0184,-4.76192 2.48308,-8.9562 6.19896,-11.39144 z m 7.475,25.11784 c -6.30568,0 -11.62696,-4.29272 -13.20016,-10.10896 14.23332,0.0138 15.50292,0.74336 15.70164,-1.72592 -0.01932,-0.71944 -0.28704,-1.21256 -6.48232,-14.9224 1.25948,-0.38456 2.59624,-0.5934 3.97992,-0.5934 7.54032,0 13.67488,6.13456 13.67488,13.6758 0,7.54124 -6.13364,13.67488 -13.67396,13.67488 z"
332+ d="m 77.414447,41.964511 c -2.060153,0 -4.039609,0.345574 -5.890898,0.972164 -1.435462,-3.182319 -3.113015,-6.905784 -5.07728,-11.276726 l 1.25318,-3.446246 4.307334,-0.0788 0,-3.602894 -16.213498,0 c -1.418373,1.940531 0.574374,1.931987 7.754529,3.524096 l -1.253181,3.525045 -32.034902,0 c 2.15794,-7.537122 0.938937,-6.988381 10.652036,-6.971292 l 0,-3.680743 c -13.371057,0.130065 -11.052673,-1.3766 -18.212891,21.65534 -1.095584,-0.204117 -2.224397,-0.316144 -3.379791,-0.316144 -10.1574087,0 -18.42080529,8.264346 -18.42080529,18.421755 0,10.157408 8.26339659,18.420804 18.42080529,18.420804 10.158357,0 18.421755,-8.263396 18.421755,-18.420804 0,-7.60073 -4.628224,-14.141004 -11.214067,-16.951166 0.400638,-1.260776 0.831656,-2.606995 1.294004,-4.045305 26.949078,28.425363 16.839139,23.817076 31.340905,24.393349 0.0693,0 0.135761,-9.49e-4 0.205066,-0.0019 1.717427,8.391563 9.157713,14.722973 18.0477,14.722973 10.158357,-4.2e-5 18.421753,-8.263438 18.421753,-18.420846 0,-10.157409 -8.263396,-18.422704 -18.421753,-18.422704 z m -43.98284,18.725556 c 0,7.781112 -6.330461,14.111572 -14.111573,14.111572 -7.781112,0 -14.1125221,-6.33046 -14.1125221,-14.111572 0,-7.781112 6.3304611,-14.111573 14.1115731,-14.111573 0.701591,0 1.39084,0.05316 2.0649,0.15285 -4.495311,14.17613 -3.956064,12.562186 -3.983596,13.757454 -0.02183,1.008241 0.791783,1.807618 1.815213,1.876923 1.834201,-0.186078 1.421221,0.117723 6.004824,-14.488476 4.841834,2.236737 8.211181,7.136483 8.211181,12.812822 z M 51.621712,59.811891 29.333137,35.522973 60.680689,35.46696 51.621712,59.811891 Z m 7.372879,0.509816 -3.427259,-0.01044 8.892835,-23.343336 3.450044,7.644402 c -5.322219,3.218395 -8.891885,9.05328 -8.91562,15.709377 z m 10.70615,-11.742871 5.320321,11.788442 -11.717239,-0.03323 c 0.01899,-4.913986 2.562375,-9.242206 6.396918,-11.755213 z m 7.713706,25.919951 c -6.507045,0 -11.998255,-4.429803 -13.621693,-10.431779 14.687845,0.01424 15.997989,0.767099 16.203055,-1.781035 -0.01994,-0.742414 -0.296207,-1.251282 -6.689326,-15.398931 1.2997,-0.39684 2.679148,-0.612349 4.107014,-0.612349 7.781112,0 14.111573,6.33046 14.111573,14.112522 0,7.782061 -6.329511,14.111572 -14.110623,14.111572 z"
333 id="path4"
334 style="fill:#ffffff"
335 inkscape:connector-curvature="0" /></svg>
336\ No newline at end of file
337
338=== modified file 'nav/img/mode/car.svg'
339--- nav/img/mode/car.svg 2016-04-29 21:22:30 +0000
340+++ nav/img/mode/car.svg 2017-02-19 22:22:23 +0000
341@@ -21,7 +21,7 @@
342 height="96"><metadata
343 id="metadata18"><rdf:RDF><cc:Work
344 rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
345- rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
346+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
347 id="defs16" /><sodipodi:namedview
348 pagecolor="#acacac"
349 bordercolor="#666666"
350@@ -31,19 +31,19 @@
351 guidetolerance="10"
352 inkscape:pageopacity="0"
353 inkscape:pageshadow="2"
354- inkscape:window-width="1366"
355- inkscape:window-height="744"
356+ inkscape:window-width="1440"
357+ inkscape:window-height="824"
358 id="namedview14"
359 showgrid="false"
360 inkscape:zoom="1.888"
361- inkscape:cx="-17.266949"
362+ inkscape:cx="-112.3411"
363 inkscape:cy="62.5"
364 inkscape:window-x="0"
365- inkscape:window-y="0"
366+ inkscape:window-y="24"
367 inkscape:window-maximized="1"
368 inkscape:current-layer="svg2" /><switch
369 id="switch4"
370- transform="matrix(1.0244202,0,0,1.0244202,-3.4294271,11.070804)"><foreignObject
371+ transform="matrix(1.0657046,0,0,1.0657046,-5.2372177,-2.8176641)"><foreignObject
372 requiredExtensions="http://ns.adobe.com/AdobeIllustrator/10.0/"
373 x="0"
374 y="0"
375
376=== added file 'nav/img/mode/noroute.svg'
377--- nav/img/mode/noroute.svg 1970-01-01 00:00:00 +0000
378+++ nav/img/mode/noroute.svg 2017-02-19 22:22:23 +0000
379@@ -0,0 +1,149 @@
380+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
381+<svg
382+ xmlns:dc="http://purl.org/dc/elements/1.1/"
383+ xmlns:cc="http://creativecommons.org/ns#"
384+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
385+ xmlns:svg="http://www.w3.org/2000/svg"
386+ xmlns="http://www.w3.org/2000/svg"
387+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
388+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
389+ version="1.1"
390+ x="0px"
391+ y="0px"
392+ viewBox="0 0 40 40"
393+ enable-background="new 0 0 40 40"
394+ xml:space="preserve"
395+ id="svg2"
396+ inkscape:version="0.91 r13725"
397+ sodipodi:docname="noroute.svg"
398+ width="40"
399+ height="40"><metadata
400+ id="metadata66"><rdf:RDF><cc:Work
401+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
402+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
403+ id="defs64" /><sodipodi:namedview
404+ pagecolor="#ffffff"
405+ bordercolor="#666666"
406+ borderopacity="1"
407+ objecttolerance="10"
408+ gridtolerance="10"
409+ guidetolerance="10"
410+ inkscape:pageopacity="0"
411+ inkscape:pageshadow="2"
412+ inkscape:window-width="1440"
413+ inkscape:window-height="824"
414+ id="namedview62"
415+ showgrid="false"
416+ inkscape:zoom="18.88"
417+ inkscape:cx="26.51607"
418+ inkscape:cy="18.344922"
419+ inkscape:window-x="0"
420+ inkscape:window-y="24"
421+ inkscape:window-maximized="1"
422+ inkscape:current-layer="svg2" /><g
423+ id="g4"><circle
424+ cx="6.1999998"
425+ cy="6.1999998"
426+ r="6.1999998"
427+ id="circle6"
428+ style="fill:#ffffff" /><g
429+ id="g8"><path
430+ d="M 9.2,9.3 7.8,9.3 7.3,7.8 5,7.8 4.5,9.3 3.2,9.3 5.4,3 6.9,3 9.2,9.3 Z M 7,6.8 6.1,4.2 5.3,6.8 7,6.8 Z"
431+ id="path10"
432+ inkscape:connector-curvature="0"
433+ style="fill:#ffffff" /></g><circle
434+ cx="33.799999"
435+ cy="33.799999"
436+ r="6.1999998"
437+ id="circle12"
438+ style="fill:#ffffff" /><g
439+ id="g14"><path
440+ d="m 36.4,35 c 0,0.6 -0.2,1 -0.6,1.3 -0.4,0.3 -0.9,0.5 -1.7,0.5 l -2.4,0 0,-6 2.3,0 c 0.3,0 0.6,0 0.9,0.1 0.3,0.1 0.5,0.2 0.7,0.3 0.2,0.1 0.3,0.3 0.4,0.5 0.1,0.2 0.1,0.4 0.1,0.6 0,0.6 -0.3,1 -0.9,1.3 0.4,0.1 0.6,0.3 0.8,0.5 0.3,0.3 0.4,0.6 0.4,0.9 z m -3.4,-1.8 1,0 c 0.3,0 0.6,-0.1 0.7,-0.2 0.1,-0.1 0.2,-0.3 0.2,-0.6 0,-0.2 -0.1,-0.4 -0.2,-0.6 -0.1,-0.1 -0.4,-0.2 -0.8,-0.2 l -1,0 0,1.6 z m 0,2.6 1,0 c 0.4,0 0.6,-0.1 0.8,-0.2 0.2,-0.1 0.3,-0.3 0.3,-0.6 0,-0.1 0,-0.3 -0.1,-0.4 0,-0.1 -0.1,-0.2 -0.2,-0.2 -0.1,-0.1 -0.2,-0.1 -0.3,-0.1 -0.1,0 -0.3,0 -0.5,0 l -1,0 0,1.5 z"
441+ id="path16"
442+ inkscape:connector-curvature="0"
443+ style="fill:#ffffff" /></g><g
444+ display="none"
445+ id="g18"
446+ style="display:none"><g
447+ display="inline"
448+ id="g20"
449+ style="display:inline"><line
450+ stroke-miterlimit="10"
451+ x1="33.799999"
452+ y1="35"
453+ x2="33.799999"
454+ y2="32"
455+ id="line22"
456+ style="fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:10" /><path
457+ stroke-miterlimit="10"
458+ d="m 33.8,30 0,-18 c 0,-3.8 -3.1,-6.9 -6.9,-6.9 l 0,0 C 23.1,5 20,8.1 20,11.9 l 0,16 c 0,3.8 -3.1,6.9 -6.9,6.9 l 0,0 c -3.8,0 -6.9,-3.1 -6.9,-6.9 l 0,-17.8"
459+ id="path24"
460+ inkscape:connector-curvature="0"
461+ style="fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:10;stroke-dasharray:6.0068, 2.0023" /><line
462+ stroke-miterlimit="10"
463+ x1="6.1999998"
464+ y1="9.1000004"
465+ x2="6.1999998"
466+ y2="6.0999999"
467+ id="line26"
468+ style="fill:none;stroke:#000000;stroke-width:3;stroke-miterlimit:10" /></g></g></g><g
469+ id="g28"><path
470+ d="M 21.8,20 25,23.2 23.2,25 20,21.8 16.9,24.9 15,23.1 18.1,20 15,16.9 l 1.8,-1.8 3.1,3.1 3.2,-3.2 1.8,1.8 -3.1,3.2 z"
471+ id="path30"
472+ inkscape:connector-curvature="0"
473+ style="fill:#ffffff" /></g><g
474+ id="g32"><rect
475+ x="4.6999998"
476+ y="19.200001"
477+ width="3"
478+ height="6"
479+ id="rect34"
480+ style="fill:#ffffff" /><path
481+ d="m 7.7,27.9 0,-0.7 -3,0 0,0.7 c 0,2.2 0.8,4.2 2.3,5.8 l 2.2,-2.1 c -1,-1 -1.5,-2.3 -1.5,-3.7 z"
482+ id="path36"
483+ inkscape:connector-curvature="0"
484+ style="fill:#ffffff" /><path
485+ d="m 10.4,32.6 -1.5,2.6 c 1.3,0.7 2.7,1.1 4.2,1.1 1,0 2,-0.2 2.9,-0.5 L 15,33 c -1.5,0.5 -3.2,0.4 -4.6,-0.4 z"
486+ id="path38"
487+ inkscape:connector-curvature="0"
488+ style="fill:#ffffff" /><rect
489+ x="4.6999998"
490+ y="11.2"
491+ width="3"
492+ height="6"
493+ id="rect40"
494+ style="fill:#ffffff" /><polygon
495+ points="18.5,13.3 20,14.8 21.5,13.2 21.5,12.3 18.5,12.3 "
496+ id="polygon42"
497+ style="fill:#ffffff" /><path
498+ d="M 24.5,7.1 23.2,4.4 C 21,5.5 19.4,7.5 18.8,9.9 l 2.9,0.7 C 22,9.1 23.1,7.8 24.5,7.1 Z"
499+ id="path44"
500+ inkscape:connector-curvature="0"
501+ style="fill:#ffffff" /><rect
502+ x="32.299999"
503+ y="24"
504+ width="3"
505+ height="6"
506+ id="rect46"
507+ style="fill:#ffffff" /><rect
508+ x="32.299999"
509+ y="15.9"
510+ width="3"
511+ height="6"
512+ id="rect48"
513+ style="fill:#ffffff" /><path
514+ d="M 33.9,7.3 31.4,9 c 0.6,0.9 0.9,1.9 0.9,3 l 0,2 3,0 0,-2 c 0,-1.7 -0.5,-3.3 -1.4,-4.7 z"
515+ id="path50"
516+ inkscape:connector-curvature="0"
517+ style="fill:#ffffff" /><path
518+ d="m 25.5,3.7 0.5,3 c 1.5,-0.3 3.2,0.2 4.4,1.2 L 32.3,5.6 C 30.4,3.9 27.9,3.2 25.5,3.7 Z"
519+ id="path52"
520+ inkscape:connector-curvature="0"
521+ style="fill:#ffffff" /><path
522+ d="m 16.3,32.2 1.8,2.4 c 2,-1.5 3.2,-3.8 3.3,-6.2 l -3,-0.2 c 0,1.6 -0.8,3.1 -2.1,4 z"
523+ id="path54"
524+ inkscape:connector-curvature="0"
525+ style="fill:#ffffff" /><polygon
526+ points="21.5,26.7 20,25.2 18.5,26.6 18.5,27.3 21.5,27.3 "
527+ id="polygon56"
528+ style="fill:#ffffff" /></g></svg>
529\ No newline at end of file
530
531=== added file 'nav/img/mode/steps.svg'
532--- nav/img/mode/steps.svg 1970-01-01 00:00:00 +0000
533+++ nav/img/mode/steps.svg 2017-02-19 22:22:23 +0000
534@@ -0,0 +1,54 @@
535+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
536+<svg
537+ xmlns:dc="http://purl.org/dc/elements/1.1/"
538+ xmlns:cc="http://creativecommons.org/ns#"
539+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
540+ xmlns:svg="http://www.w3.org/2000/svg"
541+ xmlns="http://www.w3.org/2000/svg"
542+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
543+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
544+ version="1.2"
545+ x="0px"
546+ y="0px"
547+ viewBox="0 0 100 100"
548+ xml:space="preserve"
549+ id="svg2"
550+ inkscape:version="0.91 r13725"
551+ sodipodi:docname="noun_605854_cc.svg"
552+ width="100"
553+ height="100"><metadata
554+ id="metadata18"><rdf:RDF><cc:Work
555+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
556+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
557+ id="defs16" /><sodipodi:namedview
558+ pagecolor="#ffffff"
559+ bordercolor="#666666"
560+ borderopacity="1"
561+ objecttolerance="10"
562+ gridtolerance="10"
563+ guidetolerance="10"
564+ inkscape:pageopacity="0"
565+ inkscape:pageshadow="2"
566+ inkscape:window-width="1440"
567+ inkscape:window-height="824"
568+ id="namedview14"
569+ showgrid="false"
570+ inkscape:zoom="1.888"
571+ inkscape:cx="66.155484"
572+ inkscape:cy="62.5"
573+ inkscape:window-x="0"
574+ inkscape:window-y="24"
575+ inkscape:window-maximized="1"
576+ inkscape:current-layer="svg2" /><path
577+ d="m 83.18319,-0.402542 c -9.145505,0 -16.585971,7.440467 -16.585971,16.58597 0,7.87502 5.156025,14.894203 9.415303,19.3503 l -37.058588,0 c -1.117895,0 -2.126322,0.673391 -2.554239,1.706143 -0.427918,1.032754 -0.191292,2.221415 0.599306,3.012013 L 90.369338,93.62222 29.843813,93.96721 c 6.060514,-5.86149 14.638779,-16.23767 14.638779,-28.025868 0,-12.194007 -9.920623,-22.114627 -22.114629,-22.114627 -12.194006,0 -22.11462805,9.92062 -22.11462805,22.114627 0,17.836558 19.64442305,32.448798 20.47925205,33.062478 0.464407,0.34168 1.07477,0.53517 1.650856,0.53517 l 74.637975,-0.4257 c 1.114577,-0.007 2.11637,-0.68224 2.540973,-1.71389 0.423496,-1.03164 0.185765,-2.21699 -0.602625,-3.00537 l -53.332743,-53.331645 37.556167,0 c 0.576086,0 1.180921,-0.200137 1.644223,-0.541808 0.610363,-0.452244 14.941752,-11.208799 14.941752,-24.337149 0,-9.145503 -7.440471,-16.58597 -16.585975,-16.58597 z M 22.365752,93.24074 C 17.888645,89.51111 5.7819919,78.28352 5.7819919,65.941342 c 0,-9.145504 7.4404661,-16.585971 16.5859711,-16.585971 9.145504,0 16.585971,7.440467 16.585971,16.585971 0,12.310108 -12.113288,23.563138 -16.588182,27.299398 z M 83.179872,34.728756 C 79.74326,31.755445 72.125876,24.256374 72.125876,16.183428 c 0,-6.097002 4.960311,-11.057313 11.057314,-11.057313 6.097004,0 11.057314,4.960311 11.057314,11.057313 0,8.045302 -7.625124,15.566487 -11.060632,18.545328 z"
578+ id="path4"
579+ inkscape:connector-curvature="0"
580+ style="fill:#ffffff" /><path
581+ d="m 22.367963,55.309735 c -6.097003,0 -11.057314,4.96031 -11.057314,11.057313 0,6.097004 4.960311,11.057312 11.057314,11.057312 6.097004,0 11.057314,-4.960308 11.057314,-11.057312 0,-6.097003 -4.96031,-11.057313 -11.057314,-11.057313 z m 0,16.58597 c -3.048502,0 -5.528658,-2.480155 -5.528658,-5.528657 0,-3.048501 2.480156,-5.528656 5.528658,-5.528656 3.048501,0 5.528657,2.480155 5.528657,5.528656 0,3.048502 -2.480156,5.528657 -5.528657,5.528657 z"
582+ id="path6"
583+ inkscape:connector-curvature="0"
584+ style="fill:#ffffff" /><path
585+ d="m 83.18319,10.654772 c -3.048502,0 -5.528658,2.480155 -5.528658,5.528656 0,3.048503 2.480156,5.528658 5.528658,5.528658 3.048501,0 5.528657,-2.480155 5.528657,-5.528658 0,-3.048501 -2.480156,-5.528656 -5.528657,-5.528656 z"
586+ id="path8"
587+ inkscape:connector-curvature="0"
588+ style="fill:#ffffff" /></svg>
589\ No newline at end of file
590
591=== removed file 'nav/img/states/not_found.png'
592Binary files nav/img/states/not_found.png 2016-12-06 15:18:02 +0000 and nav/img/states/not_found.png 1970-01-01 00:00:00 +0000 differ
593=== added file 'nav/img/states/not_found.svg'
594--- nav/img/states/not_found.svg 1970-01-01 00:00:00 +0000
595+++ nav/img/states/not_found.svg 2017-02-19 22:22:23 +0000
596@@ -0,0 +1,223 @@
597+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
598+<svg
599+ xmlns:dc="http://purl.org/dc/elements/1.1/"
600+ xmlns:cc="http://creativecommons.org/ns#"
601+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
602+ xmlns:svg="http://www.w3.org/2000/svg"
603+ xmlns="http://www.w3.org/2000/svg"
604+ xmlns:xlink="http://www.w3.org/1999/xlink"
605+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
606+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
607+ viewBox="0 0 100 100"
608+ version="1.1"
609+ x="0px"
610+ y="0px"
611+ id="svg2"
612+ inkscape:version="0.91 r13725"
613+ sodipodi:docname="not_found.svg"
614+ width="100"
615+ height="100">
616+ <metadata
617+ id="metadata68">
618+ <rdf:RDF>
619+ <cc:Work
620+ rdf:about="">
621+ <dc:format>image/svg+xml</dc:format>
622+ <dc:type
623+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
624+ <dc:title>Artboard 11 Copy 7</dc:title>
625+ </cc:Work>
626+ </rdf:RDF>
627+ </metadata>
628+ <defs
629+ id="defs66" />
630+ <sodipodi:namedview
631+ pagecolor="#ffffff"
632+ bordercolor="#666666"
633+ borderopacity="1"
634+ objecttolerance="10"
635+ gridtolerance="10"
636+ guidetolerance="10"
637+ inkscape:pageopacity="0"
638+ inkscape:pageshadow="2"
639+ inkscape:window-width="1280"
640+ inkscape:window-height="644"
641+ id="namedview64"
642+ showgrid="false"
643+ inkscape:zoom="2.6700352"
644+ inkscape:cx="108.3187"
645+ inkscape:cy="50.467485"
646+ inkscape:window-x="0"
647+ inkscape:window-y="24"
648+ inkscape:window-maximized="1"
649+ inkscape:current-layer="svg2" />
650+ <title
651+ id="title4">Artboard 11 Copy 7</title>
652+ <desc
653+ id="desc6">Created with Sketch.</desc>
654+ <g
655+ id="g8"
656+ transform="matrix(1.2569753,0,0,1.2569753,-12.487126,-22.962943)"
657+ style="fill:none;fill-rule:evenodd;stroke:none;stroke-width:1">
658+ <g
659+ id="g10"
660+ style="fill:#000000">
661+ <path
662+ d="m 59,33 c 0,-1.104 -0.896,-2 -2,-2 l -2,0 c -1.104,0 -2,0.896 -2,2 0,1.104 0.896,2 2,2 l 2,0 c 1.104,0 2,-0.896 2,-2"
663+ id="path12"
664+ inkscape:connector-curvature="0" />
665+ <path
666+ d="m 70,33 c 0,-1.104 -0.896,-2 -2,-2 l -2,0 c -1.104,0 -2,0.896 -2,2 0,1.104 0.896,2 2,2 l 2,0 c 1.104,0 2,-0.896 2,-2"
667+ id="path14"
668+ inkscape:connector-curvature="0" />
669+ <path
670+ d="m 50,58 -2,0 c -1.104,0 -2,0.896 -2,2 0,1.104 0.896,2 2,2 l 2,0 c 1.104,0 2,-0.896 2,-2 0,-1.104 -0.896,-2 -2,-2"
671+ id="path16"
672+ inkscape:connector-curvature="0" />
673+ <path
674+ d="m 61,58 -2,0 c -1.104,0 -2,0.896 -2,2 0,1.104 0.896,2 2,2 l 2,0 c 1.104,0 2,-0.896 2,-2 0,-1.104 -0.896,-2 -2,-2"
675+ id="path24"
676+ inkscape:connector-curvature="0" />
677+ <path
678+ d="m 80.711019,56.307407 c -0.468,0.293 -0.964,0.55 -1.476,0.762 -1.021,0.423 -1.505,1.592 -1.082,2.613 0.319,0.771 1.064,1.235 1.849,1.235 0.254,0 0.514,-0.049 0.764,-0.153 0.718,-0.298 1.415,-0.657 2.072,-1.07 0.936,-0.587 1.218,-1.822 0.63,-2.757 -0.587,-0.936 -1.82,-1.219 -2.757,-0.63"
679+ id="path26"
680+ inkscape:connector-curvature="0" />
681+ <path
682+ d="m 80.907913,33.822331 c 0.272,-1.07 -0.375,-2.159 -1.446,-2.431 -0.75,-0.191 -1.524,-0.32 -2.298,-0.384 -1.097,-0.094 -2.067,0.727 -2.157,1.829 -0.091,1.1 0.727,2.067 1.828,2.157 0.553,0.046 1.106,0.139 1.642,0.275 0.165,0.042 0.331,0.062 0.494,0.062 0.893,0 1.707,-0.603 1.937,-1.508"
683+ id="path28"
684+ inkscape:connector-curvature="0" />
685+ <path
686+ d="m 87.541704,47.009492 c -1.098,-0.107 -2.076,0.703 -2.179,1.803 -0.052,0.553 -0.151,1.103 -0.294,1.635 -0.286,1.067 0.347,2.164 1.414,2.45 0.173,0.047 0.348,0.069 0.519,0.069 0.883,0 1.691,-0.59 1.931,-1.482 0.2,-0.748 0.339,-1.52 0.412,-2.296 0.104,-1.099 -0.703,-2.075 -1.803,-2.179"
687+ id="path30"
688+ inkscape:connector-curvature="0" />
689+ <path
690+ d="m 87.72367,41.602421 c 1.015,-0.434999 1.486,-1.61 1.051,-2.626 -0.306,-0.713 -0.673,-1.405 -1.092,-2.058 -0.597,-0.928 -1.833,-1.198 -2.764,-0.600999 -0.929,0.597999 -1.198,1.835 -0.601,2.763999 0.299,0.466 0.562,0.96 0.78,1.47 0.325,0.759 1.063,1.213 1.839,1.213 0.263,0 0.53,-0.052 0.787,-0.162"
691+ id="path32"
692+ inkscape:connector-curvature="0" />
693+ <path
694+ d="m 72,58 -2,0 c -1.104,0 -2,0.896 -2,2 0,1.104 0.896,2 2,2 l 2,0 c 1.104,0 2,-0.896 2,-2 0,-1.104 -0.896,-2 -2,-2"
695+ id="path34"
696+ inkscape:connector-curvature="0" />
697+ <path
698+ d="m 26,85 -2,0 c -1.104,0 -2,0.896 -2,2 0,1.104 0.896,2 2,2 l 2,0 c 1.104,0 2,-0.896 2,-2 0,-1.104 -0.896,-2 -2,-2"
699+ id="path36"
700+ inkscape:connector-curvature="0" />
701+ <path
702+ d="m 15.221854,60.429556 c -0.609,0.479 -1.181999,1.015 -1.702999,1.588 -0.742,0.818 -0.681,2.083 0.137,2.825 0.382,0.348 0.863,0.52 1.343,0.52 0.544,0 1.086999,-0.221 1.481999,-0.656 0.372,-0.411 0.782,-0.793 1.218,-1.136 0.867,-0.684 1.016001,-1.942 0.332,-2.809 -0.684,-0.867 -1.942,-1.016 -2.809,-0.332"
703+ id="path38"
704+ inkscape:connector-curvature="0" />
705+ <path
706+ d="m 14,74 0,-2 c 0,-1.104 -0.896,-2 -2,-2 -1.104,0 -2,0.896 -2,2 l 0,2 c 0,1.104 0.896,2 2,2 1.104,0 2,-0.896 2,-2"
707+ id="path40"
708+ inkscape:connector-curvature="0" />
709+ <path
710+ d="m 16.555974,80.74274 c -0.693,-0.859 -1.952,-0.992 -2.813,-0.299 -0.859,0.695 -0.993,1.953 -0.298,2.813 0.486,0.601 1.026,1.168 1.605,1.682 0.381,0.339 0.856,0.506 1.329,0.506 0.551,0 1.099,-0.226 1.495,-0.671 0.734,-0.825 0.66,-2.09 -0.166,-2.823 -0.416,-0.37 -0.803,-0.776 -1.152,-1.208"
711+ id="path42"
712+ inkscape:connector-curvature="0" />
713+ <path
714+ d="m 59,85 -2,0 c -1.104,0 -2,0.896 -2,2 0,1.104 0.896,2 2,2 l 2,0 c 1.104,0 2,-0.896 2,-2 0,-1.104 -0.896,-2 -2,-2"
715+ id="path46"
716+ inkscape:connector-curvature="0" />
717+ <path
718+ d="m 70,85 -2,0 c -1.104,0 -2,0.896 -2,2 0,1.104 0.896,2 2,2 l 2,0 c 1.104,0 2,-0.896 2,-2 0,-1.104 -0.896,-2 -2,-2"
719+ id="path48"
720+ inkscape:connector-curvature="0" />
721+ <path
722+ d="m 37,85 -2,0 c -1.104,0 -2,0.896 -2,2 0,1.104 0.896,2 2,2 l 2,0 c 1.104,0 2,-0.896 2,-2 0,-1.104 -0.896,-2 -2,-2"
723+ id="path50"
724+ inkscape:connector-curvature="0" />
725+ <path
726+ d="m 27,58 -2,0 c -1.104,0 -2,0.896 -2,2 0,1.104 0.896,2 2,2 l 2,0 c 1.104,0 2,-0.896 2,-2 0,-1.104 -0.896,-2 -2,-2"
727+ id="path52"
728+ inkscape:connector-curvature="0" />
729+ <path
730+ d="M 38.003,58 36,58 c -1.104,0 -2,0.896 -2,2 0,1.104 0.896,2 2,2 l 2.003,0 c 1.104,0 2,-0.896 2,-2 0,-1.104 -0.896,-2 -2,-2"
731+ id="path54"
732+ inkscape:connector-curvature="0" />
733+ <g
734+ id="g3410"
735+ transform="matrix(0.18603326,0,0,0.18603326,37.13668,22.322767)">
736+ <path
737+ sodipodi:end="5.5316092"
738+ sodipodi:start="0.84415396"
739+ d="m 77.532686,81.965718 a 34.997948,34.997948 0 0 1 -49.215014,-2.689822 34.997948,34.997948 0 0 1 2.280696,-49.23567 34.997948,34.997948 0 0 1 49.252924,1.871412 L 54.281315,55.807926 Z"
740+ sodipodi:ry="34.997948"
741+ sodipodi:rx="34.997948"
742+ sodipodi:cy="55.807926"
743+ sodipodi:cx="54.281315"
744+ id="path1425"
745+ style="opacity:1;fill:#ffff00;fill-opacity:1;stroke:#000000;stroke-width:1.48216593;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
746+ sodipodi:type="arc" />
747+ <path
748+ sodipodi:end="6.2614256"
749+ sodipodi:start="0"
750+ transform="scale(1,-1)"
751+ d="m 58.132071,-41.435452 a 3.1974745,3.1721492 0 0 1 -3.18008,3.172103 3.1974745,3.1721492 0 0 1 -3.214679,-3.137591 3.1974745,3.1721492 0 0 1 3.145105,-3.206238 3.1974745,3.1721492 0 0 1 3.248898,3.102707 l -3.196718,0.06902 z"
752+ sodipodi:ry="3.1721492"
753+ sodipodi:rx="3.1974745"
754+ sodipodi:cy="-41.435452"
755+ sodipodi:cx="54.934597"
756+ id="path2314"
757+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.97986925;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
758+ sodipodi:type="arc" />
759+ </g>
760+ <ellipse
761+ style="fill:#ff6600;fill-rule:evenodd;stroke:#000000;stroke-width:0.25394315px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
762+ id="path3425"
763+ cx="78.25042"
764+ cy="86.75573"
765+ rx="1.5131676"
766+ ry="1.4795417" />
767+ <image
768+ y="75.993706"
769+ x="74.881973"
770+ id="image3422"
771+ xlink:href="data:image/png;base64,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
803+h9Jes4kAAAAASUVORK5CYII=
804+"
805+ preserveAspectRatio="none"
806+ height="11.111693"
807+ width="6.944808" />
808+ </g>
809+ </g>
810+ <image
811+ y="39.230629"
812+ x="-94.559242"
813+ id="image3378"
814+ xlink:href="data:image/png;base64,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 "
815+ preserveAspectRatio="none"
816+ height="16.860262"
817+ width="16.860262"
818+ transform="matrix(0,-1,1,0,0,0)" />
819+</svg>
820
821=== modified file 'nav/index.html'
822--- nav/index.html 2017-01-22 08:34:32 +0000
823+++ nav/index.html 2017-02-19 22:22:23 +0000
824@@ -47,12 +47,18 @@
825 <table class="tg" id="panel_review_btns">
826 <tr>
827 <th class="tg-yw4l">
828+ <button data-role='button' id='btn1_set_car' class='btns1_mode_route negative' onClick='javascript:set_nav_mode(0)'><img class="img1_btn_route" src="img/mode/car.svg"></button>
829+ <button data-role='button' id='btn1_set_walk' class='btns1_mode_route negative' onClick='javascript:set_nav_mode(1)'><img class="img1_btn_route" src="img/mode/walk.svg"></button>
830+ <button data-role='button' id='btn1_set_bike' class='btns1_mode_route negative' onClick='javascript:set_nav_mode(2)'><img class="img1_btn_route" src="img/mode/bike.svg"></button>
831+ <button data-role='button' id='btn1_set_public' class='btns1_mode_route negative' onClick='javascript:set_nav_mode(3)'><img class="img1_btn_route" src="img/mode/public.svg"></button>
832+ </th>
833+ </tr>
834+
835+ <tr>
836+ <th class="tg-yw4l">
837 <button data-role='button' id='btn_start' class='btns_route positive' onClick='javascript:agree_review()' data-localize="Start">Start</button>
838- </th>
839- </tr>
840- <tr>
841- <th class="tg-yw4l">
842 <button data-role='button' id='btn_cancel' class='btns_route negative' onClick='javascript:click_cancel_route()' data-localize="Cancel">Cancel</button>
843+ <button style="display:none;" data-role='button' id='btn_notfound' class='btns_route negative' data-localize="Not found">Not found</button>
844 </th>
845 </tr>
846 </table>
847@@ -360,16 +366,18 @@
848 case 'simulate_error':
849 case '2review':
850 case 'calculating':
851+ case 'calculating_error':
852 case 'calculating_from_out':
853 break;
854 case 'drawing':
855 var route_indication = nav.get_route_indication();
856- if (ui.get_confirm_route() && confirm_route) {
857+ if (confirm_route) {
858 if (route_indication['distance_total'] > 1000000)
859 $('#popup_longroute').show();
860 ui.set_center_onpos(false);
861 ui.set_center_1st_pos(false);
862 ui.set_zoom_unav(false);
863+ ui.btns_confirm_route(true);
864 ui.route(true);
865 nav.set_route_status('2review');
866 qml_set_center_onpos(1);
867@@ -382,13 +390,14 @@
868 break;
869 case 'waiting4signal':
870 confirm_route = true;
871+ ui.set_confirm_btn_color(settings.get_routing_mode());
872 nav.set_route_status('calc');
873 // Not use here break for calc route now
874 case 'calc':
875 case 'calc_from_out':
876 case 'errorAPI':
877 var gps_data = nav.get_pos_data();
878- webapi.set_route(gps_data['now_lat'], gps_data['now_lng'], gps_data['end_lat'], gps_data['end_lng']);
879+ webapi.set_route(gps_data['now_lat'], gps_data['now_lng'], gps_data['end_lat'], gps_data['end_lng'], confirm_route);
880 break;
881 case 'out':
882 confirm_route = false;
883@@ -519,10 +528,10 @@
884 window.location = 'http://set_ui_speed?' + settings.get_ui_speed().toString();
885 }
886
887- function qml_save_pos() {
888+ function qml_save_data() { // Position & Last route mode
889 if (ol.proj.transform(map.getView().getCenter(), 'EPSG:3857', 'EPSG:4326')[1].toFixed(6) == 50.009167 && ol.proj.transform(map.getView().getCenter(), 'EPSG:3857', 'EPSG:4326')[0].toFixed(6) == 4.666389)
890- return;
891- window.location = 'http://save_pos?' + ol.proj.transform(map.getView().getCenter(), 'EPSG:3857', 'EPSG:4326')[1] + '/' + ol.proj.transform(map.getView().getCenter(), 'EPSG:3857', 'EPSG:4326')[0] + '/' + this.map.getView().getZoom();
892+ return;
893+ window.location = 'http://save_data?' + ol.proj.transform(map.getView().getCenter(), 'EPSG:3857', 'EPSG:4326')[1] + '/' + ol.proj.transform(map.getView().getCenter(), 'EPSG:3857', 'EPSG:4326')[0] + '/' + map.getView().getZoom() + '/' + settings.get_routing_mode();
894 }
895
896 function qml_show_notification(mode, message) {
897@@ -561,6 +570,23 @@
898 qml_set_center_onpos(2);
899 }
900
901+ function set_nav_mode(mode) {
902+ if (mode == settings.get_routing_mode())
903+ return;
904+
905+ settings.set_routing_mode(mode);
906+ nav.set_route_status('waiting4signal');
907+ gps_loop('waiting4signal');
908+ }
909+
910+ function set_simulate_mode(mode) {
911+ if (mode == settings.get_routing_mode())
912+ return;
913+
914+ settings.set_routing_mode(mode);
915+ window.location = 'http://simulate_again?';
916+ }
917+
918 function load_custom_voices(play) {
919 $.ajax({
920 url:"/home/phablet/.local/share/navigator.costales/4.ogg",
921
922=== modified file 'po/unav.pot'
923--- po/unav.pot 2017-01-18 17:17:26 +0000
924+++ po/unav.pot 2017-02-19 22:22:23 +0000
925@@ -8,7 +8,7 @@
926 msgstr ""
927 "Project-Id-Version: unav\n"
928 "Report-Msgid-Bugs-To: \n"
929-"POT-Creation-Date: 2017-01-18 14:27+0100\n"
930+"POT-Creation-Date: 2017-02-19 23:22+0100\n"
931 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
932 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
933 "Language-Team: LANGUAGE <LL@li.org>\n"
934@@ -33,7 +33,7 @@
935 msgid "Go to your left"
936 msgstr ""
937
938-#: nav/class/Navigator.js:286 nav/class/UI.js:579
939+#: nav/class/Navigator.js:286 nav/class/UI.js:636
940 msgid "You have arrived at your destination"
941 msgstr ""
942
943@@ -209,88 +209,84 @@
944 msgid "Leave the Ferry"
945 msgstr ""
946
947-#: nav/class/UI.js:39 qml/Favorites.qml:227 qml/Main.qml:777
948+#: nav/class/UI.js:38 qml/Favorites.qml:227 qml/Main.qml:791
949 msgid "Current Position"
950 msgstr ""
951
952-#: nav/class/UI.js:48
953+#: nav/class/UI.js:47
954 msgid "Current Start"
955 msgstr ""
956
957-#: nav/class/UI.js:57
958+#: nav/class/UI.js:56
959 msgid "Current End"
960 msgstr ""
961
962-#: nav/class/UI.js:514
963+#: nav/class/UI.js:570
964 msgid "Waiting for a GPS signal…"
965 msgstr ""
966
967-#: nav/class/UI.js:521
968+#: nav/class/UI.js:577
969 msgid "Searching for a route…"
970 msgstr ""
971
972-#: nav/class/UI.js:525
973+#: nav/class/UI.js:581
974 msgid "Drawing route…"
975 msgstr ""
976
977-#: nav/class/UI.js:529
978+#: nav/class/UI.js:585
979 msgid "Trying search again soon…"
980 msgstr ""
981
982-#: nav/class/UI.js:533
983+#: nav/class/UI.js:589
984 msgid "Recalculating route…"
985 msgstr ""
986
987-#: nav/class/UI.js:554
988+#: nav/class/UI.js:611
989 msgid "Navigation will start soon"
990 msgstr ""
991
992-#: nav/class/UI.js:586
993+#: nav/class/UI.js:643
994 msgid "Simulating route…"
995 msgstr ""
996
997-#: nav/class/UI.js:590
998-msgid "Error simulating route. Try different points"
999-msgstr ""
1000-
1001-#: nav/class/UI.js:615
1002-msgid "Click onto the icon for reviewing the route"
1003-msgstr ""
1004-
1005 #: nav/index.html.strings:1
1006 msgid "Start"
1007 msgstr ""
1008
1009-#: nav/index.html.strings:2 qml/Favorites.qml:242 qml/SettingsPage.qml:463
1010+#: nav/index.html.strings:2 qml/Favorites.qml:242 qml/SettingsPage.qml:388
1011 msgid "Cancel"
1012 msgstr ""
1013
1014 #: nav/index.html.strings:3
1015+msgid "Not found"
1016+msgstr ""
1017+
1018+#: nav/index.html.strings:4
1019 msgid "Route so long"
1020 msgstr ""
1021
1022-#: nav/index.html.strings:4
1023+#: nav/index.html.strings:5
1024 msgid "More than 1000km could affect the performance"
1025 msgstr ""
1026
1027-#: nav/index.html.strings:5
1028+#: nav/index.html.strings:6
1029 msgid "We recommend you a waypoint in the middle as destination"
1030 msgstr ""
1031
1032-#: nav/index.html.strings:10 qml/Coordinate.qml:152 qml/Coordinate.qml:386
1033-#: qml/DownloadVoices.qml:246 qml/Main.qml:955
1034+#: nav/index.html.strings:11 qml/Coordinate.qml:152 qml/Coordinate.qml:386
1035+#: qml/DownloadVoices.qml:244 qml/Main.qml:973
1036 msgid "Close"
1037 msgstr ""
1038
1039-#: nav/index.html.strings:7
1040+#: nav/index.html.strings:8
1041 msgid "GPS Denied"
1042 msgstr ""
1043
1044-#: nav/index.html.strings:8
1045+#: nav/index.html.strings:9
1046 msgid "Error reading the GPS status"
1047 msgstr ""
1048
1049-#: nav/index.html.strings:9
1050+#: nav/index.html.strings:10
1051 msgid "Please review your device settings"
1052 msgstr ""
1053
1054@@ -405,47 +401,35 @@
1055 "Expected format is:"
1056 msgstr ""
1057
1058-#: qml/DownloadVoices.qml:51
1059+#: qml/DownloadVoices.qml:50
1060 msgid "Download voices"
1061 msgstr ""
1062
1063-#: qml/DownloadVoices.qml:59
1064+#: qml/DownloadVoices.qml:58
1065 msgid "Play current voice"
1066 msgstr ""
1067
1068-#: qml/DownloadVoices.qml:68 qml/DownloadVoices.qml:242
1069+#: qml/DownloadVoices.qml:67 qml/DownloadVoices.qml:240
1070 msgid "How to add a voice"
1071 msgstr ""
1072
1073-#: qml/DownloadVoices.qml:160
1074+#: qml/DownloadVoices.qml:158
1075 msgid "By "
1076 msgstr ""
1077
1078-#: qml/DownloadVoices.qml:169
1079-msgid "Male"
1080-msgstr ""
1081-
1082-#: qml/DownloadVoices.qml:169
1083-msgid "Female"
1084-msgstr ""
1085-
1086-#: qml/DownloadVoices.qml:169
1087-msgid ". Size: "
1088-msgstr ""
1089-
1090-#: qml/DownloadVoices.qml:205
1091+#: qml/DownloadVoices.qml:203
1092 msgid "Cancel Download"
1093 msgstr ""
1094
1095-#: qml/DownloadVoices.qml:220
1096+#: qml/DownloadVoices.qml:218
1097 msgid "About the voices"
1098 msgstr ""
1099
1100-#: qml/DownloadVoices.qml:226
1101+#: qml/DownloadVoices.qml:224
1102 msgid "The stars are for the recommended voices."
1103 msgstr ""
1104
1105-#: qml/DownloadVoices.qml:234
1106+#: qml/DownloadVoices.qml:232
1107 msgid "You can add a new voice to uNav following these steps:"
1108 msgstr ""
1109
1110@@ -523,68 +507,68 @@
1111 msgid "Search location"
1112 msgstr ""
1113
1114-#: qml/Main.qml:214 qml/SettingsPage.qml:35
1115+#: qml/Main.qml:217 qml/SettingsPage.qml:35
1116 msgid "Settings"
1117 msgstr ""
1118
1119-#: qml/Main.qml:225
1120+#: qml/Main.qml:228
1121 msgid "Center on Position"
1122 msgstr ""
1123
1124-#: qml/Main.qml:229 qml/Main.qml:534
1125+#: qml/Main.qml:232 qml/Main.qml:542
1126 msgid "Searching your position… This could take a while"
1127 msgstr ""
1128
1129-#: qml/Main.qml:243 qml/PoiPage.qml:83 qml/SearchPage.qml:69
1130+#: qml/Main.qml:246 qml/PoiPage.qml:83 qml/SearchPage.qml:69
1131 msgid "Search"
1132 msgstr ""
1133
1134-#: qml/Main.qml:254
1135+#: qml/Main.qml:257
1136 msgid "Destination"
1137 msgstr ""
1138
1139-#: qml/Main.qml:410
1140+#: qml/Main.qml:419
1141 msgid "Error getting speed cameras!"
1142 msgstr ""
1143
1144-#: qml/Main.qml:413
1145+#: qml/Main.qml:422
1146 msgid "Error finding route! Retrying again in 1 minute…"
1147 msgstr ""
1148
1149-#: qml/Main.qml:416
1150+#: qml/Main.qml:425
1151 msgid "Error finding route! Trying again…"
1152 msgstr ""
1153
1154-#: qml/Main.qml:462 qml/Main.qml:488
1155+#: qml/Main.qml:470 qml/Main.qml:496
1156 msgid "Shared Position"
1157 msgstr ""
1158
1159-#: qml/Main.qml:719
1160+#: qml/Main.qml:733
1161 msgid "Near to destination"
1162 msgstr ""
1163
1164-#: qml/Main.qml:720
1165+#: qml/Main.qml:734
1166 msgid "Cancel route"
1167 msgstr ""
1168
1169-#: qml/Main.qml:766
1170+#: qml/Main.qml:780
1171 #, qt-format
1172 msgid "Coord: %1, %2"
1173 msgstr ""
1174
1175-#: qml/Main.qml:834 qml/PoiDetailsPage.qml:225
1176+#: qml/Main.qml:848 qml/PoiDetailsPage.qml:243
1177 msgid "Simulate from here! Now click on destination"
1178 msgstr ""
1179
1180-#: qml/Main.qml:851
1181+#: qml/Main.qml:865
1182 msgid "Set a different coordinates for simulating"
1183 msgstr ""
1184
1185-#: qml/Main.qml:943
1186+#: qml/Main.qml:961
1187 msgid "Custom voices"
1188 msgstr ""
1189
1190-#: qml/Main.qml:944
1191+#: qml/Main.qml:962
1192 msgid ""
1193 "American English voice will be the unique voice installed by default.\n"
1194 "\n"
1195@@ -595,39 +579,39 @@
1196 "the future.\n"
1197 msgstr ""
1198
1199-#: qml/Main.qml:946
1200+#: qml/Main.qml:964
1201 msgid "Set a voice now"
1202 msgstr ""
1203
1204-#: qml/PoiDetailsPage.qml:79
1205+#: qml/PoiDetailsPage.qml:89
1206 msgid "Lat, Long:"
1207 msgstr ""
1208
1209-#: qml/PoiDetailsPage.qml:85 qml/PoiDetailsPage.qml:100
1210+#: qml/PoiDetailsPage.qml:95 qml/PoiDetailsPage.qml:110
1211 msgid "Available"
1212 msgstr ""
1213
1214-#: qml/PoiDetailsPage.qml:87 qml/PoiDetailsPage.qml:102
1215+#: qml/PoiDetailsPage.qml:97 qml/PoiDetailsPage.qml:112
1216 msgid "Not Available"
1217 msgstr ""
1218
1219-#: qml/PoiDetailsPage.qml:89
1220+#: qml/PoiDetailsPage.qml:99
1221 msgid "Wi-Fi Hotspot Available"
1222 msgstr ""
1223
1224-#: qml/PoiDetailsPage.qml:91
1225+#: qml/PoiDetailsPage.qml:101
1226 msgid "Wired Connection Available (ethernet connection)"
1227 msgstr ""
1228
1229-#: qml/PoiDetailsPage.qml:93
1230+#: qml/PoiDetailsPage.qml:103
1231 msgid "Computer Terminal Available"
1232 msgstr ""
1233
1234-#: qml/PoiDetailsPage.qml:105
1235+#: qml/PoiDetailsPage.qml:115
1236 msgid "Limited Availability"
1237 msgstr ""
1238
1239-#: qml/PoiDetailsPage.qml:156
1240+#: qml/PoiDetailsPage.qml:174
1241 msgid "Loading POI details..."
1242 msgstr ""
1243
1244@@ -652,12 +636,12 @@
1245
1246 #. TRANSLATORS: Abbreviation for Public Holiday. This string is used while showing the opening hours
1247 #. of a place which might be closed during public holidays.
1248-#: qml/PoiListPage.qml:324
1249+#: qml/PoiListPage.qml:361
1250 msgid "PH"
1251 msgstr ""
1252
1253 #. TRANSLATORS: This string indicates that a place is closed.
1254-#: qml/PoiListPage.qml:326
1255+#: qml/PoiListPage.qml:363
1256 msgid "Closed"
1257 msgstr ""
1258
1259@@ -691,7 +675,7 @@
1260 msgid "Max. %1 POIs can be selected."
1261 msgstr ""
1262
1263-#: qml/PoiQuickAccessPage.qml:206 qml/SettingsPage.qml:484
1264+#: qml/PoiQuickAccessPage.qml:206 qml/SettingsPage.qml:409
1265 msgid "OK"
1266 msgstr ""
1267
1268@@ -726,130 +710,106 @@
1269 msgstr ""
1270
1271 #: qml/SettingsPage.qml:56
1272-msgid "Car"
1273+msgid "A voice"
1274 msgstr ""
1275
1276 #: qml/SettingsPage.qml:57
1277-msgid "Walking"
1278+msgid "A notification"
1279 msgstr ""
1280
1281 #: qml/SettingsPage.qml:58
1282-msgid "Bicycle"
1283-msgstr ""
1284-
1285-#: qml/SettingsPage.qml:59
1286-msgid "Public Transport"
1287-msgstr ""
1288-
1289-#: qml/SettingsPage.qml:69
1290-msgid "A voice"
1291-msgstr ""
1292-
1293-#: qml/SettingsPage.qml:70
1294-msgid "A notification"
1295-msgstr ""
1296-
1297-#: qml/SettingsPage.qml:71
1298 msgid "None"
1299 msgstr ""
1300
1301-#: qml/SettingsPage.qml:81
1302+#: qml/SettingsPage.qml:68
1303 msgid "Kilometres"
1304 msgstr ""
1305
1306-#: qml/SettingsPage.qml:82
1307+#: qml/SettingsPage.qml:69
1308 msgid "Miles"
1309 msgstr ""
1310
1311-#: qml/SettingsPage.qml:108
1312+#: qml/SettingsPage.qml:95
1313 msgid "Online"
1314 msgstr ""
1315
1316-#: qml/SettingsPage.qml:109
1317+#: qml/SettingsPage.qml:96
1318 msgid "Offline"
1319 msgstr ""
1320
1321-#: qml/SettingsPage.qml:131
1322+#: qml/SettingsPage.qml:118
1323 msgid "Navigation"
1324 msgstr ""
1325
1326-#: qml/SettingsPage.qml:139
1327-msgid "Navigation mode"
1328-msgstr ""
1329-
1330-#: qml/SettingsPage.qml:169
1331-msgid "Powered by a community-edited data service"
1332-msgstr ""
1333-
1334-#: qml/SettingsPage.qml:186
1335+#: qml/SettingsPage.qml:125
1336 msgid "Guidance"
1337 msgstr ""
1338
1339-#: qml/SettingsPage.qml:218
1340+#: qml/SettingsPage.qml:157
1341 msgid "Download custom voices"
1342 msgstr ""
1343
1344-#: qml/SettingsPage.qml:227
1345-msgid "Confirm new routes"
1346+#: qml/SettingsPage.qml:164
1347+msgid "Car Options"
1348 msgstr ""
1349
1350-#: qml/SettingsPage.qml:245
1351+#: qml/SettingsPage.qml:171
1352 msgid "Avoid tolls"
1353 msgstr ""
1354
1355-#: qml/SettingsPage.qml:263
1356+#: qml/SettingsPage.qml:188
1357 msgid "Speed camera alerts"
1358 msgstr ""
1359
1360-#: qml/SettingsPage.qml:282
1361+#: qml/SettingsPage.qml:207
1362 msgid "Map"
1363 msgstr ""
1364
1365-#: qml/SettingsPage.qml:289
1366+#: qml/SettingsPage.qml:214
1367 msgid "Mode"
1368 msgstr ""
1369
1370-#: qml/SettingsPage.qml:324
1371+#: qml/SettingsPage.qml:249
1372 msgid "How to use offline maps"
1373 msgstr ""
1374
1375-#: qml/SettingsPage.qml:341
1376+#: qml/SettingsPage.qml:266
1377 msgid "Online style"
1378 msgstr ""
1379
1380-#: qml/SettingsPage.qml:375
1381+#: qml/SettingsPage.qml:300
1382 msgid "Units"
1383 msgstr ""
1384
1385-#: qml/SettingsPage.qml:409
1386+#: qml/SettingsPage.qml:334
1387 msgid "Show header in map view"
1388 msgstr ""
1389
1390-#: qml/SettingsPage.qml:421
1391+#: qml/SettingsPage.qml:346
1392 msgid "History"
1393 msgstr ""
1394
1395-#: qml/SettingsPage.qml:428
1396+#: qml/SettingsPage.qml:353
1397 msgid "Store new searches"
1398 msgstr ""
1399
1400-#: qml/SettingsPage.qml:440 qml/SettingsPage.qml:450
1401+#: qml/SettingsPage.qml:365 qml/SettingsPage.qml:375
1402 msgid "Clear history"
1403 msgstr ""
1404
1405-#: qml/SettingsPage.qml:451
1406+#: qml/SettingsPage.qml:376
1407 msgid "You'll delete the current history"
1408 msgstr ""
1409
1410-#: qml/SettingsPage.qml:454
1411+#: qml/SettingsPage.qml:379
1412 msgid "Delete"
1413 msgstr ""
1414
1415-#: qml/SettingsPage.qml:473
1416+#: qml/SettingsPage.qml:398
1417 msgid "Speed Camera alerts and the law"
1418 msgstr ""
1419
1420-#: qml/SettingsPage.qml:474
1421+#: qml/SettingsPage.qml:399
1422 msgid ""
1423 "uNav is only reading the OpenStreetMap database.\n"
1424 "uNav will show a max speed notification and a Speed Camera marker (marker "
1425@@ -859,7 +819,7 @@
1426 "only if it's legal in the country."
1427 msgstr ""
1428
1429-#: qml/SettingsPage.qml:480
1430+#: qml/SettingsPage.qml:405
1431 msgid "Read more about it"
1432 msgstr ""
1433
1434
1435=== modified file 'qml/Location.qml'
1436--- qml/Location.qml 2016-12-11 11:01:13 +0000
1437+++ qml/Location.qml 2017-02-19 22:22:23 +0000
1438@@ -198,8 +198,8 @@
1439 anchors.horizontalCenter: notFound.horizontalCenter
1440 Icon {
1441 visible: statusLabel.text !== i18n.tr("Searching…")
1442- height: units.gu(12)
1443- source: Qt.resolvedUrl("../nav/img/states/not_found.png")
1444+ height: units.gu(15)
1445+ source: Qt.resolvedUrl("../nav/img/states/not_found.svg")
1446 }
1447 }
1448 Row {
1449
1450=== modified file 'qml/Main.qml'
1451--- qml/Main.qml 2017-01-31 20:23:10 +0000
1452+++ qml/Main.qml 2017-02-19 22:22:23 +0000
1453@@ -71,10 +71,9 @@
1454 property int layer: 0
1455 property int onlineLayer: 0
1456 property int unit: 0
1457- property int routingMode: 0 // 0 car, 1 walk, 2 bicycle, 3 public transport
1458+ property int routingMode: 0 // 0 car, 1 walk, 2 bicycle, 3 multimodal
1459 property bool avoidTolls: false
1460 property bool alertRadars: false
1461- property bool confirmRoute: true
1462 property bool legalRadarShow: true
1463 property string prevLat: ''
1464 property string prevLng: ''
1465@@ -170,6 +169,10 @@
1466 property string clickedLng: "null"
1467 property string ptFromLat: "null"
1468 property string ptFromLng: "null"
1469+ property string resimulatePTFromLat: "null"
1470+ property string resimulatePTFromLng: "null"
1471+ property string resimulatePTToLat: "null"
1472+ property string resimulatePTToLng: "null"
1473 property string routeState: "no"
1474 property int center_onpos: 0 // 0 GPS off, 1 GPS on + not center, 2 GPS on + center
1475 property bool favPopup: false
1476@@ -356,7 +359,12 @@
1477 reverseXmlModel.reverseSearch(mainPageStack.clickedLat, mainPageStack.clickedLng);
1478 }
1479 break;
1480-
1481+
1482+ case "http://simulate_again/":
1483+ mainPageStack.routeState = 'simulate_calculating';
1484+ mainPageStack.executeJavaScript("simulate2coord(" + mainPageStack.resimulatePTFromLat + ", " + mainPageStack.resimulatePTFromLng + ", " + mainPageStack.resimulatePTToLat + ", " + mainPageStack.resimulatePTToLng + ");");
1485+ break;
1486+
1487 case "http://hide_popup/":
1488 goThereActionPopover.hide();
1489 break;
1490@@ -387,10 +395,11 @@
1491 mainPageStack.routeState = 'no';
1492 break;
1493
1494- case "http://save_pos/":
1495+ case "http://save_data/":
1496 navApp.settings.prevLat = params[0];
1497 navApp.settings.prevLng = params[1];
1498 navApp.settings.prevZoom = params[2];
1499+ navApp.settings.routingMode = params[3];
1500 break;
1501
1502 case "http://show_notification/":
1503@@ -434,7 +443,6 @@
1504 mainPageStack.executeJavaScript("settings.set_unit(\'" + ( navApp.settings.unit === 0 ? "km" : "mi" ) +"\')");
1505 mainPageStack.executeJavaScript("ui.set_scale_unit(\'" + ( navApp.settings.unit === 0 ? "km" : "mi" ) +"\')");
1506 mainPageStack.executeJavaScript("settings.set_routing_mode(" + navApp.settings.routingMode + ")");
1507- mainPageStack.executeJavaScript("ui.set_confirm_route(" + navApp.settings.confirmRoute + ")");
1508 mainPageStack.executeJavaScript("settings.set_avoid_tolls(" + navApp.settings.avoidTolls + ")");
1509 mainPageStack.executeJavaScript("settings.set_alert_radars(" + navApp.settings.alertRadars + ")");
1510 mainPageStack.executeJavaScript("settings.set_ui_speed(" + navApp.settings.uiShowSpeed + ")");
1511@@ -861,6 +869,10 @@
1512 else {
1513 goThereActionPopover.hide();
1514 mainPageStack.routeState = 'simulate_calculating';
1515+ mainPageStack.resimulatePTFromLat = mainPageStack.ptFromLat;
1516+ mainPageStack.resimulatePTFromLng = mainPageStack.ptFromLng;
1517+ mainPageStack.resimulatePTToLat = mainPageStack.clickedLat;
1518+ mainPageStack.resimulatePTToLng = mainPageStack.clickedLng;
1519 mainPageStack.executeJavaScript("simulate2coord(" + mainPageStack.ptFromLat + ", " + mainPageStack.ptFromLng + ", " + mainPageStack.clickedLat + ", " + mainPageStack.clickedLng + ");");
1520 mainPageStack.ptFromLat = "null";
1521 }
1522@@ -938,7 +950,7 @@
1523 target: Qt.application
1524 onStateChanged:
1525 if(Qt.application.state !== Qt.ApplicationActive) {
1526- mainPageStack.executeJavaScript("qml_save_pos();");
1527+ mainPageStack.executeJavaScript("qml_save_data()");
1528 }
1529 }
1530
1531
1532=== modified file 'qml/SettingsPage.qml'
1533--- qml/SettingsPage.qml 2017-01-17 17:20:10 +0000
1534+++ qml/SettingsPage.qml 2017-02-19 22:22:23 +0000
1535@@ -50,19 +50,6 @@
1536 signal settingsChanged()
1537
1538 ListModel {
1539- id: navigationModeModel
1540- Component.onCompleted: initialize()
1541- function initialize() {
1542- navigationModeModel.append({ "mode": i18n.tr("Car"), "index": 0 })
1543- navigationModeModel.append({ "mode": i18n.tr("Walking"), "index": 1 })
1544- navigationModeModel.append({ "mode": i18n.tr("Bicycle"), "index": 2 })
1545- navigationModeModel.append({ "mode": i18n.tr("Public Transport"), "index": 3 })
1546-
1547- modeList.subText.text = navigationModeModel.get(navApp.settings.routingMode).mode
1548- }
1549- }
1550-
1551- ListModel {
1552 id: soundModel
1553 Component.onCompleted: initialize()
1554 function initialize() {
1555@@ -115,7 +102,7 @@
1556 Flickable {
1557 id: flickable
1558 anchors.fill: parent
1559- contentHeight: settingsColumn.height + units.gu(5)
1560+ contentHeight: settingsColumn.height
1561
1562 Column {
1563 id: settingsColumn
1564@@ -132,54 +119,6 @@
1565 }
1566
1567 ExpandableListItem {
1568- id: modeList
1569-
1570- listViewHeight: units.gu(17+1)
1571- height: infoPublicLabel.visible ? units.gu(11) : units.gu(9)
1572- titleText.text: i18n.tr("Navigation mode")
1573-
1574- model: navigationModeModel
1575-
1576- delegate: ListItem {
1577- divider.visible: false
1578- height: navigationListItemLayout.height
1579- ListItemLayout {
1580- id: navigationListItemLayout
1581- title.text: model.mode
1582- title.color: "#5D5D5D"
1583- padding { top: units.gu(1); bottom: units.gu(1) }
1584- Icon {
1585- SlotsLayout.position: SlotsLayout.Trailing
1586- width: units.gu(2)
1587- name: "tick"
1588- visible: navApp.settings.routingMode === model.index
1589- }
1590- }
1591-
1592- onClicked: {
1593- navApp.settings.routingMode = model.index
1594- mainPageStack.executeJavaScript("if (nav.get_route_status() != 'no' && !nav.get_route_status().startsWith('simulate')){nav.set_route_status('waiting4signal')}; settings.set_routing_mode(" + model.index +");")
1595- modeList.subText.text = navigationModeModel.get(navApp.settings.routingMode).mode
1596- modeList.toggleExpansion()
1597- }
1598- }
1599-
1600- Label {
1601- id: infoPublicLabel
1602- text: "<a href='https://transit.land/'>" + i18n.tr("Powered by a community-edited data service") + "</a>"
1603- visible: navApp.settings.routingMode === 3
1604- width: parent.width
1605- anchors {
1606- left: parent.left
1607- leftMargin: units.gu(2)
1608- bottom: parent.bottom
1609- bottomMargin: units.gu(1)
1610- }
1611- onLinkActivated: Qt.openUrlExternally(link)
1612- }
1613- }
1614-
1615- ExpandableListItem {
1616 id: soundList
1617
1618 listViewHeight: units.gu(12+1)
1619@@ -220,25 +159,12 @@
1620 onClicked: mainPageStack.addPageToNextColumn(mainPageStack.primaryPage, Qt.resolvedUrl("DownloadVoices.qml"))
1621 }
1622
1623- ListItem {
1624- height: confirmRouteLayout.height + divider.height
1625- ListItemLayout {
1626- id: confirmRouteLayout
1627- title.text: i18n.tr("Confirm new routes")
1628- Switch {
1629- id: confirmRouteSwitch
1630- checked: navApp.settings.confirmRoute
1631- onClicked: {
1632- navApp.settings.confirmRoute = checked;
1633- mainPageStack.executeJavaScript("ui.set_confirm_route(" + checked.toString() + ")")
1634- }
1635- SlotsLayout.position: SlotsLayout.Last
1636- }
1637- }
1638+ ListItemHeader {
1639+ id: carListHeader
1640+ title: i18n.tr("Car Options")
1641 }
1642
1643 ListItem {
1644- visible: navApp.settings.routingMode === 0
1645 height: tollsLayout.height + divider.height
1646 ListItemLayout {
1647 id: tollsLayout
1648@@ -256,7 +182,6 @@
1649 }
1650
1651 ListItem {
1652- visible: navApp.settings.routingMode === 0
1653 height: speedCameraLayout.height + divider.height
1654 ListItemLayout {
1655 id: speedCameraLayout

Subscribers

People subscribed via source and target branches