keyboard_widget: pop up any key dialog on double click

main
Ilya Zhuravlev 2021-02-02 09:14:55 -05:00
parent 915223cbb4
commit 0bbc49c500
3 changed files with 16 additions and 11 deletions

View File

@ -135,6 +135,7 @@ class EncoderWidget(KeyWidget):
class KeyboardWidget(QWidget):
clicked = pyqtSignal()
anykey = pyqtSignal()
def __init__(self, layout_editor):
super().__init__()
@ -359,8 +360,10 @@ class KeyboardWidget(QWidget):
QToolTip.showText(ev.globalPos(), key.tooltip)
else:
QToolTip.hideText()
if ev.type() == QEvent.LayoutRequest:
elif ev.type() == QEvent.LayoutRequest:
self.update_layout()
elif ev.type() == QEvent.MouseButtonDblClick and self.active_key:
self.anykey.emit()
return super().event(ev)
def set_enabled(self, val):

View File

@ -1,5 +1,5 @@
# SPDX-License-Identifier: GPL-2.0-or-later
from any_keycode_dialog import AnyKeycodeDialog
from basic_editor import BasicEditor
from keyboard_container import KeyboardContainer
from keycodes import recreate_keyboard_keycodes
@ -13,9 +13,11 @@ class KeymapEditor(BasicEditor):
super().__init__()
self.keyboard_container = KeyboardContainer(layout_editor)
self.keyboard_container.container.anykey.connect(self.on_any_keycode)
self.tabbed_keycodes = TabbedKeycodes()
self.tabbed_keycodes.keycode_changed.connect(self.on_keycode_changed)
self.tabbed_keycodes.anykey.connect(self.on_any_keycode)
self.addWidget(self.keyboard_container)
self.addWidget(self.tabbed_keycodes)
@ -45,3 +47,8 @@ class KeymapEditor(BasicEditor):
def set_keymap_override(self, override):
self.keyboard_container.set_keymap_override(override)
self.tabbed_keycodes.set_keymap_override(override)
def on_any_keycode(self):
dlg = AnyKeycodeDialog()
if dlg.exec_() and dlg.value >= 0:
self.on_keycode_changed(dlg.value)

View File

@ -1,10 +1,9 @@
# SPDX-License-Identifier: GPL-2.0-or-later
from PyQt5.QtCore import Qt, QSize, pyqtSignal
from PyQt5.QtWidgets import QTabWidget, QWidget, QPushButton, QScrollArea, QApplication
from PyQt5.QtCore import Qt, pyqtSignal
from PyQt5.QtWidgets import QTabWidget, QWidget, QScrollArea, QApplication
from PyQt5.QtGui import QPalette
from any_keycode_dialog import AnyKeycodeDialog
from constants import KEYCODE_BTN_RATIO
from flowlayout import FlowLayout
from keycodes import keycode_tooltip, KEYCODES_BASIC, KEYCODES_ISO, KEYCODES_MACRO, KEYCODES_LAYERS, KEYCODES_QUANTUM, \
@ -17,6 +16,7 @@ from util import tr
class TabbedKeycodes(QTabWidget):
keycode_changed = pyqtSignal(int)
anykey = pyqtSignal()
def __init__(self, parent=None):
super().__init__(parent)
@ -54,7 +54,7 @@ class TabbedKeycodes(QTabWidget):
btn = SquareButton()
btn.setText("Any")
btn.setRelSize(KEYCODE_BTN_RATIO)
btn.clicked.connect(self.on_any_keycode)
btn.clicked.connect(lambda: self.anykey.emit())
layout.addWidget(btn)
self.widgets += self.create_buttons(layout, keycodes)
@ -111,8 +111,3 @@ class TabbedKeycodes(QTabWidget):
label = widget.keycode.label
widget.setStyleSheet("QPushButton {}")
widget.setText(label.replace("&", "&&"))
def on_any_keycode(self):
dlg = AnyKeycodeDialog()
if dlg.exec_() and dlg.value >= 0:
self.keycode_changed.emit(dlg.value)