]> uap-core.de Git - rssreader.git/commitdiff
use spinbox for integer config input fields
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Fri, 12 Sep 2025 15:55:43 +0000 (17:55 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Fri, 12 Sep 2025 15:55:43 +0000 (17:55 +0200)
rss-application/src/main/kotlin/de/unixwork/rssreader/ConfigWindow.kt
ui-kotlin/src/main/kotlin/de/unixwork/ui/kotlin/Toplevel.kt

index 2151348918a2920932acf5b4a569641b244bd5dc..ee11ef8f3fc095faa5bee27f0d25a1116a92498b 100644 (file)
@@ -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() {
index b6a24ebb2592838a21952e2d3af8ed8de3a72d74..0a6a580827f73a23284a2bbfcd80840ecc00ffba 100644 (file)
@@ -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);
         }