Redesign GUI around a menu-driven, low-button layout#454
Merged
Conversation
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.
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 15 |
| Duplication | -3 |
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.
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.
|
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.



Summary
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).findChild-based retranslation plumbing replaced by status-label updates; re-entry guards already existed in the handlers.Testing
pytest test/unit_test/headless/— 3982 passed, 16 skipped (includes all GUI tab tests).ruffclean on the wholegui/package;banditclean;radonintroduces no new C-grade functions (the one C in triggers_tab pre-exists).