diff --git a/src/main/python/firmware_flasher.py b/src/main/python/firmware_flasher.py index 85bcd76..42a4951 100644 --- a/src/main/python/firmware_flasher.py +++ b/src/main/python/firmware_flasher.py @@ -142,8 +142,6 @@ class FirmwareFlasher(BasicEditor): self.layout_restore = self.uid_restore = None - self.unlocker = Unlocker() - def rebuild(self, device): super().rebuild(device) self.txt_logger.clear() @@ -202,7 +200,7 @@ class FirmwareFlasher(BasicEditor): # keep track of which keyboard we should restore saved layout to self.uid_restore = self.device.keyboard.get_uid() - self.unlocker.perform_unlock(self.device.keyboard) + Unlocker.get().perform_unlock(self.device.keyboard) self.log("Restarting in bootloader mode...") self.device.keyboard.reset() diff --git a/src/main/python/macro_recorder.py b/src/main/python/macro_recorder.py index 235c2d5..674009e 100644 --- a/src/main/python/macro_recorder.py +++ b/src/main/python/macro_recorder.py @@ -11,6 +11,7 @@ from macro_action import ActionText, ActionTap, ActionDown, ActionUp, SS_TAP_COD from macro_key import KeyString, KeyDown, KeyUp, KeyTap from macro_line import MacroLine from macro_optimizer import macro_optimize +from unlocker import Unlocker from util import tr from vial_device import VialKeyboard @@ -329,5 +330,6 @@ class MacroRecorder(BasicEditor): self.deserialize(self.keyboard.macro) def on_save(self): + Unlocker.get().perform_unlock(self.device.keyboard) self.keyboard.set_macro(self.serialize()) self.on_change() diff --git a/src/main/python/main_window.py b/src/main/python/main_window.py index 9f53c37..6fd77f6 100644 --- a/src/main/python/main_window.py +++ b/src/main/python/main_window.py @@ -10,6 +10,7 @@ from firmware_flasher import FirmwareFlasher from keymap_editor import KeymapEditor from layout_editor import LayoutEditor from macro_recorder import MacroRecorder +from unlocker import Unlocker from util import tr, find_vial_devices @@ -17,6 +18,9 @@ class MainWindow(QMainWindow): def __init__(self): super().__init__() + + self.unlocker = Unlocker() + self.current_device = None self.devices = [] self.sideload_json = None diff --git a/src/main/python/unlocker.py b/src/main/python/unlocker.py index b3d9b96..cdf2c6b 100644 --- a/src/main/python/unlocker.py +++ b/src/main/python/unlocker.py @@ -30,6 +30,12 @@ class Unlocker(QWidget): self.setLayout(layout) self.setWindowFlag(Qt.Dialog) + Unlocker.obj = self + + @classmethod + def get(cls): + return cls.obj + def perform_unlock(self, keyboard): # if it's already unlocked, don't need to do anything if keyboard.get_lock() == 0: