From f804a1ff80c79843384c65ce0b01d0cf6ad91252 Mon Sep 17 00:00:00 2001 From: Chris Jordan Date: Thu, 16 Jan 2025 15:56:20 -0500 Subject: [PATCH] added SEGMENT_LIST_COLOR_WIDGET option (disabled by default) --- src/segmentation_display_state/frontend.ts | 81 ++++++++++++---------- 1 file changed, 46 insertions(+), 35 deletions(-) diff --git a/src/segmentation_display_state/frontend.ts b/src/segmentation_display_state/frontend.ts index ab4f210ff..94d0c3efb 100644 --- a/src/segmentation_display_state/frontend.ts +++ b/src/segmentation_display_state/frontend.ts @@ -65,6 +65,10 @@ import { makeEyeButton } from "#src/widget/eye_button.js"; import { makeFilterButton } from "#src/widget/filter_button.js"; import { makeStarButton } from "#src/widget/star_button.js"; +declare const SEGMENT_LIST_COLOR_WIDGET: boolean | undefined; +const SEGMENT_LIST_COLOR_WIDGET_ENABLED = + typeof SEGMENT_LIST_COLOR_WIDGET !== "undefined" && + SEGMENT_LIST_COLOR_WIDGET === true; export class Uint64MapEntry { constructor( public key: Uint64, @@ -352,8 +356,11 @@ const segmentWidgetTemplate = (() => { filterElement.classList.add("neuroglancer-segment-list-entry-filter"); const filterIndex = template.childElementCount; template.appendChild(filterElement); - const colorWidgetIndex = template.childElementCount; - template.appendChild(ColorWidget.template()); + let colorWidgetIndex = -1; + if (SEGMENT_LIST_COLOR_WIDGET_ENABLED) { + colorWidgetIndex = template.childElementCount; + template.appendChild(ColorWidget.template()); + } return { template, copyContainerIndex, @@ -553,29 +560,29 @@ function makeRegisterSegmentWidgetEventHandlers( selectedSegments.set(id, !selectedSegments.has(id)); }); - const trackableRGB = new TrackableRGB(vec3.fromValues(0, 0, 0)); - trackableRGB.changed.add(() => { - const testU = new Uint64(packColor(trackableRGB.value)); - const idString = element.dataset.id!; - const id = tempObjectId; - id.tryParseString(idString); - displayState.segmentStatedColors.value.delete(id); - displayState.segmentStatedColors.value.set(id, testU); - }); - - // TODO, need to register disposer? - new ColorWidget( - trackableRGB, - undefined, - children[template.colorWidgetIndex] as HTMLInputElement, - () => { + if (SEGMENT_LIST_COLOR_WIDGET_ENABLED) { + const trackableRGB = new TrackableRGB(vec3.fromValues(0, 0, 0)); + trackableRGB.changed.add(() => { + const testU = new Uint64(packColor(trackableRGB.value)); const idString = element.dataset.id!; const id = tempObjectId; id.tryParseString(idString); displayState.segmentStatedColors.value.delete(id); - }, - false, - ); + displayState.segmentStatedColors.value.set(id, testU); + }); + new ColorWidget( + trackableRGB, + undefined, + children[template.colorWidgetIndex] as HTMLInputElement, + () => { + const idString = element.dataset.id!; + const id = tempObjectId; + id.tryParseString(idString); + displayState.segmentStatedColors.value.delete(id); + }, + false, + ); + } }; } @@ -707,13 +714,15 @@ export class SegmentWidgetFactory