Skip to content

M7a review carry-overs: options-bar unit resync + test/polish niceties #89

Description

@Rowee13

Carry-over from the M7a per-task and final whole-branch reviews (Wall tool, shipped v0.2.1). All non-blocking; the final review verdict was "ready to release."

Small bug — options-bar unit resync (self-healing). WallOptionsBar's Thickness/Height fields are only refreshed on tool-switch. Changing units via the Units menu, or New/Open with a different document unit, while the Wall tool is active leaves the field text stale until the next tool switch or field edit (the tool's stored meters stay correct — display only). Fix: call self._refresh_tool_options() at the end of _set_units_metric / _set_units_imperial / _reset_document in main_window.py (additive; respect issue #48 — do not reflow the file).

Test/polish niceties:

  • test_wall_geometry.py asserts outward winding for only the bottom face (axis-aligned). Add an all-6-faces outward-winding + directed-edge-consistency assertion for a diagonal segment (geometry is load-bearing for the kernel/renderer; correctness was proven in review but not test-guarded).
  • test_wall_commands.py: assert undo-after-degenerate is a no-op (guarded in code, not asserted).
  • test_wall_tool.py: assert the Key_Return/Key_Enter end-chain branch (identical path to the tested Esc branch).
  • WallTool._scene is stored in activate but never read — remove the dead field.
  • WallOptionsBar.__init__ lacks a parent=None param that sibling docks (tags_dock, materials_dock) accept — add for convention parity.
  • Note (accepted, mirrors LineTool): WallTool.apply_typed_value computes the typed length as a world-space magnitude before converting the endpoint to local; under a non-uniform-scale active context the local segment length can differ from the typed meters. Revisit if VCB semantics change.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions