Skip to content

Commit ef87685

Browse files
Bugfix: Check min max versus current value (#221)
* Check min max vs value * add test * style: [pre-commit.ci] auto fixes [...] * test min too * check that max > min per Qt * update test --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent b927159 commit ef87685

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

src/superqt/spinbox/_intspin.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,14 +65,20 @@ def minimum(self):
6565

6666
def setMinimum(self, min):
6767
self._minimum = int(min)
68+
if self._minimum > self._value:
69+
self.setValue(self._minimum)
6870

6971
def maximum(self):
7072
return self._maximum
7173

7274
def setMaximum(self, max):
7375
self._maximum = int(max)
76+
if self._maximum < self._value:
77+
self.setValue(self._maximum)
7478

7579
def setRange(self, minimum, maximum):
80+
if maximum < minimum:
81+
maximum = minimum
7682
self.setMinimum(minimum)
7783
self.setMaximum(maximum)
7884

tests/test_large_int_spinbox.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,24 @@ def test_large_spinbox(qtbot):
2222
assert sb.value() == -(10**e)
2323

2424

25+
def test_large_spinbox_range(qtbot):
26+
sb = QLargeIntSpinBox()
27+
qtbot.addWidget(sb)
28+
sb.setRange(-100, 100)
29+
sb.setValue(50)
30+
31+
sb.setRange(-10, 10)
32+
assert sb.value() == 10
33+
34+
sb.setRange(100, 1000)
35+
assert sb.value() == 100
36+
37+
sb.setRange(50, 0)
38+
assert sb.minimum() == 50
39+
assert sb.maximum() == 50
40+
assert sb.value() == 50
41+
42+
2543
def test_large_spinbox_type(qtbot):
2644
sb = QLargeIntSpinBox()
2745
qtbot.addWidget(sb)

0 commit comments

Comments
 (0)