diff --git a/src/main/python/key_widget.py b/src/main/python/key_widget.py index b686816..86f37fd 100644 --- a/src/main/python/key_widget.py +++ b/src/main/python/key_widget.py @@ -1,6 +1,8 @@ +from any_keycode_dialog import AnyKeycodeDialog from keyboard_widget import KeyboardWidget from kle_serial import Key from tabbed_keycodes import TabbedKeycodes +from util import KeycodeDisplay class KeyWidget(KeyboardWidget): @@ -17,6 +19,8 @@ class KeyWidget(KeyboardWidget): key.layout_index = key.layout_option = -1 self.set_keys([key], []) + self.anykey.connect(self.on_anykey) + def mousePressEvent(self, ev): super().mousePressEvent(ev) if self.active_key is not None: @@ -24,6 +28,23 @@ class KeyWidget(KeyboardWidget): else: TabbedKeycodes.close_tray() - def on_keycode_changed(self, kc): + def on_keycode_changed(self, keycode): """ Unlike set_keycode, this handles setting masked keycode inside the mask """ - print(kc) + + if self.active_mask: + if keycode > 0xFF: + return + keycode = (self.keycode & 0xFF00) | keycode + self.set_keycode(keycode) + + def on_anykey(self): + if self.active_key is None: + return + dlg = AnyKeycodeDialog(self.keycode) + if dlg.exec_() and dlg.value >= 0: + self.set_keycode(dlg.value) + + def set_keycode(self, kc): + self.keycode = kc + KeycodeDisplay.display_keycode(self.widgets[0], self.keycode) + self.update() diff --git a/src/main/python/tabbed_keycodes.py b/src/main/python/tabbed_keycodes.py index b59eff4..266bec3 100644 --- a/src/main/python/tabbed_keycodes.py +++ b/src/main/python/tabbed_keycodes.py @@ -146,4 +146,5 @@ class TabbedKeycodes(QTabWidget): self.target.on_keycode_changed(kc) def on_tray_anykey(self): - pass + if self.target is not None: + self.target.on_anykey()