From 41f951cb1428c1cb0cae75e214d3eda803501ce7 Mon Sep 17 00:00:00 2001 From: Stewart Allen Date: Fri, 7 Jun 2024 10:30:28 -0700 Subject: [PATCH] re-add extruder selector --- src/kiri/settings.js | 23 +++++++++++++++++++++++ web/kiri/index.css | 12 ++++++++++++ web/kiri/index.html | 3 +++ 3 files changed, 38 insertions(+) diff --git a/src/kiri/settings.js b/src/kiri/settings.js index f8efaecc..2da24486 100644 --- a/src/kiri/settings.js +++ b/src/kiri/settings.js @@ -17,6 +17,7 @@ const { space } = moto; const { local } = data; const { clone } = Object; const { areEqual, ls2o, js2o } = utils; +const { COLOR } = consts; const localFilterKey ='kiri-gcode-filters'; const localFilters = js2o(local.getItem(localFilterKey)) || []; @@ -304,6 +305,28 @@ function updateExtruderFields(device) { device.internal = device.extruders.length - 1; updateExtruderFields(device); }; + api.uc.setClass($('tool-nozzle'), 'hide', false); + h.bind($('ft-nozzle'), device.extruders.map((d,i) => h.div([ + h.button({ + _: `extruder ${i}`, + onclick() { + api.selection.for_widgets(w => { + w.anno.extruder = i; + w.setColor( + api.selection.contains(w) ? + COLOR.selected : COLOR.deselected, + undefined, + false); + }); + } + }), + h.div({ + class: "splat", + style: `background-color: #${COLOR.deselected[i].toString(16)}` + }) + ]))); + } else { + api.uc.setClass($('tool-nozzle'), 'hide', true); } } diff --git a/web/kiri/index.css b/web/kiri/index.css index 094736e6..d9046cbb 100644 --- a/web/kiri/index.css +++ b/web/kiri/index.css @@ -1067,6 +1067,18 @@ th, tr, td, label { #render-tools > span:not(:hover) .pop { display: none; } +/** fdm extruder drop-down */ +#ft-nozzle .splat { + width: 10px; + height: 10px; + margin: 3px; + border-radius: 3px; + border: 1px solid #555; +} +#ft-nozzle > div { + flex-direction: row; + align-items: center; +} /** selection rotation */ #ft-rotate { gap: 2px; diff --git a/web/kiri/index.html b/web/kiri/index.html index 9065a8e7..1782ca15 100644 --- a/web/kiri/index.html +++ b/web/kiri/index.html @@ -214,6 +214,9 @@
+ +
+