[gnome-maps/wip/routing2] More sidebar work
- From: Mattias Bengtsson <mattiasb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-maps/wip/routing2] More sidebar work
- Date: Sun, 8 Jun 2014 03:57:21 +0000 (UTC)
commit a711a3da0419644f6d85a6a81bf67fb56dc5459b
Author: Mattias Bengtsson <mattias jc bengtsson gmail com>
Date: Sun Jun 8 05:56:57 2014 +0200
More sidebar work
data/media/direction-continue.png | Bin 0 -> 488 bytes
data/media/direction-left.png | Bin 0 -> 587 bytes
data/media/direction-right.png | Bin 0 -> 564 bytes
data/media/direction-sharpleft.png | Bin 0 -> 678 bytes
data/media/direction-sharpright.png | Bin 0 -> 659 bytes
data/media/direction-slightleft.png | Bin 0 -> 616 bytes
data/media/direction-slightright.png | Bin 0 -> 611 bytes
data/media/directions.svg | 329 ++++++++++++++++++++++++++++++++++
src/route.js | 2 +-
src/sidebar.js | 87 +++++++++-
src/sidebar.ui | 41 ++++-
11 files changed, 452 insertions(+), 7 deletions(-)
---
diff --git a/data/media/direction-continue.png b/data/media/direction-continue.png
new file mode 100644
index 0000000..141690d
Binary files /dev/null and b/data/media/direction-continue.png differ
diff --git a/data/media/direction-left.png b/data/media/direction-left.png
new file mode 100644
index 0000000..022401e
Binary files /dev/null and b/data/media/direction-left.png differ
diff --git a/data/media/direction-right.png b/data/media/direction-right.png
new file mode 100644
index 0000000..1e718de
Binary files /dev/null and b/data/media/direction-right.png differ
diff --git a/data/media/direction-sharpleft.png b/data/media/direction-sharpleft.png
new file mode 100644
index 0000000..086c990
Binary files /dev/null and b/data/media/direction-sharpleft.png differ
diff --git a/data/media/direction-sharpright.png b/data/media/direction-sharpright.png
new file mode 100644
index 0000000..3012fdd
Binary files /dev/null and b/data/media/direction-sharpright.png differ
diff --git a/data/media/direction-slightleft.png b/data/media/direction-slightleft.png
new file mode 100644
index 0000000..b584db1
Binary files /dev/null and b/data/media/direction-slightleft.png differ
diff --git a/data/media/direction-slightright.png b/data/media/direction-slightright.png
new file mode 100644
index 0000000..ba3ecd8
Binary files /dev/null and b/data/media/direction-slightright.png differ
diff --git a/data/media/directions.svg b/data/media/directions.svg
new file mode 100644
index 0000000..d89796d
--- /dev/null
+++ b/data/media/directions.svg
@@ -0,0 +1,329 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32px"
+ height="32px"
+ id="svg13790"
+ version="1.1"
+ inkscape:version="0.48+devel r12417"
+ sodipodi:docname="directions.svg"
+ inkscape:export-filename="/home/andreasn/SparkleShare/gnome-icons/maps-symbolic/direction-roundabout.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs13792" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2"
+ inkscape:cx="66.547746"
+ inkscape:cy="19.043947"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:snap-global="true"
+ inkscape:snap-nodes="false"
+ inkscape:snap-bbox="true"
+ inkscape:bbox-paths="true"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ showborder="true"
+ inkscape:window-width="1920"
+ inkscape:window-height="1021"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid13798" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata13795">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <rect
+
style="color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect13852-7-44"
+ width="32.10268"
+ height="31.942713"
+ x="160.00635"
+ y="0.0831604"
+ rx="2.9755306"
+ ry="2.9755306" />
+ <rect
+
style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect13805-7-84"
+ width="3.9737358"
+ height="11.347995"
+ x="9.9818344"
+ y="-180.36581"
+ transform="matrix(0,1,-1,0,0,0)" />
+ <rect
+
style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect13805-3-4-0"
+ width="4.0049858"
+ height="17.051868"
+ x="-170.02029"
+ y="-27.035873"
+ transform="scale(-1,-1)" />
+ <rect
+
style="color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect13852-7-8-3"
+ width="32.10268"
+ height="31.942713"
+ x="200.00635"
+ y="0.0831604"
+ rx="2.9755306"
+ ry="2.9755306" />
+ <rect
+
style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect13805-7-6-3"
+ width="3.9737358"
+ height="10.972995"
+ x="-144.88109"
+ y="157.918"
+ transform="matrix(-0.70710678,0.70710678,0.70710678,0.70710678,0,0)" />
+ <rect
+
style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect13805-3-4-2-2"
+ width="4.1924858"
+ height="10.054085"
+ x="217.91138"
+ y="-27.059189"
+ transform="scale(1,-1)" />
+ <rect
+
style="color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect13852-7-4-7"
+ width="32.10268"
+ height="31.942713"
+ x="120.00635"
+ y="0.0831604"
+ rx="2.9755306"
+ ry="2.9755306" />
+ <path
+
style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 124.6453,12.01558 8.42654,5.950595 L 133.07184,6.064983 Z"
+ id="rect13802-1-3-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <rect
+
style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect13805-7-8-9"
+ width="3.9737358"
+ height="11.347995"
+ x="9.9818344"
+ y="131.67984"
+ transform="matrix(0,1,1,0,0,0)" />
+ <rect
+
style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect13805-3-4-8-3"
+ width="4.0049858"
+ height="17.051868"
+ x="142.02536"
+ y="-27.035873"
+ transform="scale(1,-1)" />
+ <rect
+
style="color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect13852-7-8-4-2-7"
+ width="32.10268"
+ height="31.942713"
+ x="-352.10901"
+ y="0.0831604"
+ rx="2.9755306"
+ ry="2.9755306"
+ transform="scale(-1,1)" />
+ <path
+
style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 328.01905,10.939736 11.2672,8.045185 2.30944,-3.233739 L 328.01579,6.054647 Z"
+ id="rect13805-7-6-7-7-9"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <rect
+
style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect13805-3-4-2-5-0-6"
+ width="3.9936121"
+ height="17.505117"
+ x="-332.01636"
+ y="-27.000946"
+ transform="scale(-1,-1)" />
+ <rect
+
style="color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect13852-7-4-9-5"
+ width="32.10268"
+ height="31.942713"
+ x="80.006348"
+ y="0.0831604"
+ rx="2.9755306"
+ ry="2.9755306" />
+ <path
+
style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 96.00234,6.033529 90.34282,14.039892 101.66187,14.039892 Z"
+ id="rect13802-1-3-1-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <rect
+
style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect13805-3-4-8-8-8"
+ width="4.0049858"
+ height="18.024139"
+ x="94.047668"
+ y="-27.039391"
+ transform="scale(1,-1)" />
+ <rect
+
style="color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect13852-7-4-9-4-97"
+ width="32.10268"
+ height="31.942713"
+ x="40.006348"
+ y="0.0831604"
+ rx="2.9755306"
+ ry="2.9755306" />
+ <rect
+
style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect13805-3-4-8-8-7-9"
+ width="4.0049858"
+ height="8.3306971"
+ x="-63.996399"
+ y="11.774483"
+ transform="scale(-1,1)" />
+ <rect
+
style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect13805-3-4-8-8-7-5-1"
+ width="4.0049858"
+ height="13.009145"
+ x="-50.022888"
+ y="11.908539"
+ transform="scale(-1,1)" />
+ <path
+
style="fill:none;stroke:#555753;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 48.04469,13.008885 c 0,0 0.11927,-7.046316 7.04632,-7.046316 6.92704,0 6.94646,6.985563
6.94646,6.985563"
+ id="path14648-5"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="czc" />
+ <path
+
style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 188.39767,12.01558 179.97112,17.966175 179.97112,6.064983 Z"
+ id="rect13802-1-3-2-0"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+
style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 61.98801,24.993885 67.64754,16.987522 56.32848,16.987522 Z"
+ id="rect13802-1-3-1-2-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+
style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 208.16883,5.957036 218.335,7.707799 209.91959,16.123212 Z"
+ id="rect13802-1-3-2-0-0"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <rect
+
style="color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect13852-7-8-3-8"
+ width="32.10268"
+ height="31.942713"
+ x="-272.10901"
+ y="0.0831604"
+ rx="2.9755306"
+ ry="2.9755306"
+ transform="scale(-1,1)" />
+ <rect
+
style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect13805-7-6-3-5"
+ width="3.9737358"
+ height="10.972995"
+ x="188.9549"
+ y="-175.91797"
+ transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,0,0)" />
+ <rect
+
style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect13805-3-4-2-2-1"
+ width="4.1924858"
+ height="10.054085"
+ x="-254.20398"
+ y="-27.059189"
+ transform="scale(-1,-1)" />
+ <path
+
style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 263.94653,5.957036 253.78036,7.707799 262.19577,16.123212 Z"
+ id="rect13802-1-3-2-0-0-5"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+
style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 347.01125,21.98242 343.52037,12.275209 336.69551,22.02506 Z"
+ id="rect13802-1-3-2-0-0-5-0"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <rect
+
style="color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect13852-7-8-4-2-7-1"
+ width="32.10268"
+ height="31.942713"
+ x="280.00635"
+ y="0.0831604"
+ rx="2.9755306"
+ ry="2.9755306" />
+ <path
+
style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="m 304.09632,10.939736 -11.2672,8.045185 -2.30944,-3.233739 L 304.09958,6.054647 Z"
+ id="rect13805-7-6-7-7-9-3"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccccc" />
+ <rect
+
style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect13805-3-4-2-5-0-6-9"
+ width="3.9936121"
+ height="17.505117"
+ x="300.099"
+ y="-27.000946"
+ transform="scale(1,-1)" />
+ <path
+
style="color:#000000;fill:#555753;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 285.10412,21.98242 288.595,12.275209 295.41986,22.02506 Z"
+ id="rect13802-1-3-2-0-0-5-0-7"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <rect
+
style="color:#000000;fill:#babdb6;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect13852-7-4-9-4-9-3-04-4"
+ width="32.10268"
+ height="31.942713"
+ x="0.0063476562"
+ y="0.0831604"
+ rx="2.9755306"
+ ry="2.9755306" />
+ <path
+
style="font-size:xx-small;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;color-interpolation:sRGB;color-interpolation-filters:linearRGB;fill:#555753;fill-opacity:1;stroke:none;stroke-width:2.8946228;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;clip-rule:nonzero;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;font-family:sans-serif;-inkscape-font-specification:sans-serif"
+ d="m 13.97683,4.317626 c -5.62461,0.953573 -9.94198,5.849698 -9.94198,11.721069 0,1.600593
0.32477,3.12763 0.90503,4.524568 l 3.44473,-2.204142 c -0.2228,-0.733042 -0.34428,-1.511518
-0.34428,-2.320426 0,-3.702207 2.51084,-6.773804 5.9365,-7.64886 L 16.62848,6.100499 z m 4,0.0024 0,4.073763
c 3.4178,0.880328 5.92114,3.948279 5.92114,7.644953 0,0.803474 -0.1205,1.576647 -0.34043,2.305381 l
0.0596,3.32594 3.38654,-1.120919 C 27.5803,19.155966 27.90349,17.634026 27.90349,16.038742 27.90345,10.172644
23.59396,5.279848 17.97683,4.319979 z m 3.48373,17.431085 c -1.42166,1.35889 -3.35077,2.19475
-5.49141,2.19475 -2.13509,0 -4.05947,-0.831849 -5.48008,-2.184491 l -3.0995,-0.926067 -0.30913,3.10712 c
2.1892,2.444729 5.36093,3.997962 8.88873,3.997962 C 19.50231,27.940338 22.67845,26.382505 24.86795,23.931318
Z"
+ id="path15446"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="csccscccccscccscccccccccc" />
+ </g>
+</svg>
diff --git a/src/route.js b/src/route.js
index ac78703..ac18f0f 100644
--- a/src/route.js
+++ b/src/route.js
@@ -80,7 +80,7 @@ Utils.addSignalMethods(Route.prototype);
const TurnPoint = new Lang.Class({
Name: 'TurnPoint',
- _init: function({ coordinate, type, direction, distance, instruction }) {
+ _init: function({ coordinate, type, distance, instruction }) {
this.coordinate = coordinate;
this._type = type;
this.distance = distance;
diff --git a/src/sidebar.js b/src/sidebar.js
index ba4462c..a9887c7 100644
--- a/src/sidebar.js
+++ b/src/sidebar.js
@@ -29,6 +29,8 @@ const Lang = imports.lang;
const Application = imports.application;
const PlaceStore = imports.placeStore;
+const Route = imports.route;
+const RouteQuery = imports.routeQuery;
const SearchPopup = imports.searchPopup;
const Utils = imports.utils;
@@ -51,11 +53,14 @@ const Sidebar = new Lang.Class({
'mode-pedestrian-toggle',
'mode-bike-toggle',
'mode-car-toggle']);
-
- ui.instructionList.connect('row-activated', (function(list, row) {
- this.emit('instruction-selected', row.instruction);
- }).bind(this));
-
+ this._instructionList = ui.instructionList;
+ this._initInstructionList();
+
+ this._initModeToggle({ "PEDESTRIAN": ui.modePedestrianToggle,
+ "BIKE": ui.modeBikeToggle,
+ "CAR": ui.modeCarToggle
+ });
+
ui.grid.attach(this._createEntry("from", ui.fromCompletion),
1, 0, 1, 1);
ui.grid.attach(this._createEntry("to", ui.toCompletion),
@@ -63,6 +68,15 @@ const Sidebar = new Lang.Class({
this.add(ui.grid);
},
+ _initModeToggle: function(toggles) {
+ for(let mode in toggles) {
+ toggles[mode].connect('toggled', function(button) {
+ if (button.active)
+ Application.routeService.query.transportation = mode;
+ });
+ }
+ },
+
_createEntry: function(propName, completion) {
completion.model = Application.placeStore;
completion.match_func = PlaceStore.completionMatchFunc;
@@ -74,6 +88,28 @@ const Sidebar = new Lang.Class({
Application.routeService.query, propName,
GObject.BindingFlags.BIDIRECTIONAL);
return entry;
+ },
+
+ _initInstructionList: function() {
+ this._instructionList.connect('row-activated', (function(list, row) {
+ this.emit('instruction-selected', row.instruction);
+ }).bind(this));
+
+ let route = Application.routeService.route;
+
+ route.connect('reset', this._clearInstructions.bind(this));
+ route.connect('update', (function() {
+ this._clearInstructions();
+
+ route.turnPoints.forEach((function(turnPoint) {
+ this._instructionList.add(new InstructionRow(turnPoint));
+ }).bind(this));
+ }).bind(this));
+ },
+
+ _clearInstructions: function() {
+ let listBox = this._instructionList;
+ listBox.forall(listBox.remove.bind(listBox));
}
});
@@ -124,6 +160,7 @@ const PlaceEntry = new Lang.Class({
_onActivate: function(popover) {
if (this.text.length > 0) {
popover.showSpinner();
+ //TODO: How to do the geocoding in a good way?
Application
.application
._mainWindow
@@ -139,3 +176,43 @@ const PlaceEntry = new Lang.Class({
}
}
});
+
+const InstructionRow = new Lang.Class({
+ Name: "InstructionRow",
+ Extends: Gtk.ListBoxRow,
+
+ _init: function(params) {
+ this.turnPoint = params.turnPoint;
+ delete params.turnPoint;
+
+ this.parent(params);
+
+ this.visible = true;
+ let ui = Utils.getUIObject('sidebar', ['instruction-box',
+ 'direction-image',
+ 'instruction-label']);
+ ui.instructionLabel.label = this.turnPoint.instruction;
+ ui.directionImage.resource = directionToResource(this.turnPoint.direction);
+
+ this.add(ui.instructionBox);
+ }
+});
+
+function directionToResource(direction) {
+ let dir = Route.TurnPointType;
+ switch(direction) {
+ case dir.SHARP_LEFT: return '/org/gnome/maps/direction-sharpleft';
+ case dir.LEFT: return '/org/gnome/maps/direction-left';
+ case dir.SLIGHT_LEFT: return '/org/gnome/maps/direction-slightleft';
+ case dir.CONTINUE: return '/org/gnome/maps/direction-continue';
+ case dir.SLIGHT_RIGHT: return '/org/gnome/maps/direction-slightright';
+ case dir.RIGHT: return '/org/gnome/maps/direction-right';
+ case dir.SHARP_RIGHT: return '/org/gnome/maps/direction-sharpright';
+
+ // TODO: get icons for these
+ // case dir.END: return '/org/gnome/maps/direction-end';
+ // case dir.VIA: return '/org/gnome/maps/direction-via';
+ // case dir.START: return '/org/gnome/maps/direction-start';
+ default: return "";
+ }
+}
diff --git a/src/sidebar.ui b/src/sidebar.ui
index ad9a2ac..7b4900b 100644
--- a/src/sidebar.ui
+++ b/src/sidebar.ui
@@ -117,7 +117,7 @@
<property name="xalign">0.5</property>
<property name="active">True</property>
<property name="draw_indicator">False</property>
- <property name="group">mode-pedestrian-toggle</property>
+ <property name="group">mode-bike-toggle</property>
<child>
<object class="GtkImage" id="mode-car-image">
<property name="visible">True</property>
@@ -212,4 +212,43 @@
</packing>
</child>
</object>
+
+ <object class="GtkBox" id="instruction-box">
+ <property name="height_request">48</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <property name="baseline_position">top</property>
+ <child>
+ <object class="GtkImage" id="direction-image">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xpad">2</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="instruction-label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="xalign">0</property>
+ <property name="ypad">3</property>
+ <property name="use_underline">True</property>
+ <property name="wrap">True</property>
+ <property name="ellipsize">end</property>
+ <property name="max_width_chars">28</property>
+ <property name="lines">3</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
</interface>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]