any_keycode_dialog: pre-fill current keycode
parent
54972955cc
commit
c1ff9f29a1
|
|
@ -7,7 +7,7 @@ from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout, QLineEdit, Q
|
|||
|
||||
from keycodes import KEYCODES_SPECIAL, KEYCODES_BASIC, KEYCODES_SHIFTED, KEYCODES_ISO, KEYCODES_BACKLIGHT, \
|
||||
KEYCODES_MEDIA, KEYCODES_USER, QK_LCTL, QK_LSFT, QK_LALT, QK_LGUI, QK_RCTL, QK_RSFT, QK_RALT, QK_RGUI, QK_LAYER_TAP, \
|
||||
MOD_MEH, MOD_HYPR
|
||||
MOD_MEH, MOD_HYPR, Keycode
|
||||
from util import tr
|
||||
|
||||
|
||||
|
|
@ -138,8 +138,8 @@ class AnyKeycode:
|
|||
|
||||
class AnyKeycodeDialog(QDialog):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
def __init__(self, initial):
|
||||
super().__init__()
|
||||
|
||||
self.setWindowTitle(tr("AnyKeycodeDialog", "Enter an arbitrary keycode"))
|
||||
|
||||
|
|
@ -157,15 +157,15 @@ class AnyKeycodeDialog(QDialog):
|
|||
self.layout.addWidget(self.buttons)
|
||||
self.setLayout(self.layout)
|
||||
|
||||
self.any = AnyKeycode()
|
||||
self.value = -1
|
||||
self.value = initial
|
||||
self.txt_entry.setText(Keycode.serialize(initial))
|
||||
self.on_change()
|
||||
|
||||
def on_change(self):
|
||||
text = self.txt_entry.text()
|
||||
value = err = None
|
||||
try:
|
||||
value = self.any.decode(text)
|
||||
value = Keycode.deserialize(text)
|
||||
except Exception as e:
|
||||
err = str(e)
|
||||
|
||||
|
|
|
|||
|
|
@ -118,7 +118,10 @@ class KeymapEditor(BasicEditor):
|
|||
self.tabbed_keycodes.set_keymap_override(override)
|
||||
|
||||
def on_any_keycode(self):
|
||||
dlg = AnyKeycodeDialog()
|
||||
if self.container.active_key is None:
|
||||
return
|
||||
current_code = self.code_for_widget(self.container.active_key)
|
||||
dlg = AnyKeycodeDialog(current_code)
|
||||
if dlg.exec_() and dlg.value >= 0:
|
||||
self.on_keycode_changed(dlg.value)
|
||||
|
||||
|
|
@ -133,6 +136,13 @@ class KeymapEditor(BasicEditor):
|
|||
return self.keymap_override[Keycode.find_outer_keycode(code).qmk_id]
|
||||
return Keycode.label(code)
|
||||
|
||||
def code_for_widget(self, widget):
|
||||
if widget.desc.row is not None:
|
||||
return self.keyboard.layout[(self.current_layer, widget.desc.row, widget.desc.col)]
|
||||
else:
|
||||
return self.keyboard.encoder_layout[(self.current_layer, widget.desc.encoder_idx,
|
||||
widget.desc.encoder_dir)]
|
||||
|
||||
def refresh_layer_display(self):
|
||||
""" Refresh text on key widgets to display data corresponding to current layer """
|
||||
|
||||
|
|
@ -143,11 +153,7 @@ class KeymapEditor(BasicEditor):
|
|||
btn.setChecked(idx == self.current_layer)
|
||||
|
||||
for widget in self.container.widgets:
|
||||
if widget.desc.row is not None:
|
||||
code = self.keyboard.layout[(self.current_layer, widget.desc.row, widget.desc.col)]
|
||||
else:
|
||||
code = self.keyboard.encoder_layout[(self.current_layer, widget.desc.encoder_idx,
|
||||
widget.desc.encoder_dir)]
|
||||
code = self.code_for_widget(widget)
|
||||
text = self.get_label(code)
|
||||
tooltip = Keycode.tooltip(code)
|
||||
mask = Keycode.is_mask(code)
|
||||
|
|
|
|||
Loading…
Reference in New Issue