Skip to content

Commit ad1bee5

Browse files
committed
fix: use proper keypad for integer values to prevent configuration errors
1 parent 725edd0 commit ad1bee5

File tree

5 files changed

+20
-2
lines changed

5 files changed

+20
-2
lines changed

rcp/components/forms/number_item.kv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,4 @@
1717
size_hint_x: None
1818
width: 250
1919
text: str(root.value)
20-
on_release: Factory.Keypad().show(root, 'value')
20+
on_release: Factory.Keypad(integer=root.integer).show(root, 'value')

rcp/components/forms/number_item.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from kivy.lang import Builder
44
from kivy.logger import Logger
5-
from kivy.properties import StringProperty, NumericProperty
5+
from kivy.properties import StringProperty, NumericProperty, BooleanProperty
66
from kivy.uix.boxlayout import BoxLayout
77

88
log = Logger.getChild(__name__)
@@ -15,6 +15,7 @@
1515
class NumberItem(BoxLayout):
1616
name = StringProperty("")
1717
value = NumericProperty(0.0)
18+
integer = BooleanProperty(False)
1819
help_file = StringProperty("")
1920

2021
def validate(self, value):

rcp/components/setup/formats_screen.kv

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,26 +25,32 @@
2525
NumberItem:
2626
name: "Metric Position Digits"
2727
value: int(root.formats.metric_position.replace("{:+0.", "").replace("f}", ""))
28+
integer: True
2829
on_value: root.formats.metric_position = "{:+0." + str(self.value) + "f}"
2930
NumberItem:
3031
name: "Metric Speed Digits"
3132
value: int(root.formats.metric_speed.replace("{:+0.", "").replace("f}", ""))
33+
integer: True
3234
on_value: root.formats.metric_speed = "{:+0." + str(self.value) + "f}"
3335
NumberItem:
3436
name: "Imperial Position Digits"
3537
value: int(root.formats.imperial_position.replace("{:+0.", "").replace("f}", ""))
38+
integer: True
3639
on_value: root.formats.imperial_position = "{:+0." + str(self.value) + "f}"
3740
NumberItem:
3841
name: "Imperial Speed Digits"
3942
value: int(root.formats.imperial_speed.replace("{:+0.", "").replace("f}", ""))
43+
integer: True
4044
on_value: root.formats.imperial_speed = "{:+0." + str(self.value) + "f}"
4145
NumberItem:
4246
name: "Angle Format Digits"
4347
value: int(root.formats.angle_format.replace("{:+0.", "").replace("f}", ""))
48+
integer: True
4449
on_value: root.formats.angle_format = "{:+0." + str(self.value) + "f}"
4550
NumberItem:
4651
name: "Default Font Size"
4752
value: int(root.formats.font_size)
53+
integer: True
4854
on_value: root.formats.font_size = int(self.value)
4955

5056
TitleItem:

rcp/components/setup/scale_screen.kv

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,25 +27,30 @@
2727
NumberItem:
2828
name: "Ratio Numerator"
2929
value: root.scale.ratioNum
30+
integer: True
3031
on_value: root.scale.ratioNum = int(self.value)
3132
NumberItem:
3233
name: "Ratio Denominator"
3334
value: root.scale.ratioDen
35+
integer: True
3436
help_file: "scales.rst"
3537
on_value: root.scale.ratioDen = int(self.value)
3638
NumberItem:
3739
name: "Steps Per Revolution"
3840
value: root.scale.stepsPerRev
41+
integer: True
3942
help_file: "scales.rst"
4043
on_value: root.scale.stepsPerRev = int(self.value)
4144
NumberItem:
4245
name: "Sync Ratio Numerator"
4346
value: root.scale.syncRatioNum
47+
integer: True
4448
help_file: "scales.rst"
4549
on_value: root.scale.syncRatioNum = int(self.value)
4650
NumberItem:
4751
name: "Sync Ratio Denominator"
4852
value: root.scale.syncRatioDen
53+
integer: True
4954
on_value: root.scale.syncRatioDen = int(self.value)
5055
BooleanItem:
5156
name: "Spindle Mode"

rcp/components/setup/servo_screen.kv

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,23 +28,27 @@
2828
disabled: root.servo.elsMode
2929
name: "Ratio Numerator"
3030
value: root.servo.ratioNum
31+
integer: True
3132
on_value: root.servo.ratioNum = int(self.value)
3233
NumberItem:
3334
disabled: root.servo.elsMode
3435
name: "Ratio Denominator"
3536
value: root.servo.ratioDen
37+
integer: True
3638
on_value: root.servo.ratioDen = int(self.value)
3739

3840
TitleItem:
3941
name: "Speeds"
4042
NumberItem:
4143
name: "Maximum Speed (Steps/s)"
4244
value: root.servo.maxSpeed
45+
integer: True
4346
on_value: root.servo.maxSpeed = int(self.value)
4447

4548
NumberItem:
4649
name: "Acceleration (Steps/s^2)"
4750
value: root.servo.acceleration
51+
integer: True
4852
on_value: root.servo.acceleration = int(self.value)
4953

5054

@@ -54,6 +58,7 @@
5458
disabled: root.servo.elsMode
5559
name: "Units per 1 turn of the axis [360]"
5660
value: root.servo.unitsPerTurn
61+
integer: True
5762
on_value: root.servo.unitsPerTurn = int(self.value)
5863

5964

@@ -77,4 +82,5 @@
7782
disabled: not root.servo.elsMode
7883
name: "Lead Screw Pitch Steps"
7984
value: root.servo.leadScrewPitchSteps
85+
integer: True
8086
on_value: root.servo.leadScrewPitchSteps = self.value

0 commit comments

Comments
 (0)