[gnome-maps/wip/routing2: 9/9] More sidebar work



commit 82b696a4d7f85a9b81b67901148c913e2ff7f2ea
Author: Mattias Bengtsson <mattias jc bengtsson gmail com>
Date:   Sun Jun 8 23:10:43 2014 +0200

    More sidebar work

 src/gnome-maps.data.gresource.xml |    7 +++++++
 src/mainWindow.js                 |   34 +++++++++++++++++++++++++++-------
 src/routeQuery.js                 |    2 +-
 src/sidebar.js                    |    4 +++-
 4 files changed, 38 insertions(+), 9 deletions(-)
---
diff --git a/src/gnome-maps.data.gresource.xml b/src/gnome-maps.data.gresource.xml
index 3fb107c..b91a5d2 100644
--- a/src/gnome-maps.data.gresource.xml
+++ b/src/gnome-maps.data.gresource.xml
@@ -22,5 +22,12 @@
     <file alias="route-transit-symbolic">../data/icons/route-transit-symbolic.svg</file>
     <file alias="route-bike-symbolic">../data/icons/route-bike-symbolic.svg</file>
     <file alias="layers-button.svg">../data/icons/layers-button.svg</file>
+    <file alias="direction-sharpleft">../data/media/direction-sharpleft.png</file>
+    <file alias="direction-left">../data/media/direction-left.png</file>
+    <file alias="direction-slightleft">../data/media/direction-slightleft.png</file>
+    <file alias="direction-continue">../data/media/direction-continue.png</file>
+    <file alias="direction-sharpright">../data/media/direction-sharpright.png</file>
+    <file alias="direction-right">../data/media/direction-right.png</file>
+    <file alias="direction-slightright">../data/media/direction-slightright.png</file>
   </gresource>
 </gresources>
diff --git a/src/mainWindow.js b/src/mainWindow.js
index ad8f92d..0ba6ea8 100644
--- a/src/mainWindow.js
+++ b/src/mainWindow.js
@@ -19,6 +19,7 @@
  *
  * Author: Cosimo Cecchi <cosimoc redhat com>
  *         Zeeshan Ali (Khattak) <zeeshanak gnome org>
+ *         Mattias Bengtsson <mattias jc bengtsson gmail com>
  */
 
 const Gdk = imports.gi.Gdk;
@@ -68,7 +69,9 @@ const MainWindow = new Lang.Class({
 
         this._sidebar = new Sidebar.Sidebar();
         overlay.add_overlay(this._sidebar);
-        
+        Application.routeService.route.connect('update',
+                                               this._showSidebar.bind(this));
+
         this.mapView = new MapView.MapView();
         overlay.add(this.mapView);
 
@@ -138,9 +141,11 @@ const MainWindow = new Lang.Class({
             }, {
                 properties: {
                     name: 'toggle-sidebar',
-                    state: GLib.Variant.new('b', false)
+                    state: GLib.Variant.new_boolean(false)
                 },
-                signalHandlers: { activate: this._onToggleSidebarActivate }
+                signalHandlers: {
+                    'change-state': this._onToggleSidebarChangeState
+                }
             }
         ], this);
 
@@ -301,10 +306,25 @@ const MainWindow = new Lang.Class({
         this.mapView.setMapType(MapView.MapType[mapType]);
     },
 
-    _onToggleSidebarActivate: function(action) {
-        let newState = !action.get_state().get_boolean();
-        action.set_state(GLib.Variant.new('b', newState));
-        this._sidebar.set_reveal_child(newState);
+    _onToggleSidebarChangeState: function(action, variant) {
+        action.set_state(variant);
+
+        let reveal = variant.get_boolean();
+        if(!reveal) {
+            Application.routeService.route.reset();
+            // Application.routeService.query.reset();
+        }
+        this._sidebar.set_reveal_child(reveal);
+    },
+
+    _hideSidebar: function() {
+        let action = this.window.lookup_action('toggle-sidebar');
+        action.change_state(GLib.Variant.new_boolean(false));
+    },
+
+    _showSidebar: function() {
+        let action = this.window.lookup_action('toggle-sidebar');
+        action.change_state(GLib.Variant.new_boolean(true));
     },
 
     _onAboutActivate: function() {
diff --git a/src/routeQuery.js b/src/routeQuery.js
index df2912f..2c6f28d 100644
--- a/src/routeQuery.js
+++ b/src/routeQuery.js
@@ -110,7 +110,7 @@ const RouteQuery = new Lang.Class({
     _disconnectSignals: function() {
         this.disconnect(this._updatedId);        
     },
-    
+
     reset: function() {
         this.setMany({ from: null,
                        to: null,
diff --git a/src/sidebar.js b/src/sidebar.js
index a9887c7..b0cfb90 100644
--- a/src/sidebar.js
+++ b/src/sidebar.js
@@ -102,7 +102,9 @@ const Sidebar = new Lang.Class({
             this._clearInstructions();
 
             route.turnPoints.forEach((function(turnPoint) {
-                this._instructionList.add(new InstructionRow(turnPoint));
+                let row = new InstructionRow({ visible:true,
+                                               turnPoint: turnPoint });
+                this._instructionList.add(row);
             }).bind(this));
         }).bind(this));
     },


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]