Ask where these photographs go once, not twice
The selection bar had "Add to collection" and "New collection" side by side. Both answer the same question — where do these go? — and the bar asked it before showing the list that decides it: a user who wants a collection they already have and a user who wants a new one press different buttons before either has seen what exists. "New collection…" moves into the filing sheet, under the list of collections. That is where you look after failing to find the one you wanted, and it is the only place the choice can be made informed. It also fixes the sheet's empty state, which said "Make one with + in the sidebar" — advice that cannot be followed on a tablet, where the sidebar is instantiated but not drawn. The first collection can now be made from the sheet that noticed there were none. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+45
-19
@@ -3377,8 +3377,14 @@ export component LibraryGrid inherits Rectangle {
|
||||
}
|
||||
}
|
||||
|
||||
// Points at the button below rather than at the sidebar's
|
||||
// `+`. On a tablet the sidebar is instantiated but not
|
||||
// drawn, so the old text sent the user to look for a
|
||||
// control that was not on the screen — and this sheet is
|
||||
// now the one place that can make a collection without
|
||||
// one.
|
||||
if root.collections.length == 0: Text {
|
||||
text: "No collections yet. Make one with + in the sidebar.";
|
||||
text: "No collections yet — make the first one below.";
|
||||
color: Theme.ink-faint;
|
||||
font-size: Theme.text-sm;
|
||||
wrap: word-wrap;
|
||||
@@ -3388,9 +3394,37 @@ export component LibraryGrid inherits Rectangle {
|
||||
|
||||
Rectangle { height: 1px; background: Theme.rule; }
|
||||
|
||||
Button {
|
||||
text: "Cancel";
|
||||
clicked => { root.filing = false; }
|
||||
HorizontalLayout {
|
||||
spacing: Theme.gap-sm;
|
||||
|
||||
Button {
|
||||
text: "Cancel";
|
||||
horizontal-stretch: 1;
|
||||
clicked => { root.filing = false; }
|
||||
}
|
||||
|
||||
// Filing a selection into a collection that does not exist
|
||||
// yet took four steps: make a collection, find it, select
|
||||
// the photographs again, add them. One press instead,
|
||||
// which is how a selection is usually meant.
|
||||
//
|
||||
// Here rather than on the bar because it is the answer to
|
||||
// a question this sheet has just asked and failed to
|
||||
// answer: the list above is every collection there is, and
|
||||
// this is what you press when none of them is the one.
|
||||
//
|
||||
// The naming sheet replaces this one rather than stacking
|
||||
// over it — two scrims deep is a place where dismissing
|
||||
// once looks like it did nothing.
|
||||
Button {
|
||||
text: "New collection…";
|
||||
primary: true;
|
||||
horizontal-stretch: 1;
|
||||
clicked => {
|
||||
root.filing = false;
|
||||
root.naming = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3762,6 +3796,13 @@ export component LibraryGrid inherits Rectangle {
|
||||
// The drag is the faster gesture with a pointer and impossible
|
||||
// with one finger on a grid that scrolls, which is the whole
|
||||
// reason this button exists.
|
||||
//
|
||||
// The only filing button on the bar. "New collection" used to sit
|
||||
// beside it, which put the same decision — where do these go? — in
|
||||
// front of the user twice, before they had seen the list that
|
||||
// answers it. The sheet asks once and offers "New collection…"
|
||||
// underneath its list, which is where you look after failing to
|
||||
// find the one you wanted.
|
||||
if !root.ranging && root.selected-count > 0: Button {
|
||||
text: "Add to collection";
|
||||
y: (parent.height - self.height) / 2;
|
||||
@@ -3772,21 +3813,6 @@ export component LibraryGrid inherits Rectangle {
|
||||
}
|
||||
}
|
||||
|
||||
// Filing a selection into a collection that does not exist yet
|
||||
// took four steps: make a collection, find it, select the
|
||||
// photographs again, add them. One press instead, which is how
|
||||
// a selection is usually meant.
|
||||
// No longer "…from selection": the sheet it opens says
|
||||
// "New collection holding 12 photographs" at the top, so a
|
||||
// button repeating it is width the strip does not have on a
|
||||
// tablet in portrait.
|
||||
if !root.ranging && root.selected-count > 0: Button {
|
||||
text: "New collection";
|
||||
primary: true;
|
||||
y: (parent.height - self.height) / 2;
|
||||
clicked => { root.naming = true; }
|
||||
}
|
||||
|
||||
// TRACES: FR-CAT-5 | FR-CAT-6
|
||||
// Keyword the selection. Beside the two filing buttons because
|
||||
// they are the same thought — these photographs are *of*
|
||||
|
||||
Reference in New Issue
Block a user