GCO viewer: Add advanced options

Allow user toggling of sortLayers and hideEmptyLayers.

As suggested in #1973
This commit is contained in:
Gina Häußge 2017-10-20 19:24:33 +02:00
parent e49adcac85
commit b65a3bb903
2 changed files with 34 additions and 6 deletions

View file

@ -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("<br>"));
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);

View file

@ -69,6 +69,28 @@
<p>
<button class="btn btn-block" data-bind="click: reload, enable: enableReload">{{ _('Reload') }}</button>
</p>
<div class="advanced_options">
<div><small><a href="#" class="muted" data-bind="toggleContent: { class: 'fa-caret-right fa-caret-down', parent: '.advanced_options', container: '.hide' }"><i class="fa fa-caret-right"></i> {{ _('Advanced options') }}</a></small></div>
<div class="hide">
<p>
<label class="checkbox">
<input type="checkbox" data-bind="checked: renderer_showFullSize">{{ _('Show visited bounding box') }}
</label>
<label class="checkbox">
<input type="checkbox" data-bind="checked: renderer_showBoundingBox">{{ _('Show printed bounding box') }}
</label>
</p>
<p>
<label class="checkbox">
<input type="checkbox" data-bind="checked: reader_hideEmptyLayers">{{ _('Hide empty layers') }} <label class="label">{{ _('Causes reload') }}</label>
</label>
<label class="checkbox">
<input type="checkbox" data-bind="checked: reader_sortLayers">{{ _('Sort layers') }} <label class="label">{{ _('Causes reload') }}</label>
</label>
</p>
</div>
</div>
</div>
</div>