diff --git a/src/octoprint/static/js/app/viewmodels/gcode.js b/src/octoprint/static/js/app/viewmodels/gcode.js
index 19db6681..5ddced87 100644
--- a/src/octoprint/static/js/app/viewmodels/gcode.js
+++ b/src/octoprint/static/js/app/viewmodels/gcode.js
@@ -56,11 +56,17 @@ $(function() {
self.reader_sortLayers = ko.observable(true);
self.reader_hideEmptyLayers = ko.observable(true);
+ self.reader_ignoreOutsideBed = ko.observable(true);
self.layerSelectionEnabled = ko.observable(false);
self.layerUpEnabled = ko.observable(false);
self.layerDownEnabled = ko.observable(false);
+ self.synchronizeOptionsAndReload = function(additionalRendererOptions, additionalReaderOptions) {
+ self.synchronizeOptions(additionalRendererOptions, additionalReaderOptions);
+ self.reload();
+ };
+
self.synchronizeOptions = function(additionalRendererOptions, additionalReaderOptions) {
var renderer = {
moveModel: self.renderer_centerModel(),
@@ -82,7 +88,7 @@ $(function() {
var reader = {
sortLayers: self.reader_sortLayers(),
purgeEmptyLayers: self.reader_hideEmptyLayers(),
- ignoreOutsideBed: true
+ ignoreOutsideBed: self.reader_ignoreOutsideBed(),
};
if (additionalReaderOptions) {
_.extend(reader, additionalReaderOptions);
@@ -106,8 +112,10 @@ $(function() {
self.renderer_extrusionWidth.subscribe(self.synchronizeOptions);
self.renderer_showNext.subscribe(self.synchronizeOptions);
self.renderer_showPrevious.subscribe(self.synchronizeOptions);
- self.reader_sortLayers.subscribe(self.synchronizeOptions);
- self.reader_hideEmptyLayers.subscribe(self.synchronizeOptions);
+
+ self.reader_sortLayers.subscribe(self.synchronizeOptionsAndReload);
+ self.reader_hideEmptyLayers.subscribe(self.synchronizeOptionsAndReload);
+ self.reader_ignoreOutsideBed.subscribe(self.synchronizeOptionsAndReload);
self._printerProfileUpdated = function() {
if (!self.enabled) return;
@@ -122,7 +130,6 @@ $(function() {
toolOffsets: toolOffsets
}
});
-
}
var bedDimensions = self._retrieveBedDimensions(currentProfileData);
@@ -323,7 +330,7 @@ $(function() {
step: 1,
value: 0,
enabled: false,
- formatter: function(value) { return "Layer #" + (value + 1); }
+ formatter: function(value) { return "Layer #" + (value + 1) + " (Z = " + GCODE.renderer.getZ(value) + ")"; }
}).on("slide", self.changeLayer);
};
@@ -535,7 +542,6 @@ $(function() {
self.ui_layerInfo(output.join("
"));
- console.log("#### Layer number:", layer.number, ", max layer:", self.maxLayer);
if (self.layerCommandSlider != undefined) {
self.layerCommandSlider.slider("enable");
self.layerCommandSlider.slider("setMax", layer.commands - 1);
diff --git a/src/octoprint/templates/tabs/gcodeviewer.jinja2 b/src/octoprint/templates/tabs/gcodeviewer.jinja2
index f909206a..7b3d09a6 100644
--- a/src/octoprint/templates/tabs/gcodeviewer.jinja2
+++ b/src/octoprint/templates/tabs/gcodeviewer.jinja2
@@ -69,6 +69,28 @@
+ +