layout_editor: initial
parent
657a4a18f1
commit
d6e9a14202
|
|
@ -0,0 +1,15 @@
|
|||
from PyQt5.QtWidgets import QVBoxLayout
|
||||
|
||||
|
||||
class BasicEditor(QVBoxLayout):
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent)
|
||||
|
||||
self.device = None
|
||||
|
||||
def valid(self):
|
||||
raise NotImplementedError
|
||||
|
||||
def rebuild(self, device):
|
||||
self.device = device
|
||||
|
|
@ -7,9 +7,9 @@ import threading
|
|||
|
||||
from PyQt5.QtCore import pyqtSignal
|
||||
from PyQt5.QtGui import QFontDatabase
|
||||
from PyQt5.QtWidgets import QVBoxLayout, QHBoxLayout, QLineEdit, QToolButton, QPlainTextEdit, QProgressBar,\
|
||||
QFileDialog, QDialog
|
||||
from PyQt5.QtWidgets import QHBoxLayout, QLineEdit, QToolButton, QPlainTextEdit, QProgressBar,QFileDialog, QDialog
|
||||
|
||||
from basic_editor import BasicEditor
|
||||
from util import tr, chunks
|
||||
from vial_device import VialBootloader
|
||||
|
||||
|
|
@ -66,7 +66,7 @@ def cmd_flash(device, firmware, log_cb, progress_cb, complete_cb, error_cb):
|
|||
complete_cb("Done!")
|
||||
|
||||
|
||||
class FirmwareFlasher(QVBoxLayout):
|
||||
class FirmwareFlasher(BasicEditor):
|
||||
log_signal = pyqtSignal(object)
|
||||
progress_signal = pyqtSignal(object)
|
||||
complete_signal = pyqtSignal(object)
|
||||
|
|
@ -110,7 +110,7 @@ class FirmwareFlasher(QVBoxLayout):
|
|||
self.device = None
|
||||
|
||||
def rebuild(self, device):
|
||||
self.device = device
|
||||
super().rebuild(device)
|
||||
self.txt_logger.clear()
|
||||
if isinstance(self.device, VialBootloader):
|
||||
self.log("Valid Vial Bootloader device at {}".format(self.device.desc["path"].decode("utf-8")))
|
||||
|
|
|
|||
|
|
@ -1,14 +1,13 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
from PyQt5.QtWidgets import QVBoxLayout
|
||||
|
||||
from basic_editor import BasicEditor
|
||||
from keyboard_container import KeyboardContainer
|
||||
from keycodes import recreate_layer_keycodes
|
||||
from tabbed_keycodes import TabbedKeycodes
|
||||
from vial_device import VialKeyboard
|
||||
|
||||
|
||||
class KeymapEditor(QVBoxLayout):
|
||||
class KeymapEditor(BasicEditor):
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent)
|
||||
|
|
@ -32,7 +31,7 @@ class KeymapEditor(QVBoxLayout):
|
|||
self.keyboard_container.set_key(code)
|
||||
|
||||
def rebuild(self, device):
|
||||
self.device = device
|
||||
super().rebuild(device)
|
||||
if isinstance(self.device, VialKeyboard):
|
||||
self.keyboard_container.rebuild(device.keyboard)
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,17 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
from basic_editor import BasicEditor
|
||||
from vial_device import VialKeyboard
|
||||
|
||||
|
||||
class LayoutEditor(BasicEditor):
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent)
|
||||
self.device = None
|
||||
|
||||
def rebuild(self, device):
|
||||
super().rebuild(device)
|
||||
|
||||
def valid(self):
|
||||
return isinstance(self.device, VialKeyboard)
|
||||
|
|
@ -8,6 +8,7 @@ import json
|
|||
|
||||
from firmware_flasher import FirmwareFlasher
|
||||
from keymap_editor import KeymapEditor
|
||||
from layout_editor import LayoutEditor
|
||||
from util import tr, find_vial_devices
|
||||
|
||||
|
||||
|
|
@ -33,8 +34,12 @@ class MainWindow(QMainWindow):
|
|||
layout_combobox.addWidget(self.btn_refresh_devices)
|
||||
|
||||
self.keymap_editor = KeymapEditor()
|
||||
self.layout_editor = LayoutEditor()
|
||||
self.firmware_flasher = FirmwareFlasher(self)
|
||||
|
||||
self.editors = [(self.keymap_editor, "Keymap"), (self.layout_editor, "Layout"),
|
||||
(self.firmware_flasher, "Firmware updater")]
|
||||
|
||||
self.tabs = QTabWidget()
|
||||
self.refresh_tabs()
|
||||
|
||||
|
|
@ -66,7 +71,6 @@ class MainWindow(QMainWindow):
|
|||
exit_act.setShortcut("Ctrl+Q")
|
||||
exit_act.triggered.connect(qApp.exit)
|
||||
|
||||
menubar = self.menuBar()
|
||||
file_menu = self.menuBar().addMenu(tr("Menu", "File"))
|
||||
file_menu.addAction(layout_load_act)
|
||||
file_menu.addAction(layout_save_act)
|
||||
|
|
@ -112,14 +116,14 @@ class MainWindow(QMainWindow):
|
|||
if self.current_device is not None:
|
||||
self.current_device.open(self.sideload_json if self.current_device.sideload else None)
|
||||
|
||||
self.keymap_editor.rebuild(self.current_device)
|
||||
self.firmware_flasher.rebuild(self.current_device)
|
||||
for editor, lbl in self.editors:
|
||||
editor.rebuild(self.current_device)
|
||||
|
||||
self.refresh_tabs()
|
||||
|
||||
def refresh_tabs(self):
|
||||
self.tabs.clear()
|
||||
for container, lbl in [(self.keymap_editor, "Keymap"), (self.firmware_flasher, "Firmware updater")]:
|
||||
for container, lbl in self.editors:
|
||||
if not container.valid():
|
||||
continue
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue