Benchmarks / CPU and I/O (per commit) (push) Successful in 1m53s
Benchmarks / Frame budget (on demand) (push) Skipped
Build and test / Desktop (Linux) (push) Failing after 2m50s
Build and test / Layer separation (push) Successful in 33s
Traceability / Requirement traces (push) Successful in 40s
🐳 Android image / Build and push (push) Successful in 4s
🐳 Windows image / Build and push (push) Successful in 1s
Build and test / android-image (push) Successful in 4s
Build and test / windows-image (push) Successful in 1s
Build and test / Android (aarch64) (push) Successful in 14m19s
Build and test / Windows (x86_64, cross) (push) Successful in 17m50s
Build and test / Publish the release (push) Skipped
Rating keys in the grid follow darktable's rule: with the pointer over a photograph outside the selection, 0-5, P, X and U judge that photograph alone; over one inside it, the whole selection, as before; off the grid, the selection. The hover is cleared when the grid scrolls, so a key after a wheel turn cannot judge whatever used to be under the pointer. Holding F and tapping digits filters by stars: one digit for exactly that many, two for everything between them, F alone to show every rating again. The filter gains a ceiling to do it (`max_rating`, one BETWEEN in the query). The place record carries it, and a record from an older build reads as having none. The star chips light across a capped range and the bar says "2-3★ only" beside them. The grid also takes Ctrl+E and Ctrl+Shift+E for the selection, Ctrl+V to paste onto it and Ctrl+A to select all. The "Gestures" button is now "Help", its sheet "Controls and shortcuts", and F1 opens it.
355 lines
13 KiB
Rust
355 lines
13 KiB
Rust
// @generated by `cargo run -p traceability -- gestures`. Do not edit.
|
|
//
|
|
// TRACES: FR-UI-4
|
|
//! The gesture vocabulary, as the application states it.
|
|
//!
|
|
//! Extracted from the tagged comments beside the code that implements each
|
|
//! one, so the help sheet cannot describe a gesture the application does not
|
|
//! have. Edit the comment beside the implementation, then regenerate with
|
|
//! `cargo run -p traceability -- gestures`.
|
|
|
|
/// One documented interaction, as drawn.
|
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
|
pub struct Gesture {
|
|
pub title: &'static str,
|
|
/// The place it applies, and the heading it is grouped under.
|
|
pub section: &'static str,
|
|
/// Empty where the gesture has no counterpart in that modality.
|
|
pub touch: &'static str,
|
|
pub pointer: &'static str,
|
|
pub keys: &'static str,
|
|
}
|
|
|
|
/// Every gesture, in the order the sections were first seen in the source.
|
|
pub const GESTURES: &[Gesture] = &[
|
|
Gesture {
|
|
title: "Set the white balance from the photograph",
|
|
section: "Develop",
|
|
touch: "Press \"pick\" in the group's heading, then tap something neutral in the picture",
|
|
pointer: "Press \"pick\", then click something neutral",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Magnify the photograph by any amount",
|
|
section: "Develop",
|
|
touch: "Pinch it with two fingers",
|
|
pointer: "The scroll wheel over it",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Move a magnified photograph about",
|
|
section: "Develop",
|
|
touch: "Drag it",
|
|
pointer: "Drag it",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Paint a mask by hand",
|
|
section: "Develop",
|
|
touch: "Choose Paint or Erase, then drag on the photograph",
|
|
pointer: "Choose Paint or Erase, then drag",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Take back the last change",
|
|
section: "Develop",
|
|
touch: "Tap the step above the current one in the History list",
|
|
pointer: "Click it, or press Undo in the History header",
|
|
keys: "Ctrl+Z",
|
|
},
|
|
Gesture {
|
|
title: "Do it again after taking it back",
|
|
section: "Develop",
|
|
touch: "Tap the step below the current one in the History list",
|
|
pointer: "Click it, or press Redo in the History header",
|
|
keys: "Ctrl+Shift+Z",
|
|
},
|
|
Gesture {
|
|
title: "Copy the settings from this photograph",
|
|
section: "Develop",
|
|
touch: "Press Copy in the top bar",
|
|
pointer: "Press Copy in the top bar",
|
|
keys: "Ctrl+C",
|
|
},
|
|
Gesture {
|
|
title: "Paste the settings onto this photograph",
|
|
section: "Develop",
|
|
touch: "Press Paste in the top bar",
|
|
pointer: "Press Paste in the top bar",
|
|
keys: "Ctrl+V",
|
|
},
|
|
Gesture {
|
|
title: "Choose which kinds of edit a copy carries",
|
|
section: "Develop",
|
|
touch: "Open Presets and toggle the kinds",
|
|
pointer: "Open Presets and toggle the kinds",
|
|
keys: "Ctrl+Shift+C, which offers Copy beside them",
|
|
},
|
|
Gesture {
|
|
title: "Export this photograph as the last one was",
|
|
section: "Develop",
|
|
touch: "Press Export in the top bar",
|
|
pointer: "Press Export in the top bar",
|
|
keys: "Ctrl+Shift+E",
|
|
},
|
|
Gesture {
|
|
title: "Choose how to export, then export",
|
|
section: "Develop",
|
|
touch: "Open Settings, then Export defaults",
|
|
pointer: "Open Settings, then Export defaults",
|
|
keys: "Ctrl+E",
|
|
},
|
|
Gesture {
|
|
title: "Change which group of adjustments is on screen",
|
|
section: "Develop",
|
|
touch: "Tap a group in the rail down the left",
|
|
pointer: "Click a group in the strip above the develop column",
|
|
keys: "[ and ] step through them, wrapping round through \"everything\"",
|
|
},
|
|
Gesture {
|
|
title: "Look at the photograph at 1:1",
|
|
section: "Develop",
|
|
touch: "Double-tap the photograph",
|
|
pointer: "Double-click it, or press the zoom readout floating over the canvas",
|
|
keys: "Z",
|
|
},
|
|
Gesture {
|
|
title: "Move to the next or previous photograph",
|
|
section: "Develop",
|
|
touch: "Tap a frame in the roll along the foot of the canvas",
|
|
pointer: "Click a frame in the roll",
|
|
keys: "Right arrow, D or space for the next; left arrow or A for the one before",
|
|
},
|
|
Gesture {
|
|
title: "See the photograph before you edited it",
|
|
section: "Develop",
|
|
touch: "Press and hold \"Before\"",
|
|
pointer: "Press and hold \"Before\"",
|
|
keys: "Hold \\",
|
|
},
|
|
Gesture {
|
|
title: "Put one control back to its default",
|
|
section: "Develop",
|
|
touch: "Double-tap its track",
|
|
pointer: "Double-click its track, or right-click it",
|
|
keys: "R, for the control last moved",
|
|
},
|
|
Gesture {
|
|
title: "See the photograph as a snapshot had it",
|
|
section: "Develop",
|
|
touch: "Press and hold the eye beside the snapshot",
|
|
pointer: "Press and hold the eye beside the snapshot",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Keep the photograph as it is now, under a name",
|
|
section: "Develop",
|
|
touch: "Type a name in the History panel and press Snapshot",
|
|
pointer: "Type a name in the History panel and press Snapshot",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Show or hide one mask layer",
|
|
section: "Develop",
|
|
touch: "Tap the ring at the head of its row",
|
|
pointer: "Click the ring at the head of its row",
|
|
keys: "H, for the selected layer history step, unlike holding \"Before\" — the layer really is off until it is switched back on.",
|
|
},
|
|
Gesture {
|
|
title: "Show or hide one mask on the photograph",
|
|
section: "Develop",
|
|
touch: "Tap the eye on its row",
|
|
pointer: "Click the eye on its row",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Leave one part out of a mask, and put it back",
|
|
section: "Develop",
|
|
touch: "Tap the ring on the part's row",
|
|
pointer: "Click the ring on the part's row",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Pick a collection up to rearrange the tree",
|
|
section: "Collections sidebar",
|
|
touch: "Press and hold it until it lifts, then drag it",
|
|
pointer: "Drag it, or hold it until it lifts and then drag",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Act on a collection — rename, nest, un-nest, delete",
|
|
section: "Collections sidebar",
|
|
touch: "Press and hold the collection, then let go without moving",
|
|
pointer: "Right-click it",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Take a collection back out of the one it is nested in",
|
|
section: "Collections sidebar",
|
|
touch: "Hold it, then drag it onto \"All photographs\" — or let go and choose \"Move to top level\"",
|
|
pointer: "Drag it onto \"All photographs\", or right-click it and choose \"Move to top level\"",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Rename a collection",
|
|
section: "Collections sidebar",
|
|
touch: "Hold the collection, then \"Rename\"",
|
|
pointer: "Double-click its name, or right-click it and choose \"Rename\"",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Pull a face out of the wrong person",
|
|
section: "People",
|
|
touch: "Tap the faces that do not belong, then \"Split off\"",
|
|
pointer: "Click the faces that do not belong, then \"Split off\"",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Rule on a suggested face",
|
|
section: "People",
|
|
touch: "Tick to confirm it, cross to reject it",
|
|
pointer: "Tick to confirm it, cross to reject it",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "See a person's photographs",
|
|
section: "People",
|
|
touch: "Choose them in the rail, then \"Show photos\"",
|
|
pointer: "Choose them in the rail, then \"Show photos\"",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Change how faces are grouped",
|
|
section: "People",
|
|
touch: "\"Grouping…\", move the dials, then Regroup",
|
|
pointer: "\"Grouping…\", move the dials, then Regroup",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Start selecting several photographs",
|
|
section: "Library grid",
|
|
touch: "Press and hold a photograph, or press Select in the header",
|
|
pointer: "Ctrl-click, or press Select in the header",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Add or remove one photograph",
|
|
section: "Library grid",
|
|
touch: "While selecting, tap it",
|
|
pointer: "Ctrl-click it",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Leave selecting",
|
|
section: "Library grid",
|
|
touch: "Press Done in the header",
|
|
pointer: "Press Done in the header",
|
|
keys: "Escape",
|
|
},
|
|
Gesture {
|
|
title: "Pick a photograph up to drag it",
|
|
section: "Library grid",
|
|
touch: "Press and hold it until a ring opens around it, then drag",
|
|
pointer: "Drag it",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Select a range",
|
|
section: "Library grid",
|
|
touch: "While selecting, press \"Select to…\", then tap the last photograph of the run",
|
|
pointer: "Shift-click the last photograph of the run",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Take the blinks out of a burst",
|
|
section: "Library grid",
|
|
touch: "Narrow to a person, then tap \"Eyes open\" beside their name on the filter bar",
|
|
pointer: "Narrow to a person, then click \"Eyes open\" beside their name on the filter bar",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Find photographs with two people in them",
|
|
section: "Library grid",
|
|
touch: "Open the People chip on the filter bar, tap each name, then switch the chip beside them to \"all of them\"",
|
|
pointer: "Open the People chip on the filter bar, click each name, then switch the chip beside them to \"all of them\"",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Export the selection as the last export was",
|
|
section: "Library grid",
|
|
touch: "Select them, then Export in the selection bar",
|
|
pointer: "Select them, then Export in the selection bar",
|
|
keys: "Ctrl+Shift+E, or Ctrl+E to see the export settings first",
|
|
},
|
|
Gesture {
|
|
title: "Paste copied settings onto the selection",
|
|
section: "Library grid",
|
|
touch: "Select them, then \"Paste to N\" in the selection bar",
|
|
pointer: "Select them, then \"Paste to N\"",
|
|
keys: "Ctrl+V",
|
|
},
|
|
Gesture {
|
|
title: "Show only photographs with some number of stars",
|
|
section: "Library grid",
|
|
touch: "Tap a star chip in the filter bar",
|
|
pointer: "Click a star chip in the filter bar",
|
|
keys: "Hold F and tap a digit for exactly that many stars, or two digits for everything between them; tap F alone to show every rating again",
|
|
},
|
|
Gesture {
|
|
title: "Resize the thumbnails",
|
|
section: "Library grid",
|
|
touch: "Pinch the grid with two fingers",
|
|
pointer: "Ctrl and the scroll wheel",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "File photographs in a collection",
|
|
section: "Library grid",
|
|
touch: "Drag a photograph — or a whole selection — onto a collection in the sidebar. Starting a drag stops the press becoming a hold, so it cannot leave you in selection mode.",
|
|
pointer: "Drag a photograph — or a whole selection — onto a collection in the sidebar",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Open a photograph",
|
|
section: "Library grid",
|
|
touch: "Tap it — a single tap, any length",
|
|
pointer: "Click it",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Rate a photograph without opening it",
|
|
section: "Library grid",
|
|
touch: "Tap a star on the cell",
|
|
pointer: "Hover the cell, then click a star",
|
|
keys: "0 to 5 with the pointer over it, or on the selection",
|
|
},
|
|
Gesture {
|
|
title: "Choose the frame a folded burst shows",
|
|
section: "Library grid",
|
|
touch: "Open the burst, then tap the ring on the frame you want",
|
|
pointer: "Open the burst, then click the ring on the frame you want",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Drop the selection but keep selecting",
|
|
section: "Library grid",
|
|
touch: "Press Clear in the selection strip",
|
|
pointer: "Press Clear in the selection strip",
|
|
keys: "",
|
|
},
|
|
Gesture {
|
|
title: "Select everything the grid is showing",
|
|
section: "Library grid",
|
|
touch: "While selecting, press \"Select all\"",
|
|
pointer: "While selecting, press \"Select all\"",
|
|
keys: "Ctrl+A",
|
|
},
|
|
Gesture {
|
|
title: "Take photographs out of a collection",
|
|
section: "Library grid",
|
|
touch: "Select them, then \"Collections…\" in the selection bar",
|
|
pointer: "Select them, then \"Collections…\" in the selection bar",
|
|
keys: "",
|
|
},
|
|
];
|