Skip to content

Commit d04b82e

Browse files
committed
update stage controller
1 parent 9c29710 commit d04b82e

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

src/navigate/controller/sub_controllers/stage_controller.py

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ def bind_position_callbacks(self):
288288
if not self.position_callbacks_bound:
289289
for axis in ["x", "y", "z", "theta", "f"]:
290290
# add event bind to position entry variables
291-
widgets[axis].bind("<FocusOut>", self.position_callback(axis))
291+
widgets[axis].widget.bind("<FocusOut>", self.position_callback(axis))
292292
# cbname = self.widget_vals[axis].trace_add(
293293
# "write", self.position_callback(axis)
294294
# )
@@ -320,13 +320,11 @@ def set_position(self, position):
320320
position : dict
321321
{'x': value, 'y': value, 'z': value, 'theta': value, 'f': value}
322322
"""
323-
widgets = self.view.get_widgets()
324323
for axis in ["x", "y", "z", "theta", "f"]:
325-
self.widget_vals[axis].set(position.get(axis, 0))
326-
# validate position value if set through variable
327-
if self.stage_limits:
328-
widgets[axis].widget.trigger_focusout_validation()
329-
self.stage_setting_dict[axis] = position.get(axis, 0)
324+
if axis not in position:
325+
continue
326+
self.widget_vals[axis].set(position[axis])
327+
self.position_callback(axis)()
330328
self.show_verbose_info("Set stage position")
331329

332330
def set_position_silent(self, position):
@@ -337,11 +335,17 @@ def set_position_silent(self, position):
337335
position : dict
338336
{'x': value, 'y': value, 'z': value, 'theta': value, 'f': value}
339337
"""
340-
# self.unbind_position_callbacks()
341-
342-
self.set_position(position)
338+
widgets = self.view.get_widgets()
339+
for axis in ["x", "y", "z", "theta", "f"]:
340+
if axis not in position:
341+
continue
342+
self.widget_vals[axis].set(position[axis])
343+
# validate position value if set through variable
344+
if self.stage_limits:
345+
widgets[axis].widget.trigger_focusout_validation()
346+
self.stage_setting_dict[axis] = position.get(axis, 0)
347+
self.show_verbose_info("Set stage position")
343348

344-
# self.bind_position_callbacks()
345349

346350
def get_position(self):
347351
"""This function returns current position from the view.

0 commit comments

Comments
 (0)