diff --git a/src/main/python/any_keycode_dialog.py b/src/main/python/any_keycode_dialog.py index a716e0a..998c003 100644 --- a/src/main/python/any_keycode_dialog.py +++ b/src/main/python/any_keycode_dialog.py @@ -27,14 +27,17 @@ class AnyKeycodeDialog(QDialog): self.setLayout(self.layout) self.value = initial - self.txt_entry.setText(Keycode.serialize(initial)) + ser = Keycode.serialize(initial) + if isinstance(ser, int): + ser = hex(ser) + self.txt_entry.setText(ser) self.on_change() def on_change(self): text = self.txt_entry.text() value = err = None try: - value = Keycode.deserialize(text) + value = Keycode.deserialize(text, reraise=True) except Exception as e: err = str(e) diff --git a/src/main/python/keycodes.py b/src/main/python/keycodes.py index b3407c1..d42a71c 100644 --- a/src/main/python/keycodes.py +++ b/src/main/python/keycodes.py @@ -93,7 +93,7 @@ class Keycode: return code @classmethod - def deserialize(cls, val): + def deserialize(cls, val, reraise=False): from any_keycode import AnyKeycode if isinstance(val, int): @@ -104,7 +104,8 @@ class Keycode: try: return anykc.decode(val) except Exception: - pass + if reraise: + raise return 0