Merged
Conversation
b51c85a to
3525a8d
Compare
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
65a7987 to
b1f3c8e
Compare
This was referenced Mar 20, 2026
Merged
f5989b5 to
c7aa285
Compare
05a9742 to
c6eb219
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
This PR introduces an “alignment mode” for the Waveform plot widget, adding a compact alignment panel plus plot overlays to support positioner-based alignment and fit-driven moves.
Changes:
- Add alignment mode UI (toolbar toggle + top side panel) and wiring in
Waveform. - Introduce
WaveformAlignmentPanel(embedded positioner control + compact LMFit + target controls) andWaveformAlignmentController(marker/target overlays + action forwarding). - Add unit tests covering alignment mode behavior in
Waveform, plus dedicated tests for the panel and controller; adjust LMFit compact dialog sizing behavior.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/unit_tests/test_waveform.py | Adds integration-style tests for alignment mode toggling, positioner resolution, overlays, and DAP interactions. |
| tests/unit_tests/test_alignment_panel.py | Adds unit tests validating alignment panel signal forwarding and fit-action filtering. |
| tests/unit_tests/test_alignment_controller.py | Adds unit tests for controller overlay lifecycle, target bounds behavior, and move request emissions. |
| bec_widgets/widgets/plots/waveform/waveform.py | Wires alignment mode into Waveform (toolbar bundle, side panel, context building, move handling, lifecycle hooks). |
| bec_widgets/widgets/plots/waveform/utils/alignment_panel.py | New compact alignment panel widget (positioner control, compact LMFit, target controls, theme styling). |
| bec_widgets/widgets/plots/waveform/utils/alignment_controller.py | New controller managing plot overlays and synchronizing panel state/actions. |
| bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py | Improves size policies for the compact LMFit dialog when embedded. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
1df8f85 to
5a86a65
Compare
wakonig
approved these changes
Mar 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Add alignment mode to the Waveform widget.
This introduces a new toolbar action that opens a dedicated alignment panel with:
PositionerControlLinebound to the active x-axis positionerLMFitDialogshowing existing DAP fitsMoveaction for fittedcenterMove To TargetThe implementation adds dedicated alignment panel/controller utilities and wires them into
Waveform. It also updates the compact LMFit dialog sizing so it embeds cleanly in the panel.Related Issues
Type of Change
How to test
Moveoncenter, activate target line, drag it, and move usingMove To Targetindex/timestamp; the warning label should appear with instruction what to do to be able to use panel againAdditional Comments
Light-mode colors could still be tuned further; current readability is improved but could use another pass.