From b82d955ec7ab073f413297f743b6cfadec2f3b1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Thu, 27 Jul 2017 12:40:27 +0200 Subject: [PATCH] Fix printer profile update on temperature tab & gcode viewer As reported in #2033 --- .../static/js/app/viewmodels/gcode.js | 34 +++++++++++++++---- .../static/js/app/viewmodels/temperature.js | 3 +- 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/src/octoprint/static/js/app/viewmodels/gcode.js b/src/octoprint/static/js/app/viewmodels/gcode.js index 75bd3439..19db6681 100644 --- a/src/octoprint/static/js/app/viewmodels/gcode.js +++ b/src/octoprint/static/js/app/viewmodels/gcode.js @@ -109,8 +109,7 @@ $(function() { self.reader_sortLayers.subscribe(self.synchronizeOptions); self.reader_hideEmptyLayers.subscribe(self.synchronizeOptions); - // subscribe to relevant printer settings... - self.settings.printerProfiles.currentProfileData.subscribe(function() { + self._printerProfileUpdated = function() { if (!self.enabled) return; var currentProfileData = self.settings.printerProfiles.currentProfileData(); @@ -146,6 +145,27 @@ $(function() { } }); } + }; + + // subscribe to relevant printer settings... + self.settings.printerProfiles.currentProfileData.subscribe(function() { + self._printerProfileUpdated(); + if (self.settings.printerProfiles.currentProfileData()) { + if (self.settings.printerProfiles.currentProfileData().extruder) { + self.settings.printerProfiles.currentProfileData().extruder.count.subscribe(self._printerProfileUpdated); + self.settings.printerProfiles.currentProfileData().extruder.sharedNozzle.subscribe(self._printerProfileUpdated); + self.settings.printerProfiles.currentProfileData().extruder.offsets.subscribe(self._printerProfileUpdated); + } + if (self.settings.printerProfiles.currentProfileData().volume) { + self.settings.printerProfiles.currentProfileData().volume.width.subscribe(self._printerProfileUpdated); + self.settings.printerProfiles.currentProfileData().volume.depth.subscribe(self._printerProfileUpdated); + self.settings.printerProfiles.currentProfileData().volume.formFactor.subscribe(self._printerProfileUpdated); + } + if (self.settings.printerProfiles.currentProfileData().axes) { + self.settings.printerProfiles.currentProfileData().axes.x.inverted.subscribe(self._printerProfileUpdated); + self.settings.printerProfiles.currentProfileData().axes.y.inverted.subscribe(self._printerProfileUpdated); + } + } }); self.settings.feature_g90InfluencesExtruder.subscribe(function() { @@ -194,11 +214,13 @@ $(function() { currentProfileData = self.settings.printerProfiles.currentProfileData(); } - if (currentProfileData && currentProfileData.extruder && currentProfileData.extruder.offsets() && !currentProfileData.extruder.sharedNozzle()) { + if (currentProfileData && currentProfileData.extruder) { var offsets = []; - _.each(currentProfileData.extruder.offsets(), function(offset) { - offsets.push({x: offset[0], y: offset[1]}) - }); + if (currentProfileData.extruder.offsets() && !currentProfileData.extruder.sharedNozzle()) { + _.each(currentProfileData.extruder.offsets(), function(offset) { + offsets.push({x: offset[0], y: offset[1]}) + }); + } return offsets; } else { return undefined; diff --git a/src/octoprint/static/js/app/viewmodels/temperature.js b/src/octoprint/static/js/app/viewmodels/temperature.js index e21c29bf..076e57f3 100644 --- a/src/octoprint/static/js/app/viewmodels/temperature.js +++ b/src/octoprint/static/js/app/viewmodels/temperature.js @@ -95,7 +95,7 @@ $(function() { self._printerProfileUpdated = function() { var graphColors = ["red", "orange", "green", "brown", "purple"]; var heaterOptions = {}; - var tools = self.tools(); + var tools = []; var color; // tools @@ -147,6 +147,7 @@ $(function() { self.settingsViewModel.printerProfiles.currentProfileData.subscribe(function() { self._printerProfileUpdated(); self.settingsViewModel.printerProfiles.currentProfileData().extruder.count.subscribe(self._printerProfileUpdated); + self.settingsViewModel.printerProfiles.currentProfileData().extruder.sharedNozzle.subscribe(self._printerProfileUpdated); self.settingsViewModel.printerProfiles.currentProfileData().heatedBed.subscribe(self._printerProfileUpdated); });