a lightweight, interval-based utility to combat digital strain through "Ma" (intentional pauses) for the eyes and body.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix: extract spinbox settings to component

+12 -14
+12 -14
ui/settings.slint
··· 1 1 import { Button, ComboBox, CheckBox, Slider, TabWidget, LineEdit, SpinBox } from "std-widgets.slint"; 2 2 3 + component SettingsSpinBox inherits SpinBox { 4 + width: 90px; 5 + } 6 + 3 7 struct LevelEntry { 4 8 work-mins: int, 5 9 break-mins: int, ··· 92 96 alignment: start; 93 97 spacing: 8px; 94 98 Text { text: "Idle threshold:"; vertical-alignment: center; } 95 - SpinBox { 96 - width: 82px; 99 + SettingsSpinBox { 97 100 value <=> idle-threshold-mins; 98 101 minimum: 1; 99 102 maximum: 60; ··· 147 150 for level[i] in levels : HorizontalLayout { 148 151 spacing: 8px; 149 152 alignment: start; 150 - SpinBox { 151 - width: 86px; 153 + SettingsSpinBox { 154 + width: 104px; 152 155 value: level.work-mins; 153 156 minimum: 1; 154 157 maximum: 240; 155 158 edited(v) => { root.level-changed(i, { work-mins: v, break-mins: level.break-mins, break-extra-secs: level.break-extra-secs, label: level.label }); } 156 159 } 157 160 Text { text: "min →"; vertical-alignment: center; } 158 - SpinBox { 159 - width: 74px; 161 + SettingsSpinBox { 160 162 value: level.break-mins; 161 163 minimum: 0; 162 164 maximum: 120; 163 165 edited(v) => { root.level-changed(i, { work-mins: level.work-mins, break-mins: v, break-extra-secs: level.break-extra-secs, label: level.label }); } 164 166 } 165 167 Text { text: "m"; vertical-alignment: center; } 166 - SpinBox { 167 - width: 74px; 168 + SettingsSpinBox { 168 169 value: level.break-extra-secs; 169 170 minimum: 0; 170 171 maximum: 59; ··· 203 204 alignment: start; 204 205 spacing: 6px; 205 206 Text { text: "After"; vertical-alignment: center; } 206 - SpinBox { 207 - width: 74px; 207 + SettingsSpinBox { 208 208 value <=> long-break-after-cycles; 209 209 minimum: 2; 210 210 maximum: 20; 211 211 } 212 212 Text { text: "cycles, take a"; vertical-alignment: center; } 213 - SpinBox { 214 - width: 74px; 213 + SettingsSpinBox { 215 214 value <=> long-break-duration-mins; 216 215 minimum: 1; 217 216 maximum: 120; ··· 223 222 alignment: start; 224 223 spacing: 6px; 225 224 Text { text: "Reset cycle count if gap >"; vertical-alignment: center; } 226 - SpinBox { 227 - width: 74px; 225 + SettingsSpinBox { 228 226 value <=> long-break-gap-mins; 229 227 minimum: 5; 230 228 maximum: 240;