Move the instrumentation off the header and into About
The render backend, the layout class and the frame rate sat permanently in a 44px strip that also carries the only way out of develop, the undo pair, the panel toggle and the export button. They cost about 200 logical pixels, and a `HorizontalLayout` given less width than its children's minimums does not shrink them — it runs off the end. There was already a breakpoint hiding them below 820px, which is why a tablet in portrait (768) looked fine and landscape (1200) did not: above the breakpoint the readouts came back and pushed the header off the right-hand edge. A breakpoint that hides a problem at one size and not another is a workaround, and this removes the reason for it rather than moving it. They are diagnostics — read once when something looks wrong, and then not again — so they are in Settings under ABOUT, beside the version, which is where someone goes when they have a bug to report rather than a photograph to edit. The version is there for the same reason and comes from `CARGO_PKG_VERSION`, so the line cannot disagree with the binary showing it. The frame rate keeps its warning hue. It is the number that says whether the zero-copy display path is holding up, which is the assumption the whole display design rests on, and that is worth colour wherever it is shown. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -90,6 +90,20 @@ export component SettingsPage inherits Rectangle {
|
||||
/// What the cache currently holds. Empty hides the line.
|
||||
in property <string> cache-usage;
|
||||
|
||||
/// TRACES: FR-UI-2
|
||||
/// What is drawing, and how fast. These used to sit in the window's top
|
||||
/// strip, where they were three items of permanent furniture answering a
|
||||
/// question almost nobody asks twice — and on a tablet in landscape they
|
||||
/// were part of why the header ran off the screen.
|
||||
///
|
||||
/// They are diagnostics, so they belong where a person goes to look
|
||||
/// something up, not where they are looked at all day.
|
||||
in property <string> adapter;
|
||||
in property <string> backend;
|
||||
in property <int> fps;
|
||||
in property <string> layout-class;
|
||||
in property <string> app-version;
|
||||
|
||||
callback original-budget-changed(string);
|
||||
callback original-unlimited-toggled(bool);
|
||||
callback thumbnail-budget-changed(string);
|
||||
@@ -551,6 +565,65 @@ export component SettingsPage inherits Rectangle {
|
||||
}
|
||||
}
|
||||
|
||||
// --- about and diagnostics -------------------------------
|
||||
Rectangle {
|
||||
width: content.column;
|
||||
height: about-panel.preferred-height;
|
||||
|
||||
about-panel := Panel {
|
||||
width: 100%;
|
||||
spacing: Theme.gap;
|
||||
|
||||
PanelHeading { text: "ABOUT"; }
|
||||
|
||||
// The version first, because it is the one line anyone
|
||||
// is ever asked to quote. A bug report that names a
|
||||
// version names a commit.
|
||||
HorizontalLayout {
|
||||
spacing: Theme.gap;
|
||||
Label { text: "Version"; }
|
||||
Value { text: root.app-version; horizontal-stretch: 1; overflow: elide; }
|
||||
}
|
||||
|
||||
HorizontalLayout {
|
||||
spacing: Theme.gap;
|
||||
Label { text: "Graphics"; }
|
||||
Value {
|
||||
text: root.adapter + " (" + root.backend + ")";
|
||||
horizontal-stretch: 1;
|
||||
overflow: elide;
|
||||
}
|
||||
}
|
||||
|
||||
HorizontalLayout {
|
||||
spacing: Theme.gap;
|
||||
Label { text: "Frame rate"; }
|
||||
// Still earns the warning hue here. It is the
|
||||
// number that says whether the zero-copy path is
|
||||
// holding up, which is the assumption the whole
|
||||
// display design rests on.
|
||||
// `Caption` rather than `Value` here alone: it is
|
||||
// the one that carries `warn`, and the frame rate
|
||||
// is the one reading on this page that can be bad
|
||||
// news rather than merely a fact.
|
||||
Caption { text: root.fps + " fps"; warn: root.fps < 55; horizontal-stretch: 1; }
|
||||
}
|
||||
|
||||
HorizontalLayout {
|
||||
spacing: Theme.gap;
|
||||
Label { text: "Layout"; }
|
||||
Value { text: root.layout-class; horizontal-stretch: 1; }
|
||||
}
|
||||
|
||||
Caption {
|
||||
text: "Graphics and frame rate describe this session, "
|
||||
+ "not a setting — they are here so a bug report "
|
||||
+ "can quote them.";
|
||||
wrap: word-wrap;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// --- naming and destination ------------------------------
|
||||
//
|
||||
// Its own panel rather than more of the export one: format and
|
||||
|
||||
Reference in New Issue
Block a user