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
..
__init__.py
feat: initial otko import
2026-09-08 02:12:15 -04:00
test_analysis_commands.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_analysis_runner.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_assign_load_pattern_name.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_assign_masses.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_assign_zls.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_canvas_backend_switch.py
feat: live canvas backend switching (Options → Canvas Backend)
2026-09-16 18:43:59 -04:00
test_canvas_grid_snap.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_case_forms.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_commands.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_constraint_and_display_dialogs.py
feat: initial otko import
2026-09-08 02:12:15 -04:00
test_convert_element_type.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_define_dialogs.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_draw_frame_tool.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_draw_node_tool.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_draw_truss_tool.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_grid_dialog.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_main_window.py
chore: adopt remaining local development state
2026-09-16 12:03:22 -04:00
test_material_dialog_concrete04.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_material_form_ranges.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_material_tester_dialog.py
feat: initial otko import
2026-09-08 02:12:15 -04:00
test_path_ts_dialogs.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_pattern_load_audit.py
feat: initial otko import
2026-09-08 02:12:15 -04:00
test_property_commands.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_property_forms.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_pushover_curve_units.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_run_analysis.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_section_extrusion.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_section_forms.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_selection.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_transforms.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_tree_multi_select.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_units_status_bar.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_update_element_fields.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00
test_viewport_axes.py
feat: initial otko import
2026-09-08 02:12:15 -04:00
test_working_plane.py
style: resolve the remaining ruff findings
2026-09-16 13:20:36 -04:00