Error handling more sturdy

This commit is contained in:
Balthasar Reuter
2018-05-05 23:16:05 +02:00
parent e2b79f91b3
commit 24f5d139a5
2 changed files with 21 additions and 11 deletions

View File

@@ -128,7 +128,8 @@ class PyQt5Gui(Gui):
def showError(self, title, message): def showError(self, title, message):
reply = QMessageBox.warning(self._p, title,message, QMessageBox.Close | QMessageBox.Retry, print('ERROR: ' + title + ': ' + message)
reply = QMessageBox.warning(self._p, title, message, QMessageBox.Close | QMessageBox.Retry,
QMessageBox.Retry) QMessageBox.Retry)
if reply == QMessageBox.Retry: if reply == QMessageBox.Retry:
self._transport.send('ack') self._transport.send('ack')

View File

@@ -32,12 +32,7 @@ def lookup_and_import(module_list, name, package=None):
return getattr(import_module, result[1]) return getattr(import_module, result[1])
def main_photobooth(config, send, recv): def start_photobooth(config, send, recv):
event = recv.recv()
if str(event) != 'start':
print('Unknown event received: ' + str(event))
raise RuntimeError('Unknown event received', str(event))
while True: while True:
try: try:
@@ -50,16 +45,30 @@ def main_photobooth(config, send, recv):
except BaseException as e: except BaseException as e:
send.send( gui.ErrorState('Camera error', str(e)) ) send.send( gui.ErrorState('Camera error', str(e)) )
event = recv.recv() event = recv.recv()
if str(event) == 'cancel': if str(event) in ('cancel', 'ack'):
return 1 return -1
elif str(event) == 'ack':
pass
else: else:
print('Unknown event received: ' + str(event)) print('Unknown event received: ' + str(event))
raise RuntimeError('Unknown event received', str(event)) raise RuntimeError('Unknown event received', str(event))
def main_photobooth(config, send, recv):
while True:
event = recv.recv()
if str(event) != 'start':
print('Unknown event received: ' + str(event))
raise RuntimeError('Unknown event received', str(event))
exit_status = start_photobooth(config, send, recv)
if exit_status != -1:
return exit_status
def run(argv): def run(argv):
print('Photobooth version:', __version__) print('Photobooth version:', __version__)
config = Config('photobooth.cfg') config = Config('photobooth.cfg')