Skip to content

feat: add live MDA status line#161

Open
gcharvin wants to merge 6 commits into
pymmcore-plus:mainfrom
gcharvin:codex/mr-mda-status-line
Open

feat: add live MDA status line#161
gcharvin wants to merge 6 commits into
pymmcore-plus:mainfrom
gcharvin:codex/mr-mda-status-line

Conversation

@gcharvin
Copy link
Copy Markdown
Contributor

@gcharvin gcharvin commented Apr 7, 2026

Summary

Add a small selectable status label to the MDA widget that reports acquisition progress while a sequence is running.

It includes:

  • frame count and expected total
  • current position/time/z indices when available
  • channel name when available
  • step state such as preparing, acquiring, autofocus, waiting, paused, canceled, finished, or error

Background

This came from using the GUI during TiEclipse MDA runs, where it was hard to tell whether the acquisition was waiting for the next event, still acquiring, paused, or finished.

Validation

  • python -m ruff check src/pymmcore_gui/actions/widget_actions.py
  • python -m compileall -q src/pymmcore_gui/actions/widget_actions.py

(cherry picked from commit eece798c96a0e1b28eed6149e40edb28c4771192)
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 7, 2026

Codecov Report

❌ Patch coverage is 98.11321% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 82.94%. Comparing base (76024ca) to head (02dedc6).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
src/pymmcore_gui/actions/widget_actions.py 98.11% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #161      +/-   ##
==========================================
+ Coverage   81.84%   82.94%   +1.10%     
==========================================
  Files          29       29              
  Lines        1807     1912     +105     
==========================================
+ Hits         1479     1586     +107     
+ Misses        328      326       -2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@gcharvin gcharvin changed the title Add live MDA status line feat: add live MDA status line Apr 7, 2026
@tlambert03
Copy link
Copy Markdown
Member

thanks @gcharvin, this feature is definitely critical. (screenshot for others to see what it adds)

image

It's something we've mocked up in various places in different ways (see pymmcore-plus/pymmcore-widgets#268 and also on our "bleeding edge" feature branch "christina ")

image

So, we can just merge this as strictly better than what we already have, but it might undergo visual structural changes. Specifically, I think the global status bar might be a better target for this info.

In general with your PRs, if I really like the idea, but had envisioned a different implementation, do you want me to just do it (either as changes to your PR or in a new PR)? or request changes and let you make them?

@tlambert03
Copy link
Copy Markdown
Member

side note: that one test fail here is genuinely due to this branch... The point is that signals from the core are not emitted synchronously on the main thread, so if you want to make assertions about widget state following some change, you should generally either use qtbot.waitUntil, or qtbot.waitSignal to ensure that the trigger has happened before checking the widget state

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