Skip to content

Commit b8e1b6e

Browse files
committed
feat: ensure the draw tab is only visible if there is a writable source.
1 parent 7d03052 commit b8e1b6e

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

src/layer/vox/index.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,11 @@ import type { ImageRenderLayer } from "#src/sliceview/volume/image_renderlayer.j
3535
import type { SegmentationRenderLayer } from "#src/sliceview/volume/segmentation_renderlayer.js";
3636
import { TrackableBoolean } from "#src/trackable_boolean.js";
3737
import type { WatchableValueInterface } from "#src/trackable_value.js";
38-
import { TrackableValue, WatchableValue } from "#src/trackable_value.js";
38+
import {
39+
makeDerivedWatchableValue,
40+
TrackableValue,
41+
WatchableValue,
42+
} from "#src/trackable_value.js";
3943
import type { UserLayerWithAnnotations } from "#src/ui/annotations.js";
4044
import { randomUint64 } from "#src/util/bigint.js";
4145
import { RefCounted } from "#src/util/disposable.js";
@@ -229,6 +233,10 @@ export function UserLayerWithVoxelEditingMixin<
229233
this.tabs.add("Draw", {
230234
label: "Draw",
231235
order: 20,
236+
hidden: makeDerivedWatchableValue(
237+
(editable) => !editable,
238+
this.isEditable,
239+
),
232240
getter: () => new VoxToolTab(this),
233241
});
234242
}
@@ -307,6 +315,7 @@ export function UserLayerWithVoxelEditingMixin<
307315
);
308316
this.editingContexts.set(loadedSubsource, context);
309317
this.addRenderLayer(optimisticRenderLayer);
318+
this.isEditable.value = true;
310319
}
311320

312321
deinitializeVoxelEditingForSubsource(loadedSubsource: LoadedDataSubsource) {

0 commit comments

Comments
 (0)