Skip to content

Commit 869afc4

Browse files
authored
Fix line edits changing to unwanted value (#330)
1 parent 82764b9 commit 869afc4

File tree

2 files changed

+19
-10
lines changed

2 files changed

+19
-10
lines changed

uwsift/view/colormap_dialogs.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,9 @@ def _slider_changed(self, value=None, is_max=True):
9191
value = self._get_slider_value(value)
9292
LOG.debug('slider %s %s => %f' % (self.uuid, 'max' if is_max else 'min', value))
9393
display_val = self.doc[self.uuid][Info.UNIT_CONVERSION][1](value)
94+
edit.blockSignals(True)
9495
edit.setText('{:0.03f}'.format(display_val))
96+
edit.blockSignals(False)
9597
return self._set_new_clims(value, is_max)
9698

9799
def _edit_changed(self, is_max=True):
@@ -102,7 +104,9 @@ def _edit_changed(self, is_max=True):
102104
val = self.doc[self.uuid][Info.UNIT_CONVERSION][1](vdis, inverse=True)
103105
LOG.debug('line edit %s %s => %f => %f' % (self.uuid, 'max' if is_max else 'min', vdis, val))
104106
sv = self._create_slider_value(val)
107+
slider.blockSignals(True)
105108
slider.setValue(sv)
109+
slider.blockSignals(False)
106110
return self._set_new_clims(val, is_max)
107111

108112
def _init_cmap_combo(self):

uwsift/view/rgb_config.py

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,8 @@ def _update_line_edits(self, color: str, n: float = None, x: float = None):
198198
"""
199199
idx = RGBA2IDX[color]
200200
edn, edx = self.line_edits[idx]
201+
edn.blockSignals(True)
202+
edx.blockSignals(True)
201203
if n is not None:
202204
ndis = self._data_to_display(color, n)
203205
edn.setText('%f' % ndis)
@@ -210,6 +212,8 @@ def _update_line_edits(self, color: str, n: float = None, x: float = None):
210212
else:
211213
xdis = float(edx.text())
212214
x = self._display_to_data(color, xdis)
215+
edn.blockSignals(False)
216+
edx.blockSignals(False)
213217
return n, x
214218

215219
def _signal_color_changing_range(self, color: str, n: float, x: float):
@@ -249,9 +253,10 @@ def _edit_changed(self, line_edit: QLineEdit, color: str, is_max: bool):
249253
val = self._display_to_data(color, vdis)
250254
LOG.debug('line edit %s %s => %f => %f' % (color, 'max' if is_max else 'min', vdis, val))
251255
sv = self._create_slider_value(vn, vx, val)
252-
print("Edit changed and updating slider to: ", sv)
253256
slider = self.sliders[idx][1 if is_max else 0]
257+
slider.blockSignals(True)
254258
slider.setValue(sv)
259+
slider.blockSignals(False)
255260
self._signal_color_changing_range(color, *self._update_line_edits(color))
256261

257262
def selection_did_change(self, recipe):
@@ -305,13 +310,20 @@ def _set_minmax_slider(self, color: str, family: str, clims: Optional[Tuple[floa
305310
if family not in self._families:
306311
LOG.debug(
307312
"Could not find {} in families {}".format(repr(family), repr(list(sorted(self._families.keys())))))
313+
# block signals so the changed sliders don't trigger updates
314+
slider[0].blockSignals(True)
315+
slider[1].blockSignals(True)
308316
if clims is None or clims == (None, None) or \
309317
family not in self._families:
310318
self._valid_ranges[idx] = (None, None)
311319
slider[0].setSliderPosition(0)
312320
slider[1].setSliderPosition(0)
321+
editn.blockSignals(True)
322+
editx.blockSignals(True)
313323
editn.setText('0.0')
314324
editx.setText('0.0')
325+
editn.blockSignals(False)
326+
editx.blockSignals(False)
315327
slider[0].setDisabled(True)
316328
slider[1].setDisabled(True)
317329
editn.setDisabled(True)
@@ -325,28 +337,21 @@ def _set_minmax_slider(self, color: str, family: str, clims: Optional[Tuple[floa
325337
valid_range = self._families[family][Info.VALID_RANGE]
326338
self._valid_ranges[idx] = valid_range
327339

328-
# block signals so the changed sliders don't trigger updates
329-
slider[0].blockSignals(True)
330-
slider[1].blockSignals(True)
331340
slider_val = self._create_slider_value(valid_range[0], valid_range[1], clims[0])
332341
slider[0].setSliderPosition(max(slider_val, 0))
333342
slider_val = self._create_slider_value(valid_range[0], valid_range[1], clims[1])
334343
slider[1].setSliderPosition(min(slider_val, self._slider_steps))
335-
slider[0].blockSignals(False)
336-
slider[1].blockSignals(False)
337344

338345
self._update_line_edits(color, *clims)
346+
slider[0].blockSignals(False)
347+
slider[1].blockSignals(False)
339348

340349
def _set_minmax_sliders(self, recipe):
341350
if recipe:
342-
print("Setting sliders with a recipe: ", recipe)
343351
for idx, (color, clim) in enumerate(zip("rgb", recipe.color_limits)):
344352
family = recipe.input_ids[idx]
345-
print("About to set individual slider for ", color, clim, family)
346353
self._set_minmax_slider(color, family, clim)
347-
print("done setting individual slider for ", color)
348354
else:
349-
print("Setting sliders with no recipe")
350355
self._set_minmax_slider("r", None)
351356
self._set_minmax_slider("g", None)
352357
self._set_minmax_slider("b", None)

0 commit comments

Comments
 (0)