From c7132a1cfa8439495ccfdd77be187bab1cbc3975 Mon Sep 17 00:00:00 2001 From: falkTX Date: Tue, 3 Apr 2018 14:04:20 +0200 Subject: [PATCH] Fix remaining issues regarding int parameter control Closes #590 --- source/widgets/paramspinbox.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/source/widgets/paramspinbox.py b/source/widgets/paramspinbox.py index e7495923d..65de21c5b 100644 --- a/source/widgets/paramspinbox.py +++ b/source/widgets/paramspinbox.py @@ -151,6 +151,9 @@ class ParamProgressBar(QProgressBar): self.fMaximum = value def setValue(self, value): + if self.fRealValue == value: + return False + self.fRealValue = value div = float(self.fMaximum - self.fMinimum) @@ -164,6 +167,7 @@ class ParamProgressBar(QProgressBar): self.fValueCall(value) QProgressBar.setValue(self, int(vper * 10000)) + return True def setLabel(self, label): self.fLabel = label.strip() @@ -190,12 +194,16 @@ class ParamProgressBar(QProgressBar): xper = float(pos.x()) / float(self.width()) value = xper * (self.fMaximum - self.fMinimum) + self.fMinimum + if self.fIsInteger: + value = round(value) + if value < self.fMinimum: value = self.fMinimum elif value > self.fMaximum: value = self.fMaximum - self.setValue(value) + if self.setValue(value): + self.valueChanged.emit(value) def mousePressEvent(self, event): if event.button() == Qt.LeftButton: @@ -282,6 +290,9 @@ class ParamSpinBox(QAbstractSpinBox): def setValue(self, value): value = geFixedValue(self.fName, value, self.fMinimum, self.fMaximum) + if self.fBar.fIsInteger: + value = round(value) + if self.fValue == value: return False