From 8881b6aeec6cb22a97b3e7c006587adb09931ae4 Mon Sep 17 00:00:00 2001 From: Balthasar Reuter Date: Wed, 9 May 2018 22:49:21 +0200 Subject: [PATCH] Trigger State added to handle GPIO and keypress similarly --- photobooth/Photobooth.py | 4 ++-- photobooth/gui/PyQt5Gui.py | 5 ++++- photobooth/gui/__init__.py | 7 +++++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/photobooth/Photobooth.py b/photobooth/Photobooth.py index d46d237..f4583c2 100644 --- a/photobooth/Photobooth.py +++ b/photobooth/Photobooth.py @@ -262,7 +262,7 @@ class Photobooth: raise RuntimeError('Unknown event received', str(event)) self._send.send(gui.IdleState()) - self._lampOn() + self.triggerOn() def gpioTrigger(self): @@ -279,4 +279,4 @@ class Photobooth: def triggerOn(self): self._lampOn() - self._gpioTrigger = self.trigger + self._gpioTrigger = lambda : self._send.send(Gui.TriggerState()) diff --git a/photobooth/gui/PyQt5Gui.py b/photobooth/gui/PyQt5Gui.py index 3948612..e04a2fa 100644 --- a/photobooth/gui/PyQt5Gui.py +++ b/photobooth/gui/PyQt5Gui.py @@ -63,7 +63,8 @@ class PyQt5Gui(Gui): if event.key() == Qt.Key_Escape: self.showStart() elif event.key() == Qt.Key_Space: - self._transport.send('triggered') + # self._transport.send('triggered') + self.handleState(TriggerState()) def handleKeypressEventNoTrigger(self, event): @@ -79,6 +80,8 @@ class PyQt5Gui(Gui): if isinstance(state, IdleState): self.showIdle() + elif isinstance(state, TriggerState): + self._transport.send('triggered') elif isinstance(state, GreeterState): global cfg self._p.handleKeypressEvent = self.handleKeypressEventNoTrigger diff --git a/photobooth/gui/__init__.py b/photobooth/gui/__init__.py index 09f3d76..792df6d 100644 --- a/photobooth/gui/__init__.py +++ b/photobooth/gui/__init__.py @@ -115,6 +115,13 @@ class MessageState(GuiState): +class TriggerState(GuiState): + + def __init__(self, **kwargs): + + super().__init__(**kwargs) + + class GreeterState(GuiState): def __init__(self, **kwargs):