diff --git a/docs/manual-checks.md b/docs/manual-checks.md index c84a6c8..bdd01f2 100644 --- a/docs/manual-checks.md +++ b/docs/manual-checks.md @@ -882,6 +882,23 @@ the drop are covered by nothing. What *is* automated is the decision each drag e `HostGridTests.TheGroupCardsAreWhatAcceptsADroppedHost` raises a real `DragOver` over both kinds of card — and the write at the end, `ShellFlowTests.MovingAHostToAGroup_FilesItAndTakesItOffTheLevelItCameFrom`. +### 7.6a Dragging a whole set onto a group card · **also uncovered, and the same reason** + +Tick three hosts (7.7a is how), then pick one of the three up and drag it onto a group card. + +**Pass:** the card marks itself exactly as it does for one host, and the drop files **all three** — the +status line says how many, and all three leave the level. Ticking nothing and dragging a single card still +files that one card, which is what this gesture has always done. + +**And a card that is not in the set** drags alone: press one of the unticked cards and the ticks come off +before the drag starts, so what lands is the one machine that was under the pointer. + +**Failure means:** a drag that filed one of three is the payload having been built from the card rather than +from the set — the thing this gesture must never do quietly, since the other two stay behind looking filed. +The write is `ShellFlowTests.DroppingTheChosenHostsOnAGroupCard_FilesEveryOneOfThem` and the drag event's +answer is `HostGridTests.AGroupCardTakesAWholeSetOfDraggedHosts`; the platform's half of it is covered by +nothing, as 7.6 explains. + ### 7.7 A click still selects, and a double click still connects Click host cards; drag one a few pixels without releasing; double-click one. Then double-click the space @@ -897,6 +914,33 @@ double-tap handler has lost its check that the pointer was over a card. **And the same two gestures on the group cards above**, where they mean select and open rather than select and connect — the space around *those* cards must open nothing, for the same reason. See 3.2. +### 7.7a Choosing several cards with Ctrl, Shift and a band · **the desktop's half of the phone's set** + +With four or more hosts in the grid: Ctrl-click two cards, Shift-click a third, then drag a rectangle out +over the cards starting from the empty space below them. Finally press Esc, and try Ctrl+A. + +**Pass:** each ticked card takes a ✓ beside its status dot and a filled surface, and the strip beside the +HOSTS heading counts them. A Ctrl-click does **not** move the selection — whichever card was lit before +stays lit, and the drawer, if it is open, goes on showing the same machine. Shift ticks the whole run +between the anchor and the card, in the order the cards are laid out. The band draws an accent rectangle +that follows the pointer and ticks every card it *touches*, unticking them again as it is pulled back off. +Ctrl+A ticks every card being drawn — with something in the find box, that is the ones on screen and not the +ones it is hiding. Esc, CLEAR, a plain click on a card and a click on the empty space each drop the set. + +**And the menu is about the set while one is up:** right-click a ticked card and the entries are Connect, +Browse files and Edit… only while exactly one is ticked, then Change group…, Move to another vault…, Copy to +another vault…, Duplicate and Delete… — the last naming the count. Right-clicking a card **outside** the set +drops the set and gives the ordinary four back, aimed at that card. + +**Also check the band does not start** on the scrollbar, on a group card, or inside a panel above the grid, +and that dragging the scrollbar still scrolls. + +**Failure means:** a Ctrl-click that also selects is the press not being handled on the way down, and it +puts the drawer on a machine somebody is removing from a set. A menu offering both halves at once is the +`IsVisible` bindings in `HostsScreen.axaml` having come apart, which is how the wrong machine gets deleted. +`HostGridTests` drives all of these headlessly; what it cannot see is the rectangle actually being painted +and the two marks being legible together, which is what this check is for. + ### 7.8 The highlight clears after a drag that goes nowhere Drag a host over a group card and release outside the grid, or press Escape mid-drag. diff --git a/src/DodoSSH.Client.App/App.axaml b/src/DodoSSH.Client.App/App.axaml index 023eb37..b627b02 100644 --- a/src/DodoSSH.Client.App/App.axaml +++ b/src/DodoSSH.Client.App/App.axaml @@ -647,6 +647,23 @@ + + +