Regenerate the traceability matrix
The platform layer was never scanned, so every FR-PLAT-* and NFR-PORT-* tag in dr-plat was invisible. Coverage 51.4% -> 57.6%, almost all of it pre-existing tags that were simply not being counted.
This commit is contained in:
+18
-5
@@ -275,6 +275,13 @@ export component AppWindow inherits Window {
|
||||
in property <string> adapter: "detecting…";
|
||||
in property <string> backend: "—";
|
||||
in property <int> fps: 0;
|
||||
/// TRACES: FR-DSP-8
|
||||
/// The display showing the canvas and the colour transform it is getting.
|
||||
/// Shown under ABOUT in Settings; see `settings.slint` for why the second
|
||||
/// one is a sentence rather than a name.
|
||||
in property <string> display-name: "detecting…";
|
||||
in property <string> display-colour: "detecting…";
|
||||
in property <string> display-others: "";
|
||||
/// TRACES: FR-UI-2
|
||||
/// Set from `CARGO_PKG_VERSION`, so the About line cannot disagree with
|
||||
/// the binary it is part of.
|
||||
@@ -1267,6 +1274,9 @@ in property <bool> panel-visible: true;
|
||||
fps: root.fps;
|
||||
layout-class: root.layout-class;
|
||||
app-version: root.app-version;
|
||||
display-name: root.display-name;
|
||||
display-colour: root.display-colour;
|
||||
display-others: root.display-others;
|
||||
|
||||
original-budget: root.settings-original-budget;
|
||||
original-unlimited: root.settings-original-unlimited;
|
||||
@@ -1700,11 +1710,14 @@ in property <bool> panel-visible: true;
|
||||
// that far. Below 1:1 it stays smooth, where filtering is
|
||||
// what keeps the image from aliasing.
|
||||
//
|
||||
// This matters even at moderate zoom on a HiDPI display:
|
||||
// the canvas is rendered at *logical* size and Slint scales
|
||||
// it up by the device pixel ratio, so the buffer is
|
||||
// resampled on its way to the screen whatever the pipeline
|
||||
// did.
|
||||
// TRACES: FR-DSP-8
|
||||
// The canvas is rendered at the *physical* pixel size of
|
||||
// the box this image occupies, so `contain` presents it
|
||||
// 1:1 and neither filter is reached at all until the
|
||||
// photographer zooms. That is the point: on a fractionally
|
||||
// scaled desktop the buffer used to be a logical-sized one
|
||||
// that the compositor stretched, and no choice of filter
|
||||
// recovers detail that was never rendered.
|
||||
image-rendering: root.magnified
|
||||
? ImageRendering.pixelated
|
||||
: ImageRendering.smooth;
|
||||
|
||||
@@ -117,6 +117,25 @@ export component SettingsPage inherits Rectangle {
|
||||
in property <string> layout-class;
|
||||
in property <string> app-version;
|
||||
|
||||
/// TRACES: FR-DSP-8
|
||||
/// The display showing the canvas, and the colour it is being given.
|
||||
///
|
||||
/// These are the same kind of thing as the two above — a fact about the
|
||||
/// session, not a setting — with one difference that earns them their own
|
||||
/// row rather than a line in a log. FR-DSP-8's fallback is *defined* to be
|
||||
/// sRGB where the display server will not say otherwise, and a photographer
|
||||
/// being shown sRGB because their compositor has no colour-management
|
||||
/// protocol has no other way to find that out. `display-colour` says which
|
||||
/// of the acquisition paths this session is on, in words.
|
||||
in property <string> display-name;
|
||||
in property <string> display-colour;
|
||||
/// The *other* monitors, where there are any. Empty on a single-display
|
||||
/// desktop, which is why the row below is conditional: FR-DSP-8 is about
|
||||
/// the second display, and the failure it names is invisible from the
|
||||
/// first, so this page has to be readable about a monitor the reader is
|
||||
/// not currently looking at.
|
||||
in property <string> display-others;
|
||||
|
||||
callback original-budget-changed(string);
|
||||
callback original-unlimited-toggled(bool);
|
||||
callback thumbnail-budget-changed(string);
|
||||
@@ -708,10 +727,46 @@ export component SettingsPage inherits Rectangle {
|
||||
Value { text: root.layout-class; horizontal-stretch: 1; }
|
||||
}
|
||||
|
||||
// TRACES: FR-DSP-8
|
||||
// Which display, and what colour it is being sent.
|
||||
HorizontalLayout {
|
||||
spacing: Theme.gap;
|
||||
Label { text: "Display"; }
|
||||
Value {
|
||||
text: root.display-name;
|
||||
horizontal-stretch: 1;
|
||||
overflow: elide;
|
||||
}
|
||||
}
|
||||
|
||||
HorizontalLayout {
|
||||
spacing: Theme.gap;
|
||||
Label { text: "Display colour"; }
|
||||
Value {
|
||||
text: root.display-colour;
|
||||
horizontal-stretch: 1;
|
||||
// Wraps rather than elides: this is the one
|
||||
// value on the page that is a sentence, and
|
||||
// eliding it would cut off the half that says
|
||||
// *why* — which is the half FR-DSP-8 asks for.
|
||||
wrap: word-wrap;
|
||||
}
|
||||
}
|
||||
|
||||
if root.display-others != "": HorizontalLayout {
|
||||
spacing: Theme.gap;
|
||||
Label { text: "Other displays"; }
|
||||
Value {
|
||||
text: root.display-others;
|
||||
horizontal-stretch: 1;
|
||||
wrap: word-wrap;
|
||||
}
|
||||
}
|
||||
|
||||
Caption {
|
||||
text: "Graphics and frame rate describe this session, "
|
||||
+ "not a setting — they are here so a bug report "
|
||||
+ "can quote them.";
|
||||
text: "Graphics, frame rate and display colour "
|
||||
+ "describe this session, not a setting — they "
|
||||
+ "are here so a bug report can quote them.";
|
||||
wrap: word-wrap;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user