Merge pull request #28 from 0z00/ui/editor-container

Deselect key in keymap editor when container is clicked
main
xyzz 2021-04-29 10:31:11 -04:00 committed by GitHub
commit 8a2bf34f93
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 31 additions and 3 deletions

View File

@ -13,3 +13,6 @@ class BasicEditor(QVBoxLayout):
def rebuild(self, device):
self.device = device
def on_container_clicked(self):
pass

View File

@ -0,0 +1,16 @@
from PyQt5.QtWidgets import QWidget
from PyQt5.QtCore import pyqtSignal
class EditorContainer(QWidget):
clicked = pyqtSignal()
def __init__(self, editor):
super().__init__()
self.setLayout(editor)
self.clicked.connect(editor.on_container_clicked)
def mousePressEvent(self, ev):
self.clicked.emit()

View File

@ -59,6 +59,11 @@ class KeymapEditor(BasicEditor):
self.device = None
def on_container_clicked(self):
""" Called when a mouse click event is bubbled up to the editor's container """
self.container.deselect()
self.container.update()
def on_keycode_changed(self, code):
self.set_key(code)
@ -143,6 +148,10 @@ class KeymapEditor(BasicEditor):
return self.keyboard.encoder_layout[(self.current_layer, widget.desc.encoder_idx,
widget.desc.encoder_dir)]
def mousePressEvent(self, ev):
self.container.deselect()
self.container.update()
def refresh_layer_display(self):
""" Refresh text on key widgets to display data corresponding to current layer """

View File

@ -8,6 +8,7 @@ import json
import os
from urllib.request import urlopen
from editor_container import EditorContainer
from firmware_flasher import FirmwareFlasher
from keymap_editor import KeymapEditor
from keymaps import KEYMAPS
@ -245,9 +246,8 @@ class MainWindow(QMainWindow):
if not container.valid():
continue
w = QWidget()
w.setLayout(container)
self.tabs.addTab(w, tr("MainWindow", lbl))
c = EditorContainer(container)
self.tabs.addTab(c, tr("MainWindow", lbl))
def load_via_stack_json(self):
data = urlopen("https://github.com/vial-kb/via-keymap-precompiled/raw/main/via_keyboard_stack.json")