Skip to content

Redesign GUI around a menu-driven, low-button layout#454

Merged
JE-Chen merged 7 commits into
devfrom
feat/minimal-menu-ui
Jul 3, 2026
Merged

Redesign GUI around a menu-driven, low-button layout#454
JE-Chen merged 7 commits into
devfrom
feat/minimal-menu-ui

Conversation

@JE-Chen

@JE-Chen JE-Chen commented Jul 2, 2026

Copy link
Copy Markdown
Member

Summary

  • Move per-tab command buttons into a dynamic window-level Actions menu that rebuilds on tab switch; tabs keep only inputs, tables, and result/status widgets.
  • Core tabs declare actions at registration; feature tabs expose a menu_actions() hook returning [(label_key, handler), ...] — 46 of 48 registered tabs now provide actions (Script Builder and Remote Desktop intentionally keep their interactive panel layouts).
  • Buttons a window-level menu cannot replace stay in place: stacked-form per-page browse buttons (triggers), the visibility-toggled data-source browse button, stateful auto-refresh checkboxes (USB tabs).
  • Button-text mutation and findChild-based retranslation plumbing replaced by status-label updates; re-entry guards already existed in the handlers.

Testing

  • Offscreen integration audit: full main widget constructed, every registered tab's actions enumerated and callable.
  • pytest test/unit_test/headless/ — 3982 passed, 16 skipped (includes all GUI tab tests).
  • ruff clean on the whole gui/ package; bandit clean; radon introduces no new C-grade functions (the one C in triggers_tab pre-exists).

JE-Chen added 5 commits July 2, 2026 19:35
Move per-tab commands from in-tab buttons into a dynamic window-level
Actions menu so tabs stay minimal (inputs and results only). Core tabs
declare their actions at registration; feature tabs expose them via a
menu_actions() hook. Convert core tabs plus hotkeys, variables, secrets,
recording editor, and flow editor as the first batch.
Finish the menu-driven redesign started with the core tabs: every
registered feature tab now exposes its commands through menu_actions()
instead of in-tab buttons, so all tabs share the same minimal
inputs-and-results layout. Buttons that a window-level menu cannot
replace stay put: per-page browse buttons inside stacked trigger forms,
the visibility-toggled data-source browse button, and stateful
auto-refresh checkboxes. Button-text mutation and findChild retranslation
plumbing become status-label updates, with re-entry already guarded in
the handlers. Script Builder and Remote Desktop keep their interactive
panel layouts.
Every registered tab must surface its commands through the Actions
menu (registry actions or the menu_actions() hook); a missing hook
would silently strand a tab with no reachable commands now that the
in-tab buttons are gone.
The profiler enable button no longer swaps its text, so the key lost
its last reference.
@codacy-production

codacy-production Bot commented Jul 2, 2026

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 15 complexity · -3 duplication

Metric Results
Complexity 15
Duplication -3

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

JE-Chen added 2 commits July 3, 2026 10:27
Building the full tab set creates Qt widgets and native helper threads
whose teardown aborted the host interpreter long after the module
finished (CI: "Fatal Python error: Aborted" inside test_admin_client).
Run the probe in a child process and assert on its JSON report so the
rest of the headless suite stays deterministic.
HoughLinesP now returns (N, 4) instead of (N, 1, 4), so indexing the
middle axis unpacked scalars; reshape tolerates both layouts. MSER's
diversity pruning got strict enough to drop every region on flat
UI-style frames, so relax min_diversity progressively before reporting
that a frame has no text.
@sonarqubecloud

sonarqubecloud Bot commented Jul 3, 2026

Copy link
Copy Markdown

@JE-Chen JE-Chen merged commit ed66db2 into dev Jul 3, 2026
16 checks passed
@JE-Chen JE-Chen deleted the feat/minimal-menu-ui branch July 3, 2026 03:10
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.

1 participant