Skip to content

Commit 46df48b

Browse files
committed
qtvcp -dialog widget: add status message control of tool change dialog
you can use STATUS messages to 'press' ok or cancel
1 parent 7fcb701 commit 46df48b

1 file changed

Lines changed: 34 additions & 12 deletions

File tree

lib/python/qtvcp/widgets/dialog_widget.py

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -398,6 +398,7 @@ def __init__(self, parent=None):
398398
class 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

Comments
 (0)