Add wxDragDrop test app and document coverage gaps
- Add dnd/dnd_test.cpp standalone app for HTML5 file drop testing - Add dnd.spec.ts with 9 E2E tests (all passing) - Update Makefile.wasm with dnd build target - Update WHATWORKS.md with DnD status and coverage audit results - Document identified gaps: wxPropertyGrid, virtual modes, pickers, etc. - Update wxwidgets submodule with DnD support Tests: 136 total (15 standalone apps) Coverage: ~70% of KiCad-critical features 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
bf933104f9
commit
e78a8e6d30
5 changed files with 622 additions and 7 deletions
|
|
@ -9,7 +9,7 @@ Last updated: 2025-12-03
|
|||
| Category | Status | Notes |
|
||||
|----------|--------|-------|
|
||||
| Main App Load | WORKS | minimal_test.html loads and renders correctly |
|
||||
| Standalone Apps | WORKS | 14 standalone test apps (127 total tests passing) |
|
||||
| Standalone Apps | WORKS | 15 standalone test apps (136 total tests passing) |
|
||||
| wxGrid | WORKS | Grid renders with cells, labels, and event handling |
|
||||
| wxTreeCtrl | WORKS | Tree renders with expand/collapse, selection, add/delete items |
|
||||
| wxTimer | PARTIAL | Timer test app works, some tests have coordinate issues |
|
||||
|
|
@ -18,6 +18,7 @@ Last updated: 2025-12-03
|
|||
| wxHtmlWindow | WORKS | HTML rendering for About dialogs, error formatting |
|
||||
| wxStyledTextCtrl | WORKS | Syntax highlighting for DRC rules, Python console |
|
||||
| wxPrinting | WORKS | Print preview, print dialog, browser print via window.print() |
|
||||
| wxDragDrop | WORKS | HTML5 file drop support for external files |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -146,6 +147,18 @@ This section maps KiCad's wxWidgets usage to our test coverage.
|
|||
- Browser Print triggers `window.print()` for native browser print dialog
|
||||
- Page Setup dialog works with margins configuration
|
||||
|
||||
### wxDragDrop (HTML5 File Drop) - WORKS ✓
|
||||
- **Status**: External file drops via HTML5 drag and drop API fully functional
|
||||
- **KiCad Impact**: HIGH - Loading projects, schematics, PCBs via file drops
|
||||
- **Evidence**: dnd-01-loaded.png shows test app, dnd-05-drop.png shows file drop processing
|
||||
- **Tests**: 9/9 pass - App load, handlers registered, dragenter, dragleave, drop, file write, event fire
|
||||
- **Details**:
|
||||
- HTML5 drag/drop events (dragenter, dragleave, drop) captured on canvas
|
||||
- Files read via `File.arrayBuffer()` and written to WASM `/tmp/` filesystem
|
||||
- wxDropFilesEvent dispatched to target window via C++ callback
|
||||
- Multiple file drops supported
|
||||
- KiCad file types (.kicad_pcb, .kicad_sch, .kicad_pro, etc.) work correctly
|
||||
|
||||
---
|
||||
|
||||
## Standalone Test Apps
|
||||
|
|
@ -168,6 +181,7 @@ Organized in `wasm-app/standalone/` folders:
|
|||
| htmlwin/htmlwin_test | WORKS | 8/8 | About dialogs, error formatting |
|
||||
| stc/stc_test | WORKS | 10/10 | DRC rules editor, Python console |
|
||||
| print/print_test | WORKS | 8/8 | Schematic/PCB printing |
|
||||
| dnd/dnd_test | WORKS | 9/9 | External file drop support |
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -240,9 +254,28 @@ Organized in `wasm-app/standalone/` folders:
|
|||
14. **wxHtmlWindow** - About dialogs, error message formatting
|
||||
15. **wxStyledTextCtrl** - DRC rules editor, Python console, script editors
|
||||
16. **wxPrinting** - Print preview, print dialog, browser print via window.print()
|
||||
17. **wxDragDrop** - External file drops via HTML5 drag and drop API
|
||||
|
||||
### Untested for KiCad
|
||||
1. Drag and drop (HTML5 file drop support)
|
||||
### Untested for KiCad - Identified Gaps
|
||||
|
||||
Based on comprehensive audit of KiCad's wxWidgets usage (~85 classes, ~105 event types):
|
||||
|
||||
| Feature | KiCad Usage | Priority | Status |
|
||||
|---------|-------------|----------|--------|
|
||||
| wxPropertyGrid | Property panels in ALL editors | CRITICAL | NOT TESTED |
|
||||
| wxPropertyGridManager | Multi-page property organization | CRITICAL | NOT TESTED |
|
||||
| wxListCtrl virtual mode | Large component lists (10000+ items) | HIGH | NOT TESTED |
|
||||
| wxDataViewCtrl virtual mode | Zone Manager, Net Inspector (large data) | HIGH | NOT TESTED |
|
||||
| wxColourPickerCtrl | Color preferences, layer colors | HIGH | NOT TESTED |
|
||||
| wxFontPickerCtrl | Font preferences | HIGH | NOT TESTED |
|
||||
| wxCollapsiblePane | Property panel grouping | HIGH | NOT TESTED |
|
||||
| wxAuiNotebook | Tab panels (variant) | MEDIUM | NOT TESTED |
|
||||
| wxInfoBar | Notifications | MEDIUM | NOT TESTED |
|
||||
| wxWizard | Footprint wizard | MEDIUM | NOT TESTED |
|
||||
| wxGrid cell editing | Property editing | MEDIUM | PARTIAL |
|
||||
| wxCalendarCtrl | Date selection | LOW | NOT TESTED |
|
||||
|
||||
**Current Coverage**: ~70% of KiCad-critical features tested
|
||||
|
||||
### Not Needed for KiCad
|
||||
1. wxRichTextCtrl - Disabled in WASM build, KiCad doesn't use it
|
||||
|
|
|
|||
Loading…
Reference in a new issue