Put a scrollbar on the settings page

The page is several screens long, and nothing said so until something
had been scrolled. Same wrapping as the develop column; the bar sits at
the window's right edge, clear of the capped 680px form.
This commit is contained in:
2026-09-26 07:25:45 -04:00
parent 005dc3a835
commit f7df276295
3 changed files with 694 additions and 680 deletions
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -786,4 +786,4 @@ The badge on a cell says a photograph is filed in three collections and never wh
Beside the other whole-library passes, because it is one; the sidebar offers the same page under the trash.
<sub>`ui/dr-ui/ui/settings.slint:530`</sub>
<sub>`ui/dr-ui/ui/settings.slint:533`</sub>
+16 -2
View File
@@ -1,5 +1,5 @@
import { Theme } from "theme.slint";
import { Button, PanelHeading, Label, Value, Caption, Panel, ProgressBar, ActivityRow } from "widgets.slint";
import { Button, PanelHeading, Label, Value, Caption, Panel, ProgressBar, ActivityRow, ScrollBar } from "widgets.slint";
import { Segmented, TextRow, Check, SliderRow } from "controls.slint";
import { ExportImageOptions, ExportFileOptions } from "export.slint";
import { ScopeChips, ScopeKind } from "presets.slint";
@@ -302,8 +302,11 @@ export component SettingsPage inherits Rectangle {
}
}
Flickable {
Rectangle {
vertical-stretch: 1;
page-flick := Flickable {
width: parent.width;
height: parent.height;
viewport-height: content.preferred-height;
content := VerticalLayout {
@@ -1029,5 +1032,16 @@ export component SettingsPage inherits Rectangle {
}
}
}
// A bar for a pointer: the page is several screens long, and the bar is
// what says so before anything has been scrolled.
ScrollBar {
x: parent.width - self.width;
y: 0px;
viewport-y <=> page-flick.viewport-y;
viewport-height: page-flick.viewport-height;
visible-height: page-flick.height;
}
}
}
}