docs: ✏️ cleanup and organize docs
This commit is contained in:
parent
8db6cfadc3
commit
8e413f89ec
29 changed files with 85 additions and 3340 deletions
54
docs/features/schematic/0001-eeschema-iface-stubs.md
Normal file
54
docs/features/schematic/0001-eeschema-iface-stubs.md
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
# 0001 — eeschema IFACE sub-frame stubs (WASM)
|
||||
|
||||
## Why
|
||||
|
||||
Eeschema's `IFACE::CreateKiWindow` in [kicad/eeschema/eeschema.cpp](../../kicad/eeschema/eeschema.cpp) dispatches `FRAME_T` ids to four frame constructors:
|
||||
|
||||
- `FRAME_SCH` → `SCH_EDIT_FRAME` (the schematic editor — what we want)
|
||||
- `FRAME_SCH_SYMBOL_EDITOR` → `SYMBOL_EDIT_FRAME` (symbol library editor)
|
||||
- `FRAME_SCH_VIEWER` → `SYMBOL_VIEWER_FRAME` (symbol library viewer)
|
||||
- `FRAME_SYMBOL_CHOOSER` → `SYMBOL_CHOOSER_FRAME` (symbol chooser dialog)
|
||||
- `FRAME_SIMULATOR` → `SIMULATOR_FRAME` (already wrapped in try/catch — no patch needed)
|
||||
|
||||
The MVP scope for the WASM port is "empty schematic editor + draw a wire", so the three sub-frames (symbol editor / viewer / chooser) are out of scope. They are non-trivial to support in the browser — they need bundled symbol libraries, FS access for `.kicad_sym` lookup, and full dialog plumbing.
|
||||
|
||||
Compiling them out at the source level (removing `EESCHEMA_LIBEDIT_SRCS` from the build) cascades into many CMakeLists.txt and symbol-chooser sources; cleaner to keep the sources compiled and just refuse to instantiate the frames at the IFACE switch.
|
||||
|
||||
## What changed
|
||||
|
||||
`kicad/eeschema/eeschema.cpp`, the three sub-frame cases inside `IFACE::CreateKiWindow` are now guarded:
|
||||
|
||||
```cpp
|
||||
case FRAME_SCH_SYMBOL_EDITOR:
|
||||
#ifdef __EMSCRIPTEN__
|
||||
return nullptr;
|
||||
#else
|
||||
return new SYMBOL_EDIT_FRAME( aKiway, aParent );
|
||||
#endif
|
||||
|
||||
case FRAME_SCH_VIEWER:
|
||||
#ifdef __EMSCRIPTEN__
|
||||
return nullptr;
|
||||
#else
|
||||
return new SYMBOL_VIEWER_FRAME( aKiway, aParent );
|
||||
#endif
|
||||
|
||||
case FRAME_SYMBOL_CHOOSER:
|
||||
{
|
||||
#ifdef __EMSCRIPTEN__
|
||||
return nullptr;
|
||||
#else
|
||||
// … existing body …
|
||||
#endif
|
||||
}
|
||||
```
|
||||
|
||||
`FRAME_SIMULATOR` is untouched — its existing `try/catch (SIMULATOR_INIT_ERR&)` block catches the ngspice init failure that our header stub eventually triggers, and returns nullptr the same way.
|
||||
|
||||
## How to apply
|
||||
|
||||
Captured under `features/schematic/kicad.patch` via `./scripts/create-feature-patches.sh schematic` once the build is green.
|
||||
|
||||
## Tested by
|
||||
|
||||
`tests/kicad/eeschema.spec.ts` — wizard completion + `Draw Wires` tool test. Neither test path exercises the stubbed-out frames.
|
||||
Loading…
Reference in a new issue