macro_recorder: add and remove sequence keys
parent
f64a068f4b
commit
232b69d0f2
|
|
@ -130,7 +130,9 @@ KEYCODES_BASIC = [
|
||||||
K(0xE5, "KC_RSHIFT", "RShift"),
|
K(0xE5, "KC_RSHIFT", "RShift"),
|
||||||
K(0xE6, "KC_RALT", "RAlt"),
|
K(0xE6, "KC_RALT", "RAlt"),
|
||||||
K(0xE7, "KC_RGUI", "RGui"),
|
K(0xE7, "KC_RGUI", "RGui"),
|
||||||
|
]
|
||||||
|
|
||||||
|
KEYCODES_SHIFTED = [
|
||||||
K(0x235, "KC_TILD", "~"),
|
K(0x235, "KC_TILD", "~"),
|
||||||
K(0x21E, "KC_EXLM", "!"),
|
K(0x21E, "KC_EXLM", "!"),
|
||||||
K(0x21F, "KC_AT", "@"),
|
K(0x21F, "KC_AT", "@"),
|
||||||
|
|
@ -428,7 +430,7 @@ def recreate_keycodes():
|
||||||
""" Regenerates global KEYCODES array """
|
""" Regenerates global KEYCODES array """
|
||||||
|
|
||||||
KEYCODES.clear()
|
KEYCODES.clear()
|
||||||
KEYCODES.extend(KEYCODES_BASIC + KEYCODES_ISO + KEYCODES_LAYERS + KEYCODES_QUANTUM + KEYCODES_BACKLIGHT +
|
KEYCODES.extend(KEYCODES_BASIC + KEYCODES_SHIFTED + KEYCODES_ISO + KEYCODES_LAYERS + KEYCODES_QUANTUM + KEYCODES_BACKLIGHT +
|
||||||
KEYCODES_MEDIA + KEYCODES_MACRO)
|
KEYCODES_MEDIA + KEYCODES_MACRO)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ from PyQt5.QtCore import Qt
|
||||||
from PyQt5.QtWidgets import QPushButton, QLineEdit, QGridLayout, QHBoxLayout, QComboBox, QToolButton
|
from PyQt5.QtWidgets import QPushButton, QLineEdit, QGridLayout, QHBoxLayout, QComboBox, QToolButton
|
||||||
|
|
||||||
from basic_editor import BasicEditor
|
from basic_editor import BasicEditor
|
||||||
|
from keycodes import KEYCODES_BASIC
|
||||||
from macro_key import KeyString
|
from macro_key import KeyString
|
||||||
from macro_optimizer import macro_optimize
|
from macro_optimizer import macro_optimize
|
||||||
from macro_recorder_linux import LinuxRecorder
|
from macro_recorder_linux import LinuxRecorder
|
||||||
|
|
@ -11,6 +12,9 @@ from util import tr
|
||||||
from vial_device import VialKeyboard
|
from vial_device import VialKeyboard
|
||||||
|
|
||||||
|
|
||||||
|
KC_NO = KEYCODES_BASIC[0]
|
||||||
|
|
||||||
|
|
||||||
class BasicAction:
|
class BasicAction:
|
||||||
|
|
||||||
def __init__(self, container):
|
def __init__(self, container):
|
||||||
|
|
@ -46,6 +50,7 @@ class ActionSequence(BasicAction):
|
||||||
self.btn_plus = QToolButton()
|
self.btn_plus = QToolButton()
|
||||||
self.btn_plus.setText("+")
|
self.btn_plus.setText("+")
|
||||||
self.btn_plus.setToolButtonStyle(Qt.ToolButtonTextOnly)
|
self.btn_plus.setToolButtonStyle(Qt.ToolButtonTextOnly)
|
||||||
|
self.btn_plus.clicked.connect(self.on_add)
|
||||||
|
|
||||||
self.layout = QHBoxLayout()
|
self.layout = QHBoxLayout()
|
||||||
self.layout.addStretch()
|
self.layout.addStretch()
|
||||||
|
|
@ -61,8 +66,16 @@ class ActionSequence(BasicAction):
|
||||||
|
|
||||||
for item in self.sequence:
|
for item in self.sequence:
|
||||||
w = QComboBox()
|
w = QComboBox()
|
||||||
w.addItem(item.keycode.qmk_id)
|
w.view().setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
|
||||||
|
w.setStyleSheet("QComboBox { combobox-popup: 0; }")
|
||||||
|
w.addItem(tr("MacroEditor", "Remove"))
|
||||||
|
w.insertSeparator(1)
|
||||||
|
for k in KEYCODES_BASIC:
|
||||||
|
w.addItem(k.label.replace("\n", ""))
|
||||||
|
w.setCurrentIndex(2 + KEYCODES_BASIC.index(item))
|
||||||
|
w.currentIndexChanged.connect(self.on_change)
|
||||||
self.layout.insertWidget(self.layout.count() - 1, w)
|
self.layout.insertWidget(self.layout.count() - 1, w)
|
||||||
|
self.widgets.append(w)
|
||||||
self.layout.insertWidget(self.layout.count() - 1, self.btn_plus)
|
self.layout.insertWidget(self.layout.count() - 1, self.btn_plus)
|
||||||
|
|
||||||
def insert(self, row):
|
def insert(self, row):
|
||||||
|
|
@ -80,9 +93,25 @@ class ActionSequence(BasicAction):
|
||||||
self.layout.setParent(None)
|
self.layout.setParent(None)
|
||||||
self.layout.deleteLater()
|
self.layout.deleteLater()
|
||||||
|
|
||||||
|
def on_add(self):
|
||||||
|
self.sequence.append(KC_NO)
|
||||||
|
self.recreate_sequence()
|
||||||
|
|
||||||
|
def on_change(self):
|
||||||
|
for x in range(len(self.sequence)):
|
||||||
|
index = self.widgets[x].currentIndex()
|
||||||
|
if index == 0:
|
||||||
|
# asked to remove this item
|
||||||
|
del self.sequence[x]
|
||||||
|
self.recreate_sequence()
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
self.sequence[x] = KEYCODES_BASIC[self.widgets[x].currentIndex() - 2]
|
||||||
|
|
||||||
|
|
||||||
class MacroLine:
|
class MacroLine:
|
||||||
|
|
||||||
|
types = ["Text", "Down", "Up", "Tap"]
|
||||||
type_to_cls = [ActionText, ActionSequence, ActionSequence, ActionSequence]
|
type_to_cls = [ActionText, ActionSequence, ActionSequence, ActionSequence]
|
||||||
|
|
||||||
def __init__(self, parent, action):
|
def __init__(self, parent, action):
|
||||||
|
|
@ -103,7 +132,7 @@ class MacroLine:
|
||||||
self.arrows.addWidget(self.btn_down)
|
self.arrows.addWidget(self.btn_down)
|
||||||
|
|
||||||
self.select_type = QComboBox()
|
self.select_type = QComboBox()
|
||||||
self.select_type.addItems(["Text", "Down", "Up", "Tap"])
|
self.select_type.addItems(self.types)
|
||||||
self.select_type.currentIndexChanged.connect(self.on_change_type)
|
self.select_type.currentIndexChanged.connect(self.on_change_type)
|
||||||
|
|
||||||
self.action = action
|
self.action = action
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue