From: Olaf Wintermann Date: Fri, 12 Sep 2025 15:55:43 +0000 (+0200) Subject: use spinbox for integer config input fields X-Git-Url: https://uap-core.de/gitweb/?a=commitdiff_plain;h=6291d0c3d1fecbda3f2112d61aeed28310a2821b;p=rssreader.git use spinbox for integer config input fields --- diff --git a/rss-application/src/main/kotlin/de/unixwork/rssreader/ConfigWindow.kt b/rss-application/src/main/kotlin/de/unixwork/rssreader/ConfigWindow.kt index 2151348..ee11ef8 100644 --- a/rss-application/src/main/kotlin/de/unixwork/rssreader/ConfigWindow.kt +++ b/rss-application/src/main/kotlin/de/unixwork/rssreader/ConfigWindow.kt @@ -1,5 +1,6 @@ package de.unixwork.rssreader +import de.unixwork.ui.UiInteger import de.unixwork.ui.UiString import de.unixwork.ui.kotlin.Toplevel import de.unixwork.ui.kotlin.simpleWindow @@ -9,9 +10,9 @@ class ConfigWindow { val dateFormat: UiString val dateFormatToday: UiString - val defaultUpdateInterval: UiString - val minUpdateWaitTime: UiString - val autoUpdateStartDelay: UiString + val defaultUpdateInterval: UiInteger + val minUpdateWaitTime: UiInteger + val autoUpdateStartDelay: UiInteger val message: UiString @@ -23,9 +24,9 @@ class ConfigWindow { dateFormat = window.ui.string() dateFormatToday = window.ui.string() - defaultUpdateInterval = window.ui.string() - minUpdateWaitTime = window.ui.string() - autoUpdateStartDelay = window.ui.string() + defaultUpdateInterval = window.ui.integer() + minUpdateWaitTime = window.ui.integer() + autoUpdateStartDelay = window.ui.integer() message = window.ui.string() @@ -43,17 +44,17 @@ class ConfigWindow { row { rlabel("Default Update Interval") - textfield(value = defaultUpdateInterval) + spinbox(intValue = defaultUpdateInterval, min = 0.0, max = 1000000.0) } row { rlabel("Minimum Update Wait Time") - textfield(value = minUpdateWaitTime) + spinbox(intValue = minUpdateWaitTime, min = 0.0, max = 1000000.0) } row { rlabel("Auto Update Start Delay") - textfield(value = autoUpdateStartDelay) + spinbox(intValue = autoUpdateStartDelay, min = 0.0, max = 1000000.0) } } grid(margin = 12, rowspacing = 12) { @@ -80,17 +81,17 @@ class ConfigWindow { dateFormat.setString(App.settings.dateFormat) dateFormatToday.setString(App.settings.dateFormatToday) - defaultUpdateInterval.setString(App.settings.defaultRefreshInterval.toString()) - minUpdateWaitTime.setString(App.settings.minRefreshWaitTime.toString()) - autoUpdateStartDelay.setString(App.settings.autoRefreshStartDelay.toString()) + defaultUpdateInterval.setIntValue(App.settings.defaultRefreshInterval) + minUpdateWaitTime.setIntValue(App.settings.minRefreshWaitTime) + autoUpdateStartDelay.setIntValue(App.settings.autoRefreshStartDelay) } fun save() { App.settings.dateFormat = dateFormat.toString() App.settings.dateFormatToday = dateFormatToday.toString() - App.settings.defaultRefreshInterval = defaultUpdateInterval.toString().toInt() - App.settings.minRefreshWaitTime = minUpdateWaitTime.toString().toInt() - App.settings.autoRefreshStartDelay = autoUpdateStartDelay.toString().toInt() + App.settings.defaultRefreshInterval = defaultUpdateInterval.intValue() + App.settings.minRefreshWaitTime = minUpdateWaitTime.intValue() + App.settings.autoRefreshStartDelay = autoUpdateStartDelay.intValue() } fun show() { diff --git a/ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Toplevel.kt b/ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Toplevel.kt index b6a24eb..0a6a580 100644 --- a/ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Toplevel.kt +++ b/ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Toplevel.kt @@ -1567,6 +1567,18 @@ class Toplevel(obj: UiObject) { rangeValue?.let { spinbox.rangeValue(it) } + if(min != 0.0) { + spinbox.min(min) + } + if(max != 0.0) { + spinbox.max(max) + } + if(step != 0.0) { + spinbox.step(step) + } + if(digits != 0) { + spinbox.digits(digits) + } if(fill) { spinbox.fill(fill); }