From 24f5d139a5287e112f68f782e5dac136c38c4b22 Mon Sep 17 00:00:00 2001 From: Balthasar Reuter Date: Sat, 5 May 2018 23:16:05 +0200 Subject: [PATCH] Error handling more sturdy --- photobooth/gui/PyQt5Gui.py | 3 ++- photobooth/main.py | 29 +++++++++++++++++++---------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/photobooth/gui/PyQt5Gui.py b/photobooth/gui/PyQt5Gui.py index 3c89aa2..4169b50 100644 --- a/photobooth/gui/PyQt5Gui.py +++ b/photobooth/gui/PyQt5Gui.py @@ -128,7 +128,8 @@ class PyQt5Gui(Gui): 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) if reply == QMessageBox.Retry: self._transport.send('ack') diff --git a/photobooth/main.py b/photobooth/main.py index 688a4fb..d122d43 100644 --- a/photobooth/main.py +++ b/photobooth/main.py @@ -32,12 +32,7 @@ def lookup_and_import(module_list, name, package=None): return getattr(import_module, result[1]) -def main_photobooth(config, send, recv): - - event = recv.recv() - if str(event) != 'start': - print('Unknown event received: ' + str(event)) - raise RuntimeError('Unknown event received', str(event)) +def start_photobooth(config, send, recv): while True: try: @@ -50,16 +45,30 @@ def main_photobooth(config, send, recv): except BaseException as e: send.send( gui.ErrorState('Camera error', str(e)) ) event = recv.recv() - if str(event) == 'cancel': - return 1 - elif str(event) == 'ack': - pass + if str(event) in ('cancel', 'ack'): + return -1 else: print('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): + print('Photobooth version:', __version__) config = Config('photobooth.cfg')