Skip to content

Commit

Permalink
Fix issues with LinearFit.py q-range sliders
Browse files Browse the repository at this point in the history
  • Loading branch information
krzywon committed Sep 2, 2021
1 parent 184a65b commit cace230
Showing 1 changed file with 18 additions and 4 deletions.
22 changes: 18 additions & 4 deletions src/sas/qtgui/Plotting/LinearFit.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
"""
import re
import numpy
from numbers import Number
from typing import Optional
from PyQt5 import QtCore
from PyQt5 import QtGui
from PyQt5 import QtWidgets
Expand Down Expand Up @@ -102,10 +104,8 @@ def __init__(self, parent=None,
self.cstB = Fittings.Parameter(self.model, 'B', self.default_B)
self.transform = DataTransform

self.data.show_q_range_sliders = True
self.q_sliders = QRangeSlider(self.parent, self.parent.ax, data=self.data)
self.q_sliders.line_min.input = self.txtFitRangeMin
self.q_sliders.line_max.input = self.txtFitRangeMax
self.q_sliders = None
self.drawSliders()

self.setFixedSize(self.minimumSizeHint())

Expand Down Expand Up @@ -246,7 +246,9 @@ def fit(self, event):
tempx = numpy.array(tempx)
tempy = numpy.array(tempy)

self.clearSliders()
self.updatePlot.emit((tempx, tempy))
self.drawSliders()

def origData(self):
# Store the transformed values of view x, y and dy before the fit
Expand Down Expand Up @@ -321,10 +323,22 @@ def floatInvTransform(self, x):
return numpy.sqrt(numpy.sqrt(numpy.power(10.0, x)))
return x

def drawSliders(self):
"""Show new Q-range sliders"""
self.data.show_q_range_sliders = True
self.q_sliders = QRangeSlider(self.parent, self.parent.ax, data=self.data)
self.q_sliders.line_min.input = self.txtFitRangeMin
self.q_sliders.line_max.input = self.txtFitRangeMax
# Ensure values are updated on redraw of plots
self.q_sliders.line_min.inputChanged()
self.q_sliders.line_max.inputChanged()

def clearSliders(self):
"""Clear existing sliders"""
if self.q_sliders:
self.q_sliders.clear()
self.data.show_q_range_sliders = False
self.q_sliders = None

def closeEvent(self, ev):
self.clearSliders()
Expand Down

0 comments on commit cace230

Please sign in to comment.