Name the eye pass on the People screen

Once every image has been through the detector and only readings are
left — the state an already-indexed library is in the day the eye models
arrive — the button reads "Read eye state" rather than promising to
index, and the coverage line says what the faces are waiting for.
This commit is contained in:
2026-09-19 14:24:16 +02:00
parent facb44cb55
commit f79a76f2d5
6 changed files with 47 additions and 15 deletions
+2
View File
@@ -406,6 +406,7 @@ export component AppWindow inherits Window {
in property <string> identity-back-label: "‹ Library";
in property <string> identity-coverage;
in property <bool> identity-coverage-complete: false;
in property <bool> identity-coverage-read-only: false;
in property <int> identity-picked: 0;
/// The namesake merge the Identity screen is offering. See IdentityScreen.
in property <string> identity-merge-offer-name;
@@ -1419,6 +1420,7 @@ in property <bool> panel-visible: true;
back-label: root.identity-back-label;
coverage: root.identity-coverage;
coverage-complete: root.identity-coverage-complete;
coverage-read-only: root.identity-coverage-read-only;
merge-offer-name: root.identity-merge-offer-name;
merge-offer-faces: root.identity-merge-offer-faces;
name-revision: root.identity-name-revision;
+7 -1
View File
@@ -270,6 +270,12 @@ export component IdentityScreen inherits Rectangle {
// hides the reason the rest are outstanding.
in property <string> coverage;
in property <bool> coverage-complete: false;
/// TRACES: FR-CULL-8a
/// Every image has been through the detector and only faces are left to
/// read — the eye pass over a library indexed before the eye models
/// existed. The same sweep, fetching the same originals; the button says
/// what it will actually do.
in property <bool> coverage-read-only: false;
// No model on disk: face indexing cannot run at all (docs/faces.md §2.2).
in property <bool> model-missing: false;
in property <int> picked-count: 0;
@@ -616,7 +622,7 @@ export component IdentityScreen inherits Rectangle {
clicked => { root.confirm-all(); }
}
if !root.indexing && !root.model-missing && !root.coverage-complete: Button {
text: "Index faces";
text: root.coverage-read-only ? "Read eye state" : "Index faces";
clicked => { root.index-faces(); }
}
if root.indexing: Button {