diff --git a/src/App.svelte b/src/App.svelte index db386f8ce..2190c072c 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -67,6 +67,8 @@ import SculptToolbar from './components/menu/SculptToolbar.svelte' import SplineToolbar from './components/menu/SplineToolbar.svelte' import MeasureToolbar from './components/menu/MeasureToolbar.svelte' // 47 M1 + import UnderlayWindow from './components/menu/UnderlayWindow.svelte' // 60 Q5 + import { underlayDropMenu } from '$lib/underlays' import ModuleToolboxLayer from './components/ui/ModuleToolboxLayer.svelte' // 48 D1: the node graph debugger's panel (loaded the first time it opens) import { debugOpen } from '$lib/flowDebug.js' @@ -388,6 +390,13 @@ import { startMusicToolbox } from './lib/musicToolbox' // an unsupported file — importFile pairs them up. const companionExt = /\.(mtl|png|jpe?g|webp|bmp|gif)$/i const companions = files.filter((file) => companionExt.test(file.name)) + // 60 Q5: a drop of nothing but images is not a model's companions — they used to be + // dropped silently. Ask what they are for: a reference image to build over, or the Explorer. + const imageExt = /\.(png|jpe?g|webp|bmp|gif)$/i + if (files.every((file) => imageExt.test(file.name))) { + underlayDropMenu.set({ x: event.clientX, y: event.clientY, files }) + return + } files.forEach((file) => { const name = file.name.toLowerCase() if (modelExt.test(name)) importFile(file, file.name.replace(modelExt, ''), undefined, undefined, companions) @@ -451,6 +460,8 @@ import { startMusicToolbox } from './lib/musicToolbox' + + diff --git a/src/components/Scene.svelte b/src/components/Scene.svelte index 9065cea28..b507495ab 100644 --- a/src/components/Scene.svelte +++ b/src/components/Scene.svelte @@ -105,6 +105,7 @@ // 36 A2: the headset browser's own "Enter VR" offer — decided by us, not threlte's default import { xrOfferMode } from '$lib/xrOffer'; import MeasureOverlay from './MeasureOverlay.svelte'; + import UnderlayLayer from './UnderlayLayer.svelte'; // 60 Q5 import AnnotationPins from './AnnotationPins.svelte'; import PingMarkers from './PingMarkers.svelte'; import PingHighlights from './PingHighlights.svelte'; @@ -1811,6 +1812,10 @@ + + +