Give hosts and terminals their own screen, and the rest of the vault another
ci / build and test (ubuntu) (pull_request) Canceled after 0s
ci / build (windows) (pull_request) Canceled after 0s

Rebuilds the client's shell from an imported design: a titlebar and nav rail
it draws itself, real multi-session tabs over the one WebView, a Ctrl+K host
search, and a vault screen that merges keys, passwords and pinned host keys
into one table. Hosts left the vault column for their own screen beside the
terminal, which is what the design asks for and turned out to be the better
split anyway.

Two screens the design shows have nothing behind them yet — file transfer
and teams — and say so plainly rather than rendering invented data; every
other gap between the design and this build is recorded in
docs/design-import-gaps.md.
This commit is contained in:
2026-07-31 08:39:37 +02:00
parent d162271a45
commit 9a76eced14
37 changed files with 4672 additions and 1347 deletions
@@ -0,0 +1,17 @@
using Avalonia.Controls;
namespace DodoSSH.Client.App.Views;
/// <summary>The Ctrl+K host search, overlaid on the window.</summary>
/// <remarks>
/// The keys it responds to are handled by <see cref="MainWindow"/> rather than here, because two of them —
/// Ctrl+K to open and Escape to close — have to work when this control does not exist yet or has just
/// stopped existing. Handling the arrows in the same place keeps the whole chord set in one method.
/// </remarks>
internal sealed partial class QuickConnect : UserControl
{
public QuickConnect() => InitializeComponent();
/// <summary>The box, so the window can put the caret in it the moment the palette opens.</summary>
internal TextBox QueryBox => Query;
}