Skip to content

Commit 27e76fd

Browse files
committed
gmoccapy: fix wrong states of spindle button images after program abort
When a program with spindle on is aborted (assuming spindle off before program start), the images of the spindle buttons get a wrong state: the CSS property "-gtk-icon-effect" is set to "dim" which should be only set when they are disabled. Toggling the sensitive property twice corrects this wrong CSS property.
1 parent f663785 commit 27e76fd

1 file changed

Lines changed: 11 additions & 14 deletions

File tree

src/emc/usr_intf/gmoccapy/gmoccapy.py

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3985,21 +3985,30 @@ def on_rbt_forward_clicked(self, widget, data=None):
39853985
widget.set_image(self.widgets.img_spindle_forward_on)
39863986
self._set_spindle("forward")
39873987
else:
3988-
self.widgets.rbt_forward.set_image(self.widgets.img_spindle_forward)
3988+
widget.set_image(self.widgets.img_spindle_forward)
3989+
# Toggling the sensitive property is important here! See the commit description.
3990+
widget.set_sensitive(not widget.get_sensitive())
3991+
widget.set_sensitive(not widget.get_sensitive())
39893992

39903993
def on_rbt_reverse_clicked(self, widget, data=None):
39913994
if widget.get_active():
39923995
widget.set_image(self.widgets.img_spindle_reverse_on)
39933996
self._set_spindle("reverse")
39943997
else:
39953998
widget.set_image(self.widgets.img_spindle_reverse)
3999+
# Toggling the sensitive property is important here! See the commit description.
4000+
widget.set_sensitive(not widget.get_sensitive())
4001+
widget.set_sensitive(not widget.get_sensitive())
39964002

39974003
def on_rbt_stop_clicked(self, widget, data=None):
39984004
if widget.get_active():
39994005
widget.set_image(self.widgets.img_spindle_stop_on)
40004006
self._set_spindle("stop")
40014007
else:
4002-
self.widgets.rbt_stop.set_image(self.widgets.img_spindle_stop)
4008+
widget.set_image(self.widgets.img_spindle_stop)
4009+
# Toggling the sensitive property is important here! See the commit description.
4010+
widget.set_sensitive(not widget.get_sensitive())
4011+
widget.set_sensitive(not widget.get_sensitive())
40034012

40044013
def _set_spindle(self, command):
40054014
# if we are in estop state, we will have to leave here, otherwise
@@ -4012,18 +4021,6 @@ def _set_spindle(self, command):
40124021
# be set to the commanded value due to the next code part
40134022
if self.stat.task_mode != linuxcnc.MODE_MANUAL:
40144023
if self.stat.interp_state == linuxcnc.INTERP_READING or self.stat.interp_state == linuxcnc.INTERP_WAITING:
4015-
if self.stat.spindle[0]['direction'] > 0:
4016-
self.widgets.rbt_forward.set_sensitive(False)
4017-
self.widgets.rbt_reverse.set_sensitive(True)
4018-
self.widgets.rbt_stop.set_sensitive(True)
4019-
elif self.stat.spindle[0]['direction'] < 0:
4020-
self.widgets.rbt_forward.set_sensitive(True)
4021-
self.widgets.rbt_reverse.set_sensitive(False)
4022-
self.widgets.rbt_stop.set_sensitive(True)
4023-
else:
4024-
self.widgets.rbt_forward.set_sensitive(True)
4025-
self.widgets.rbt_reverse.set_sensitive(True)
4026-
self.widgets.rbt_stop.set_sensitive(False)
40274024
return
40284025

40294026
rpm = self._check_spindle_range()

0 commit comments

Comments
 (0)