layout_editor: add keyboard preview image

main
Ilya Zhuravlev 2021-07-09 00:01:11 -04:00
parent deb0882630
commit b2dd82d339
1 changed files with 20 additions and 1 deletions

View File

@ -4,6 +4,7 @@ from PyQt5.QtCore import pyqtSignal
from PyQt5.QtWidgets import QLabel, QCheckBox, QComboBox, QGridLayout, QWidget, QSizePolicy
from basic_editor import BasicEditor
from keyboard_widget import KeyboardWidget
from vial_device import VialKeyboard
@ -87,18 +88,32 @@ class LayoutEditor(BasicEditor):
def __init__(self, parent=None):
super().__init__(parent)
self.device = None
self.device = self.keyboard = None
self.choices = []
self.widgets = []
self.addStretch()
self.keyboard_preview = KeyboardWidget(self)
self.keyboard_preview.set_enabled(False)
self.keyboard_preview.set_scale(0.7)
self.addWidget(self.keyboard_preview)
self.setAlignment(self.keyboard_preview, QtCore.Qt.AlignHCenter)
w = QWidget()
w.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum)
self.container = QGridLayout()
w.setLayout(self.container)
self.addWidget(w)
self.setAlignment(w, QtCore.Qt.AlignHCenter)
self.addStretch()
def update_preview(self):
self.keyboard_preview.set_keys(self.keyboard.keys, self.keyboard.encoders)
self.keyboard_preview.update_layout()
self.keyboard_preview.update()
self.keyboard_preview.updateGeometry()
def rebuild(self, device):
super().rebuild(device)
@ -106,6 +121,8 @@ class LayoutEditor(BasicEditor):
if not self.valid():
return
self.keyboard = device.keyboard
self.blockSignals(True)
for choice in self.choices:
@ -122,6 +139,7 @@ class LayoutEditor(BasicEditor):
self.unpack(self.device.keyboard.layout_options)
self.blockSignals(False)
self.update_preview()
def valid(self):
return isinstance(self.device, VialKeyboard) and self.device.keyboard.layout_labels
@ -149,3 +167,4 @@ class LayoutEditor(BasicEditor):
def on_changed(self):
self.changed.emit()
self.update_preview()