forked from 1b-agent/opencadstudio-upstream
web: enable STL/STEP export and OBJ import, drag-and-drop open
STLOUT/STEPOUT wrote via std::fs and IMPORTOBJ read via std::fs, all of which fail on wasm32. The export pickers now mirror the PDF path (pick_*_owned returns a name-only PathBuf; the browser download names the file) and the write tail swaps fs::write for sys::download_bytes. OBJ import reads the picked file's bytes directly, like the web open picker. Opening by drag-and-drop was dead on the web build: winit never emits FileDropped there. A wasm-gated io::web_drop module installs DOM dragover/drop listeners, filters .dwg/.dxf, reads the File bytes async, and queues them; the existing 50 ms PollWebControl tick drains the queue into the same open path the picker uses (progress overlay, recovery, OPFS recent cache). Also floors the model-space plot sheet: extents smaller than 10 mm (or the 0x0 paper a fresh unsaved drawing carries) now fall back to the standard sheet instead of producing a ~3 pt page.
This commit is contained in:
1 parent
2a05479d69
commit
ad60be11ed
8 files changed
+362
-38
No files matched your search
@@ -135,6 +135,10 @@ web-sys = { version = "=0.3.85", features = [
|
||||
"HtmlCanvasElement",
|
||||
"CanvasRenderingContext2d",
|
||||
"ImageData",
|
||||
"DragEvent",
|
||||
"DataTransfer",
|
||||
"FileList",
|
||||
"Event",
|
||||
] }
|
||||
iced = { git = "https://github.com/iced-rs/iced.git", rev = "23604ff22ab0aad9e00b9327cb7b8546ed84db39", features = ["webgl", "fira-sans"] }
|
||||
|
||||
|
||||
Reference in new issue
Block a user