You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Draw the Move-to-Applications window in the Kcap theme - #1239
The window macOS shows when the app runs from the disk image, or anywhere outside Applications, was built from Fluent defaults: a grey title bar over a black body, grey buttons and tight line height. It is now its own InstallLocationWindow on the Kcap theme. The canvas extends into the title bar, Quit is a kcapChip and Move is a kcapPrimary, and the body text uses subtitle line height. Above the text, the app icon points at a blue folder. Its copy names the app instead of opening with "It is…". A failed move shows in a danger panel whose text can be selected, and the button reads "Moving…" while the move runs.
Where to look
The window sizes itself to its content height. The headless platform can't lay that out, but no test builds this window.
Verification
Launched the Debug build from a Fake.app bundle outside Applications: the guard opened the new window, checked by eye.
dotnet run --project test/Capacitor.App.Tests.Unit: 2811 passed, 0 failed.
Move-to-Applications window redrawn in the Kcap theme
✨ Enhancement🕐 20-40 Minutes
AI Description
• Replaces the ad-hoc Fluent-styled Move-to-Applications dialog with a dedicated
InstallLocationWindow on the Kcap theme.
• Canvas background extends into the title bar, with kcapChip/kcapPrimary buttons, subtitle
line-height copy, and an icon-to-folder graphic.
• Copy now names the app explicitly instead of "It is…", errors render in a selectable danger panel,
and the Move button shows "Moving…" while in flight.
• App.BuildInstallLocationWindow shrinks to a thin factory delegating layout and interaction to
the new view.
Diagram
graph TD
A["App.axaml.cs Guard"] --> B["BuildInstallLocationWindow()"] --> C["InstallLocationWindow.axaml"]
C --> D["InstallLocationWindow.axaml.cs"]
D --> E["ApplicationsMover"]
D --> F["WindowChrome.BeginDrag"]
C --> G["Kcap Theme Resources"]
Loading
High-Level Assessment
Extracting the dialog into a themed Window subclass mirrors the pattern already used by other app windows (LifecyclePromptWindow, SignInWindow, etc.), keeping styling centralized in Kcap theme resources rather than duplicating Fluent defaults. This is the right approach for consistency with the rest of the app; no meaningfully different architecture was worth considering here.
• New XAML view with extended client area, app-icon-to-folder graphic, subtitle-style headline/body text, a selectable-text danger panel for errors, and kcapChip/kcapPrimary buttons.
InstallLocationWindow.axaml.csAdd code-behind for move/quit interaction and error/progress states+41/-0
Add code-behind for move/quit interaction and error/progress states
• Wires the Move and Quit buttons, toggles a 'Moving…' button state during the async move, surfaces move errors in the danger panel, and hooks window drag via WindowChrome.
App.axaml.csSimplify BuildInstallLocationWindow to delegate to new view+4/-44
Simplify BuildInstallLocationWindow to delegate to new view
• Removes the inline Fluent-styled StackPanel/Button construction and error handling, updates the explanation copy to name the app explicitly, and returns a new InstallLocationWindow instance instead.
1. The illustration gets a redundant comment✗ Dismissed
Description
The comment above the icon, arrow, and folder describes the illustration rather than a
behavior-critical constraint. The adjacent markup and Move to Applications heading already convey
that meaning, leaving a later editor redundant prose to maintain.
ⓘ Recommendations generated based on similar findings in past PRs
Evidence
The added comment describes the icon-to-folder illustration immediately below it; it does not
document a non-obvious constraint required by the checklist item.
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution
## Issue description
The comment describes what the adjacent illustration already shows.
## Fix Focus Areas
- src/Capacitor.App/Views/InstallLocationWindow.axaml[15-15]
## Recommended Fix
Remove the comment.
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
Review mode: ⚖️ Balanced: This is a localized UI and interaction change with asynchronous move/error handling, window lifecycle behavior, and platform-specific Avalonia theming, so it warrants a careful single-pass review.
Tip of the day
💡 Did you know, you can route each severity your way: inline, summary, both, or drop
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
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.
Closes #1238 — AI-3370
What & why
The window macOS shows when the app runs from the disk image, or anywhere outside Applications, was built from Fluent defaults: a grey title bar over a black body, grey buttons and tight line height. It is now its own
InstallLocationWindowon the Kcap theme. The canvas extends into the title bar, Quit is akcapChipand Move is akcapPrimary, and the body text uses subtitle line height. Above the text, the app icon points at a blue folder. Its copy names the app instead of opening with "It is…". A failed move shows in a danger panel whose text can be selected, and the button reads "Moving…" while the move runs.Where to look
The window sizes itself to its content height. The headless platform can't lay that out, but no test builds this window.
Verification
Fake.appbundle outside Applications: the guard opened the new window, checked by eye.dotnet run --project test/Capacitor.App.Tests.Unit: 2811 passed, 0 failed.Visuals
Before
After