Abstract layout editor into a separate class
parent
513ec71600
commit
80492bc940
|
|
@ -0,0 +1,38 @@
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
from PyQt5.QtWidgets import QVBoxLayout
|
||||||
|
|
||||||
|
from keyboard_container import KeyboardContainer
|
||||||
|
from keycodes import recreate_layer_keycodes
|
||||||
|
from tabbed_keycodes import TabbedKeycodes
|
||||||
|
|
||||||
|
|
||||||
|
class LayoutEditor(QVBoxLayout):
|
||||||
|
|
||||||
|
def __init__(self, parent=None):
|
||||||
|
super().__init__(parent)
|
||||||
|
|
||||||
|
self.keyboard_container = KeyboardContainer()
|
||||||
|
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)
|
||||||
|
|
||||||
|
self.addWidget(self.keyboard_container)
|
||||||
|
self.addWidget(self.tabbed_keycodes)
|
||||||
|
|
||||||
|
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, keyboard):
|
||||||
|
self.keyboard_container.rebuild(keyboard)
|
||||||
|
|
||||||
|
def save_layout(self):
|
||||||
|
return self.keyboard_container.save_layout()
|
||||||
|
|
||||||
|
def restore_layout(self, data):
|
||||||
|
self.keyboard_container.restore_layout(data)
|
||||||
|
|
@ -8,9 +8,7 @@ import json
|
||||||
|
|
||||||
from firmware_flasher import FirmwareFlasher
|
from firmware_flasher import FirmwareFlasher
|
||||||
from keyboard import Keyboard
|
from keyboard import Keyboard
|
||||||
from keyboard_container import KeyboardContainer
|
from layout_editor import LayoutEditor
|
||||||
from keycodes import recreate_layer_keycodes
|
|
||||||
from tabbed_keycodes import TabbedKeycodes
|
|
||||||
from util import tr, find_vial_keyboards, open_device
|
from util import tr, find_vial_keyboards, open_device
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -23,12 +21,6 @@ class MainWindow(QMainWindow):
|
||||||
self.sideload_json = None
|
self.sideload_json = None
|
||||||
self.sideload_vid = self.sideload_pid = -1
|
self.sideload_vid = self.sideload_pid = -1
|
||||||
|
|
||||||
self.keyboard_container = KeyboardContainer()
|
|
||||||
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)
|
|
||||||
|
|
||||||
self.combobox_devices = QComboBox()
|
self.combobox_devices = QComboBox()
|
||||||
self.combobox_devices.currentIndexChanged.connect(self.on_device_selected)
|
self.combobox_devices.currentIndexChanged.connect(self.on_device_selected)
|
||||||
|
|
||||||
|
|
@ -41,14 +33,11 @@ class MainWindow(QMainWindow):
|
||||||
layout_combobox.addWidget(self.combobox_devices)
|
layout_combobox.addWidget(self.combobox_devices)
|
||||||
layout_combobox.addWidget(btn_refresh_devices)
|
layout_combobox.addWidget(btn_refresh_devices)
|
||||||
|
|
||||||
kb_and_codes = QVBoxLayout()
|
self.layout_editor = LayoutEditor()
|
||||||
kb_and_codes.addWidget(self.keyboard_container)
|
|
||||||
kb_and_codes.addWidget(self.tabbed_keycodes)
|
|
||||||
|
|
||||||
flasher = FirmwareFlasher()
|
flasher = FirmwareFlasher()
|
||||||
|
|
||||||
tabs = QTabWidget()
|
tabs = QTabWidget()
|
||||||
for container, lbl in [(kb_and_codes, "Layout"), (flasher, "Firmware updater")]:
|
for container, lbl in [(self.layout_editor, "Layout"), (flasher, "Firmware updater")]:
|
||||||
w = QWidget()
|
w = QWidget()
|
||||||
w.setLayout(container)
|
w.setLayout(container)
|
||||||
tabs.addTab(w, tr("MainWindow", lbl))
|
tabs.addTab(w, tr("MainWindow", lbl))
|
||||||
|
|
@ -98,7 +87,7 @@ class MainWindow(QMainWindow):
|
||||||
if dialog.exec_() == QDialog.Accepted:
|
if dialog.exec_() == QDialog.Accepted:
|
||||||
with open(dialog.selectedFiles()[0], "rb") as inf:
|
with open(dialog.selectedFiles()[0], "rb") as inf:
|
||||||
data = inf.read()
|
data = inf.read()
|
||||||
self.keyboard_container.restore_layout(data)
|
self.layout_editor.restore_layout(data)
|
||||||
|
|
||||||
def on_layout_save(self):
|
def on_layout_save(self):
|
||||||
dialog = QFileDialog()
|
dialog = QFileDialog()
|
||||||
|
|
@ -107,7 +96,7 @@ class MainWindow(QMainWindow):
|
||||||
dialog.setNameFilters(["Vial layout (*.vil)"])
|
dialog.setNameFilters(["Vial layout (*.vil)"])
|
||||||
if dialog.exec_() == QDialog.Accepted:
|
if dialog.exec_() == QDialog.Accepted:
|
||||||
with open(dialog.selectedFiles()[0], "wb") as outf:
|
with open(dialog.selectedFiles()[0], "wb") as outf:
|
||||||
outf.write(self.keyboard_container.save_layout())
|
outf.write(self.layout_editor.save_layout())
|
||||||
|
|
||||||
def on_click_refresh(self):
|
def on_click_refresh(self):
|
||||||
self.devices = find_vial_keyboards(self.sideload_vid, self.sideload_pid)
|
self.devices = find_vial_keyboards(self.sideload_vid, self.sideload_pid)
|
||||||
|
|
@ -130,14 +119,7 @@ class MainWindow(QMainWindow):
|
||||||
self.keyboard.reload(self.sideload_json)
|
self.keyboard.reload(self.sideload_json)
|
||||||
else:
|
else:
|
||||||
self.keyboard.reload()
|
self.keyboard.reload()
|
||||||
self.keyboard_container.rebuild(self.keyboard)
|
self.layout_editor.rebuild(self.keyboard)
|
||||||
|
|
||||||
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 on_sideload_json(self):
|
def on_sideload_json(self):
|
||||||
dialog = QFileDialog()
|
dialog = QFileDialog()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue