smillmorel
9a1baa07c2
feat: live canvas backend switching (Options → Canvas Backend)
...
Both backends share one SelectionState owned by MainWindow and live
side by side in a QStackedWidget — switching is setCurrentWidget, so
no widget is destroyed mid-session (tearing a VTK window down leaves
dangling make-current callbacks). The choice persists in QSettings.
CanvasCapabilities declares per-backend gaps (force diagrams and
video export stay PyVista-only, both are documented and greyed out)
and the UI gates on capabilities rather than the backend name. The
architecture gate now allows the canvas_plotly package.
2026-09-16 18:43:59 -04:00
..
catalog
feat: initial otko import
2026-09-08 02:12:15 -04:00
core
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
__init__.py
feat: initial otko import
2026-09-08 02:12:15 -04:00
test_architecture.py
feat: live canvas backend switching (Options → Canvas Backend)
2026-09-16 18:43:59 -04:00
test_ci_config.py
test: meta gates for architecture, CI, docs and packaging
2026-09-16 12:03:07 -04:00
test_combinations.py
feat: load combinations
2026-09-16 12:03:07 -04:00
test_diagram_renderer.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_docs.py
test: meta gates for architecture, CI, docs and packaging
2026-09-16 12:03:07 -04:00
test_elements.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_formatting.py
feat: shared unit-aware formatting helpers
2026-09-16 12:03:07 -04:00
test_grid_system.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_materials.py
chore: adopt remaining local development state
2026-09-16 12:03:22 -04:00
test_meta_gates.py
test: meta gates for architecture, CI, docs and packaging
2026-09-16 12:03:07 -04:00
test_node.py
chore: adopt remaining local development state
2026-09-16 12:03:22 -04:00
test_packaging.py
test: meta gates for architecture, CI, docs and packaging
2026-09-16 12:03:07 -04:00
test_pattern_factors.py
feat: initial otko import
2026-09-08 02:12:15 -04:00
test_phase8a.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_phase8b.py
chore: adopt remaining local development state
2026-09-16 12:03:22 -04:00
test_phase8c.py
chore: adopt remaining local development state
2026-09-16 12:03:22 -04:00
test_phase9.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_plotly_trace_builder.py
feat: pure Plotly trace builder for the 3D canvas
2026-09-16 18:43:53 -04:00
test_project.py
chore: adopt remaining local development state
2026-09-16 12:03:22 -04:00
test_renderer.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_section_shape.py
feat: initial otko import
2026-09-08 02:12:15 -04:00
test_smoke.py
feat: initial otko import
2026-09-08 02:12:15 -04:00
test_unit_labels.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_zerolength_section.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00