diff --git a/src/kiri/function.js b/src/kiri/function.js index b11e736c..20fe6ba4 100644 --- a/src/kiri/function.js +++ b/src/kiri/function.js @@ -188,7 +188,7 @@ function prepareSlices(callback, scale = 1, offset = 0) { view.update_slider_max(true); show.layer(-1, 0); if (scale === 1) { - updateStackLabelState(); + view.update_stack_labels(); } if (!isBelt && controller.lineType === 'line' && !process.xray) { $('render-ghost').onclick(); @@ -337,7 +337,7 @@ function preparePreview(callback, scale = 1, offset = 0) { } else { view.update_speeds(); } - updateStackLabelState(); + view.update_stack_labels(); let { controller, process } = settings; if (!isBelt && controller.lineType === 'line' && !process.xray) { @@ -354,10 +354,12 @@ function preparePreview(callback, scale = 1, offset = 0) { } function prepareAnimation() { + const settings = api.conf.get(); api.event.emit("function.animate", {mode: settings.mode}); } function prepareExport() { + const settings = api.conf.get(); const argsave = arguments; if (!complete.preview) { preparePreview(() => { prepareExport(...argsave) }); @@ -374,12 +376,15 @@ function cancelWorker() { } } -function loadCode(code, type) { - const { event, show, widgets, view } = api; +function parseCode(code, type) { + const { conf, event, show, widgets, view } = api; const { stacks } = kiri; + const settings = conf.get(); + event.emit("code.load", {code, type}); view.set_preview(); widgets.opacity(0); + client.parse({code, type, settings}, progress => { show.progress(progress, "parsing"); }, (layers, maxSpeed, minSpeed) => { @@ -390,22 +395,12 @@ function loadCode(code, type) { view.update_slider_max(true); view.update_speeds(maxSpeed, minSpeed); show.slices(); - updateStackLabelState(); + view.update_stack_labels(); space.update(); event.emit("code.loaded", {code, type}); }); } -function updateStackLabelState() { - const settings = api.conf.get(); - const { stacks } = kiri; - // match label checkboxes to preference - for (let label of stacks.getLabels()) { - let check = `${settings.mode}-${api.view.get()}-${label}`; - stacks.setVisible(label, settings.labels[check] !== false); - } -} - const functions = api.function = { slice: prepareSlices, print: preparePreview, @@ -413,7 +408,7 @@ const functions = api.function = { animate: prepareAnimation, export: prepareExport, cancel: cancelWorker, - parse: loadCode, + parse: parseCode, clear: client.clear, clear_progress() { complete = {} } }; diff --git a/src/kiri/main.js b/src/kiri/main.js index f2c6688f..aa1ac760 100644 --- a/src/kiri/main.js +++ b/src/kiri/main.js @@ -166,6 +166,7 @@ is_arrange() { return viewMode === VIEWS.ARRANGE }, is_slice() { return viewMode === VIEWS.SLICE }, is_preview() { return viewMode === VIEWS.PREVIEW }, + update_stack_labels: updateStackLabelState, update_slider_max: updateSliderMax, update_slider: updateSlider, update_speeds: updateSpeeds, @@ -177,6 +178,16 @@ work: kiri.work }); + function updateStackLabelState() { + const settings = api.conf.get(); + const { stacks } = kiri; + // match label checkboxes to preference + for (let label of stacks.getLabels()) { + let check = `${settings.mode}-${api.view.get()}-${label}`; + stacks.setVisible(label, settings.labels[check] !== false); + } + } + function setFocus(sel, point) { if (point) { SPACE.platform.setCenter(point.x, point.z, point.y); diff --git a/src/kiri/platform.js b/src/kiri/platform.js index 253e57ce..c4221ba6 100644 --- a/src/kiri/platform.js +++ b/src/kiri/platform.js @@ -716,7 +716,7 @@ function platformLoadFiles(files, group) { } }); } else if (isgcode) { - loadCode(e.target.result, 'gcode'); + api.function.parse(e.target.result, 'gcode'); load_dec(); } else if (issvg) { let name = e.target.file.name;