Repository navigation
Stage J7-b: draggable workspace columns, a details drawer and a command bar - #122
Merged
Merged
Conversation
Before -> after: - Column widths: fixed by window width (characters 176-220 px, details 30 % of the page) -> a splitter between characters and Mods and one between Mods and details. Drag either, or focus it and use the arrow keys; the widths are kept in beta-shell.json (WorkspaceCharacterWidth, WorkspaceDetailWidth) and restored on the next start. - Bounds (RepositoryWorkspacePolicy.Layout, unit tested): characters 200-360 px, details 320-560 px, and the Mod list never under 280 px; a window too narrow for them falls back to the default layout as before. - The splitters take the old 12 px column gap, show an accent line on hover and focus, and have names and tooltips (new strings in zh-CN, en-US, ru-RU). A UI test drags the character column, restarts and checks the width. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Before -> after: - Narrow windows (no room for three columns): the details pane opened in a modal dialog from the Details button -> it opens as a drawer over the Mod list (the design canvas's half-screen board), at most 420 px wide, with an in-app acrylic surface, the system shadow, a title and a close button. - Opening: the Details button as before, and now also tapping a Mod. - Closing: the close button, Esc, switching to the presets view, or a window that becomes wide enough for the inline pane. Focus returns to the Details button. - The preview body scrolls inside the drawer; the deploy action stays pinned. ModDetailsDialog is removed. A UI test opens and closes the drawer in all those ways. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Before -> after: - Refresh, Import and Run launcher: three secondary buttons, which went to a row of their own below 720 px -> a CommandBar beside the title (refresh as an icon with a tooltip, the others with labels); below 720 px all three become icons with tooltips and stay beside the title. - View buttons (Files, Covers, Presets, Details, collapse): below 720 px they drop their labels and keep their tooltips. - At 670x530 the toolbar takes two rows instead of three, which leaves the lists and the details drawer more height. The automation ids (RefreshButton, ImportZipButton, RunLauncherButton) are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…h Retry Before -> after: - Delete Mod (list header), Delete slot and Delete preset: secondary buttons -> J8's DangerButtonStyle (red text and soft red fill); their confirmations and what they delete are unchanged. - A repository scan or a long action: only the status line said so -> also an indeterminate progress bar on the toolbar's lower edge, shown after 300 ms so quick scans do not flash it, and without moving the page. - A failed scan: a status line only -> also an error bar under the toolbar with Retry (the same refresh as the Refresh button); the next successful scan closes it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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
Stage J7-b: the Mod workspace's appearance and usage flow, after #120 moved it into its own page (
docs/development/UI-Fluent-Design-Plan.md, "Mod 工作区(J7)", and the 「工作台新布局」 design canvas).Before → after
084ed5bColumn widths:beta-shell.jsonand restored on the next start (decision 9 of the Fluent plan).RepositoryWorkspacePolicy, with unit tests.GridSplitter, so the limits apply during the drag.850acdaDetails on narrow windows:ModDetailsDialogis removed.80db98eCommands:CommandBarbeside the title. Under 720 px the commands and view buttons become icons with tooltips, and at 670×530 the toolbar takes two rows instead of three.88f2f70States:Deploy, remove, copy ownership (#107), rename migration (#108), the delete safety checks (#105, #109), preset restore, state slot saving and the logic behind
IWorkspaceHostare untouched. The only window files changed areMainWindow.Configuration.cs(loading and saving the two widths) andMainWindow.Localization.cs(command labels).Selection speed (median of 6, two runs each)
The app's own work on a character switch is about 7 ms in both builds. The rest is waiting for display frames, plus about 42 ms for the UI Automation check itself. Skipping each part of the switch (details reset, details fill, status text) didn't change the frame times, so that code is unchanged.
Not done from the Fluent plan's workspace section (possible next step):
ItemsView;SelectorBarinstead ofTabView;Test plan
scripts\test-all.ps1: Release build 0 warnings, Core coverage 94.0% line / 88.2% branchUI tests 58/58 on the same build. Two new ones:
The page round-trip tests still pass. The new tests wait for the settings file like Wait for the saved repository choice in the dashboard switch test #121.
Code-style check
84 screenshots (zh/en/ru × 1400×900, 1000×800, maximized and 670×530 × light/dark; preview, shortcut, slot and preset views, plus the drawer). No new Russian clipping beyond the existing ellipses on long character names.
Full package with the real mouse, no errors logged:
🤖 Generated with Claude Code