macro: allow assigning macro keycodes
parent
7242138f76
commit
94ba5df315
|
|
@ -12,8 +12,6 @@ from util import tr
|
|||
|
||||
class KeyboardContainer(QWidget):
|
||||
|
||||
number_layers_changed = pyqtSignal()
|
||||
|
||||
def __init__(self, layout_editor):
|
||||
super().__init__()
|
||||
|
||||
|
|
@ -44,8 +42,6 @@ class KeyboardContainer(QWidget):
|
|||
layout_editor.changed.connect(self.on_layout_changed)
|
||||
|
||||
def rebuild_layers(self):
|
||||
self.number_layers_changed.emit()
|
||||
|
||||
# delete old layer labels
|
||||
for label in self.layer_labels:
|
||||
label.hide()
|
||||
|
|
|
|||
|
|
@ -440,8 +440,10 @@ def recreate_keycodes():
|
|||
KEYCODES_QUANTUM + KEYCODES_BACKLIGHT + KEYCODES_MEDIA + KEYCODES_MACRO)
|
||||
|
||||
|
||||
def recreate_layer_keycodes(layers):
|
||||
""" Generates layer keycodes based on number of layers a keyboard provides """
|
||||
def recreate_keyboard_keycodes(keyboard):
|
||||
""" Generates keycodes based on information the keyboard provides (e.g. layer keycodes, macros) """
|
||||
|
||||
layers = keyboard.layers
|
||||
|
||||
def generate_keycodes_for_mask(label, mask):
|
||||
keycodes = []
|
||||
|
|
@ -466,6 +468,11 @@ def recreate_layer_keycodes(layers):
|
|||
KEYCODES_LAYERS.append(Keycode(LT(x), "LT({}, kc)".format(x), "LT {}\n(kc)".format(x),
|
||||
"kc on tap, switch to layer {} while held".format(x), masked=True))
|
||||
|
||||
KEYCODES_MACRO.clear()
|
||||
for x in range(keyboard.macro_count):
|
||||
lbl = "M{}".format(x)
|
||||
KEYCODES_MACRO.append(Keycode(0x5F12 + x, lbl, lbl))
|
||||
|
||||
recreate_keycodes()
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
from basic_editor import BasicEditor
|
||||
from keyboard_container import KeyboardContainer
|
||||
from keycodes import recreate_layer_keycodes
|
||||
from keycodes import recreate_keyboard_keycodes
|
||||
from tabbed_keycodes import TabbedKeycodes
|
||||
from vial_device import VialKeyboard
|
||||
|
||||
|
|
@ -13,7 +13,6 @@ class KeymapEditor(BasicEditor):
|
|||
super().__init__()
|
||||
|
||||
self.keyboard_container = KeyboardContainer(layout_editor)
|
||||
self.keyboard_container.number_layers_changed.connect(self.on_number_layers_changed)
|
||||
|
||||
self.tabbed_keycodes = TabbedKeycodes()
|
||||
self.tabbed_keycodes.keycode_changed.connect(self.on_keycode_changed)
|
||||
|
|
@ -23,17 +22,16 @@ class KeymapEditor(BasicEditor):
|
|||
|
||||
self.device = None
|
||||
|
||||
def on_number_layers_changed(self):
|
||||
recreate_layer_keycodes(self.keyboard_container.keyboard.layers)
|
||||
self.tabbed_keycodes.recreate_layer_keycode_buttons()
|
||||
|
||||
def on_keycode_changed(self, code):
|
||||
self.keyboard_container.set_key(code)
|
||||
|
||||
def rebuild(self, device):
|
||||
super().rebuild(device)
|
||||
if isinstance(self.device, VialKeyboard):
|
||||
if self.valid():
|
||||
self.keyboard_container.rebuild(device.keyboard)
|
||||
recreate_keyboard_keycodes(self.keyboard_container.keyboard)
|
||||
self.tabbed_keycodes.recreate_keycode_buttons()
|
||||
self.keyboard_container.refresh_layer_display()
|
||||
|
||||
def valid(self):
|
||||
return isinstance(self.device, VialKeyboard)
|
||||
|
|
|
|||
|
|
@ -37,6 +37,8 @@ class TabbedKeycodes(QTabWidget):
|
|||
layout = FlowLayout()
|
||||
if tab == self.tab_layers:
|
||||
self.layout_layers = layout
|
||||
elif tab == self.tab_macro:
|
||||
self.layout_macro = layout
|
||||
|
||||
self.create_buttons(layout, keycodes)
|
||||
|
||||
|
|
@ -50,6 +52,7 @@ class TabbedKeycodes(QTabWidget):
|
|||
self.addTab(tab, tr("TabbedKeycodes", label))
|
||||
|
||||
self.layer_keycode_buttons = []
|
||||
self.macro_keycode_buttons = []
|
||||
|
||||
def create_buttons(self, layout, keycodes):
|
||||
buttons = []
|
||||
|
|
@ -64,8 +67,9 @@ class TabbedKeycodes(QTabWidget):
|
|||
|
||||
return buttons
|
||||
|
||||
def recreate_layer_keycode_buttons(self):
|
||||
for btn in self.layer_keycode_buttons:
|
||||
def recreate_keycode_buttons(self):
|
||||
for btn in self.layer_keycode_buttons + self.macro_keycode_buttons:
|
||||
btn.hide()
|
||||
btn.deleteLater()
|
||||
self.layer_keycode_buttons = self.create_buttons(self.layout_layers, KEYCODES_LAYERS)
|
||||
self.macro_keycode_buttons = self.create_buttons(self.layout_macro, KEYCODES_MACRO)
|
||||
|
|
|
|||
Loading…
Reference in New Issue