key_widget: support changing keycodes
parent
fea0dcaa9b
commit
af311b51c3
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
Loading…
Reference in New Issue