From eed1fff75eca552f0f7017f13ebaf31148221061 Mon Sep 17 00:00:00 2001 From: Amanda Ghassaei <amandaghassaei@gmail.com> Date: Thu, 29 Jan 2015 23:07:31 -0500 Subject: [PATCH] more menu state stuff --- js/menus/LatticeMenuView.js | 5 ++++- js/menus/navbar.js | 7 +------ js/models/AppState.js | 10 ++++++++++ 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/js/menus/LatticeMenuView.js b/js/menus/LatticeMenuView.js index 4b0b7f3f..853daa0c 100644 --- a/js/menus/LatticeMenuView.js +++ b/js/menus/LatticeMenuView.js @@ -18,7 +18,10 @@ LatticeMenuView = Backbone.View.extend({ this.appState = options.appState; _.bindAll(this, "render"); - this.listenTo(this.model, "change", this.render); + this.listenTo(this.model, "change", function(){ + if(!model.hasChanged('cellMode')) return;//ignore cell mode changes + this.render(); + }); }, _clearCells: function(e){ diff --git a/js/menus/navbar.js b/js/menus/navbar.js index d8d1fe6e..d312437c 100644 --- a/js/menus/navbar.js +++ b/js/menus/navbar.js @@ -50,12 +50,7 @@ NavBar = Backbone.View.extend({ $(e.target).blur(); return; } - if (navSelection) { - if (navSelection=="navDesign") this.model.set("currentTab", this.model.get("lastDesignTab"), {silent: true}); - else if (navSelection=="navSim") this.model.set("currentTab", this.model.get("lastSimulationTab"), {silent: true}); - else if (navSelection=="navAssemble") this.model.set("currentTab", this.model.get("lastAssembleTab"), {silent: true}); - this.model.set("currentNav", navSelection); - } + if (navSelection) this.model.set("currentNav", navSelection); }, _updateNavSelectionUI: function(){ diff --git a/js/models/AppState.js b/js/models/AppState.js index 9a37734d..9e573047 100644 --- a/js/models/AppState.js +++ b/js/models/AppState.js @@ -23,6 +23,7 @@ AppState = Backbone.Model.extend({ this.listenTo(this, "change:currentTab", this._storeTab); this.listenTo(this, "change:currentTab", this._updateLatticeMode); + this.listenTo(this, "change:currentNav", this._updateCurrentTabForNav); this.lattice = options.lattice; }, @@ -41,6 +42,15 @@ AppState = Backbone.Model.extend({ else if (currentTab == "import") this.lattice.set("cellMode", "cell"); else if (currentTab == "sketch") this.lattice.set("cellMode", "cell"); else if (currentTab == "part") this.lattice.set("cellMode", "parts"); + }, + + //update to last tab open in that section + _updateCurrentTabForNav: function(){ + var navSelection = this.get("currentNav"); + if (navSelection=="navDesign") this.set("currentTab", this.get("lastDesignTab"), {silent:true}); + else if (navSelection=="navSim") this.set("currentTab", this.get("lastSimulationTab"), {silent:true}); + else if (navSelection=="navAssemble") this.set("currentTab", this.get("lastAssembleTab"), {silent:true}); + this._updateLatticeMode();//a little bit hacky, this updates the lattice, but holds off on updating the menus til the animation has happened } }); \ No newline at end of file -- GitLab