any_keycode_dialog: fix error processing

main
Ilya Zhuravlev 2021-03-14 18:00:13 -04:00
parent be041808a2
commit 4f7cfb36e2
2 changed files with 8 additions and 4 deletions

View File

@ -27,14 +27,17 @@ class AnyKeycodeDialog(QDialog):
self.setLayout(self.layout) self.setLayout(self.layout)
self.value = initial 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() self.on_change()
def on_change(self): def on_change(self):
text = self.txt_entry.text() text = self.txt_entry.text()
value = err = None value = err = None
try: try:
value = Keycode.deserialize(text) value = Keycode.deserialize(text, reraise=True)
except Exception as e: except Exception as e:
err = str(e) err = str(e)

View File

@ -93,7 +93,7 @@ class Keycode:
return code return code
@classmethod @classmethod
def deserialize(cls, val): def deserialize(cls, val, reraise=False):
from any_keycode import AnyKeycode from any_keycode import AnyKeycode
if isinstance(val, int): if isinstance(val, int):
@ -104,7 +104,8 @@ class Keycode:
try: try:
return anykc.decode(val) return anykc.decode(val)
except Exception: except Exception:
pass if reraise:
raise
return 0 return 0