Repository navigation
GUI: searchable navigation panel, token-based dark and light themes, tabs built on first open - #502
Merged
Merged
Conversation
…t themes, and tabs built on first open Forty-five of the 48 tabs could only be reached through View > Tabs > category, the window built every one of them before showing three, and its look was a third-party sheet that could not be adjusted. The panel lists every feature and searches it (Ctrl+K), the theme comes from one set of tokens, and a tab's module is imported when the tab is opened. The qt_material guard test goes with the import it guarded, so the main-window tests it kept skipped in CI now run there.
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 149 |
| Duplication | 0 |
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.
|
❌ The last analysis has failed. |
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
The first two tasks of plan F (
docs/superpowers/plans/2026-10-02-f-gui.md): the window gets a navigation panel with search, its own dark and light themes, and tabs that are built when they are first opened.gui/navigation.py). Every registered tab is listed on the left under its category, open or not. The search box filters by title, key or category; Return opens the first match.Ctrl+Kfocuses the search,Ctrl+Bhides or shows the panel. Until now 45 of the 48 tabs were only reachable through View → Tabs → category.gui/theme.py).ThemeTokensholds the colours, radius, spacing and font family;DARKandLIGHTare two values of it; the style sheet and a matching palette are generated from them. View → Theme switches.main_window.pyno longer importsqt_material.gui/tab_registry.py). 48TabSpecrows;TabEntry.widgetcalls its factory on first access. The workspace builds 8 widgets at start instead of 48.show_tab/hide_tab/list_registered_tabskeep their signatures;activate_tab(key)andcurrent_tab_key()are new.Behaviour changes
AutoControlGUIWidgethas to open the tab first (show_tab(key)or readingentry.widget).AutoControlGUIWidgetitself is unchanged for PyBreeze: same class, sametabs, same registry API.[gui]extra still listsqt-material; removing it is inProgress.md.Measured
Windows 11, Python 3.14, offscreen,
AutoControlGUIWidget()from a cold interpreter, four runs each:je_auto_controlmodules importedMost of what is left is the facade import and the Remote Desktop and Script Builder tabs, which open by default.
Tests
test_gui_lazy_registry.py(50) andtest_gui_workspace_navigation.py(17), the Qt parts in child processes.test_qt_material_guard.pyis removed with the import it guarded, and the threeimportorskip("qt_material")lines with it, sotest_r3_gui_main_window.py, the tabs-menu leak test and the window-listener test run in CI for the first time.ruff,bandit,radon cc -ncclean;typing_contract_verify.pywithmypy==2.3.0reports 0 failing modules on all three targets.WA_DontShowOnScreen).Not in this PR
Listed in
Progress.md› 跨平台與 GUI 全面改版: page content is squeezed rather than scrolled in a narrow window; theme and panel state are not remembered between runs; tab close buttons are Fusion's; Remote Desktop and Script Builder are still built at start; F3 (workers, cancel, close) and F4 (benchmarks, parity) have not started.