@@ -398,6 +398,7 @@ def __init__(self, parent=None):
398398class ToolDialog (LcncDialog , GeometryMixin ):
399399 def __init__ (self , parent = None ):
400400 super (ToolDialog , self ).__init__ (parent )
401+ self ._request_name = 'TOOLCHANGE'
401402 self .setText ('<b>Manual Tool Change Request</b>' )
402403 self .setInformativeText ('Please Insert Tool 0' )
403404 self .setStandardButtons (QMessageBox .Ok )
@@ -440,6 +441,8 @@ def _hal_init(self):
440441 self .sound_type = self .PREFS_ .getpref ('toolDialog_sound_type' , 'READY' , str , 'DIALOG_OPTIONS' )
441442 else :
442443 self .play_sound = False
444+ # can acknowledge from status messages too
445+ STATUS .connect ('dialog-update' , self ._status_update )
443446
444447 # process callback from 'change' HAL pin
445448 def tool_change (self , change ):
@@ -490,18 +493,37 @@ def tool_change(self, change):
490493 # process callback for 'change-button' HAL pin
491494 # hide the message dialog or desktop notify message
492495 def external_acknowledge (self , state ):
493- #print('external acklnowledge : {}'.format(state))
496+ #print('external acknowledge : {}'.format(state))
494497 if state :
495498 if self ._useDesktopNotify :
496499 self .deskNotice .close ()
497500 elif self .isVisible ():
498501 self .hide ()
499502 self ._processChange (True )
500503
504+ # callback from status 'update-dialog'
505+ def _status_update (self , w , message ):
506+ print (message )
507+ if message .get ('NAME' ) == self ._request_name :
508+ if not self .isVisible (): return
509+ print (self ._request_name )
510+ response = message .get ('response' )
511+ if not response is None :
512+ # 'ok'
513+ if response == 1 :
514+ if self ._useDesktopNotify :
515+ self .deskNotice .close ()
516+ elif self .isVisible ():
517+ self .hide ()
518+ self ._processChange (True )
519+ # 'cancel'
520+ elif response == 0 :
521+ self .hide ()
522+ self ._processChange (False )
501523
502524 # This also is called from DesktopDialog
503525 def _processChange (self ,answer ):
504- # print('proces change: {}'.format(answer))
526+ print ('process change: {}' .format (answer ))
505527 if answer == - 1 :
506528 self .changed .set (True )
507529 ACTION .ABORT ()
@@ -517,6 +539,16 @@ def _processChange(self,answer):
517539 self .record_geometry ()
518540 STATUS .emit ('focus-overlay-changed' , False , None , None )
519541
542+ # decode button presses
543+ def msgbtn (self , i ):
544+ LOG .debug ('Button pressed is: {}' .format (i .text ()))
545+ if self .clickedButton () == self ._actionbutton :
546+ self ._processChange (- 1 )
547+ elif self .standardButton (self .clickedButton ()) == QMessageBox .Ok :
548+ self ._processChange (True )
549+ else :
550+ self ._processChange (False )
551+
520552 ###### overridden functions ################
521553
522554 def showdialog (self , message , more_info = None , details = None ,
@@ -558,16 +590,6 @@ def showEvent(self, event):
558590 self .set_geometry ()
559591 super (LcncDialog , self ).showEvent (event )
560592
561- # decode button presses
562- def msgbtn (self , i ):
563- LOG .debug ('Button pressed is: {}' .format (i .text ()))
564- if self .clickedButton () == self ._actionbutton :
565- self ._processChange (- 1 )
566- elif self .standardButton (self .clickedButton ()) == QMessageBox .Ok :
567- self ._processChange (True )
568- else :
569- self ._processChange (False )
570-
571593 ############################################
572594
573595 # **********************
0 commit comments