Skip to content

Conversation

@mprib
Copy link
Owner

@mprib mprib commented Jan 16, 2026

Summary

  • Add CalibrationResultsDisplay widget showing camera matrix, distortion coefficients, and fit quality metrics
  • Restructure layout to horizontal (results on left, video on right) - eliminates jumping UI elements
  • Rename intrinsic_calibration_dev_view.pyintrinsic_calibration_widget.py

Changes

CalibrationResultsDisplay (~100 lines):

  • QFormLayout with grouped sections: Fit Quality, Camera Matrix, Distortion
  • Always visible with placeholder values () until calibration
  • update_from_camera() populates from CameraData
  • reset() clears back to placeholders on recalibrate

Layout restructure:

  • Left column: Results panel (always visible)
  • Right column: Video display + controls
  • No more show/hide toggling

Test Plan

  • Type checking passes (basedpyright)
  • All 128 tests pass
  • Visual verification via widget visualization script

Closes #892
Closes #883
Refs #869, #870

mprib added 2 commits January 15, 2026 21:43
Add a CalibrationResultsDisplay widget that shows camera matrix parameters,
distortion coefficients, and fit quality metrics. The results panel is always
visible with placeholder values until calibration populates them.

Restructure the layout to horizontal (side-by-side):
- Left: Results panel (always visible)
- Right: Video display + controls

This eliminates jumping UI elements for better UX.

Rename intrinsic_calibration_dev_view.py to intrinsic_calibration_widget.py
and update class name accordingly.

Closes #892
Closes #883
Refs #869, #870
The test was using qsize() to drain the queue, but Python docs warn this
is unreliable in multithreaded contexts. This caused flaky failures on
macOS CI where a stale packet could arrive after the drain check but
before the seek.

- Use timeout-based drain instead of qsize() check
- Loop until we receive the expected frame_index after seek, discarding
  any stale packets from before pause took full effect

Refs #892
@mprib mprib merged commit 0e71e34 into 885-epic-video-playback-refactor Jan 16, 2026
9 checks passed
@mprib mprib deleted the 892-build-intrinsic-widget branch January 16, 2026 04:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants