Add an editor container to handle mouse click event
- Adds an editor container to handle mouse click events that are detected on an editor's container widget.
- Adds a handler for container click to the keymap editor to deselect and cancel a key selection.
main
parent
a22ea578fd
commit
fb9df2462c
|
|
@ -13,3 +13,6 @@ class BasicEditor(QVBoxLayout):
|
||||||
|
|
||||||
def rebuild(self, device):
|
def rebuild(self, device):
|
||||||
self.device = device
|
self.device = device
|
||||||
|
|
||||||
|
def on_container_clicked(self):
|
||||||
|
pass
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
@ -59,6 +59,11 @@ class KeymapEditor(BasicEditor):
|
||||||
|
|
||||||
self.device = None
|
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):
|
def on_keycode_changed(self, code):
|
||||||
self.set_key(code)
|
self.set_key(code)
|
||||||
|
|
||||||
|
|
@ -143,6 +148,10 @@ class KeymapEditor(BasicEditor):
|
||||||
return self.keyboard.encoder_layout[(self.current_layer, widget.desc.encoder_idx,
|
return self.keyboard.encoder_layout[(self.current_layer, widget.desc.encoder_idx,
|
||||||
widget.desc.encoder_dir)]
|
widget.desc.encoder_dir)]
|
||||||
|
|
||||||
|
def mousePressEvent(self, ev):
|
||||||
|
self.container.deselect()
|
||||||
|
self.container.update()
|
||||||
|
|
||||||
def refresh_layer_display(self):
|
def refresh_layer_display(self):
|
||||||
""" Refresh text on key widgets to display data corresponding to current layer """
|
""" Refresh text on key widgets to display data corresponding to current layer """
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import json
|
||||||
import os
|
import os
|
||||||
from urllib.request import urlopen
|
from urllib.request import urlopen
|
||||||
|
|
||||||
|
from editor_container import EditorContainer
|
||||||
from firmware_flasher import FirmwareFlasher
|
from firmware_flasher import FirmwareFlasher
|
||||||
from keymap_editor import KeymapEditor
|
from keymap_editor import KeymapEditor
|
||||||
from keymaps import KEYMAPS
|
from keymaps import KEYMAPS
|
||||||
|
|
@ -245,9 +246,8 @@ class MainWindow(QMainWindow):
|
||||||
if not container.valid():
|
if not container.valid():
|
||||||
continue
|
continue
|
||||||
|
|
||||||
w = QWidget()
|
c = EditorContainer(container)
|
||||||
w.setLayout(container)
|
self.tabs.addTab(c, tr("MainWindow", lbl))
|
||||||
self.tabs.addTab(w, tr("MainWindow", lbl))
|
|
||||||
|
|
||||||
def load_via_stack_json(self):
|
def load_via_stack_json(self):
|
||||||
data = urlopen("https://github.com/vial-kb/via-keymap-precompiled/raw/main/via_keyboard_stack.json")
|
data = urlopen("https://github.com/vial-kb/via-keymap-precompiled/raw/main/via_keyboard_stack.json")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue