keyboard_widget: pop up any key dialog on double click
parent
915223cbb4
commit
0bbc49c500
|
|
@ -135,6 +135,7 @@ class EncoderWidget(KeyWidget):
|
||||||
class KeyboardWidget(QWidget):
|
class KeyboardWidget(QWidget):
|
||||||
|
|
||||||
clicked = pyqtSignal()
|
clicked = pyqtSignal()
|
||||||
|
anykey = pyqtSignal()
|
||||||
|
|
||||||
def __init__(self, layout_editor):
|
def __init__(self, layout_editor):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
@ -359,8 +360,10 @@ class KeyboardWidget(QWidget):
|
||||||
QToolTip.showText(ev.globalPos(), key.tooltip)
|
QToolTip.showText(ev.globalPos(), key.tooltip)
|
||||||
else:
|
else:
|
||||||
QToolTip.hideText()
|
QToolTip.hideText()
|
||||||
if ev.type() == QEvent.LayoutRequest:
|
elif ev.type() == QEvent.LayoutRequest:
|
||||||
self.update_layout()
|
self.update_layout()
|
||||||
|
elif ev.type() == QEvent.MouseButtonDblClick and self.active_key:
|
||||||
|
self.anykey.emit()
|
||||||
return super().event(ev)
|
return super().event(ev)
|
||||||
|
|
||||||
def set_enabled(self, val):
|
def set_enabled(self, val):
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
from any_keycode_dialog import AnyKeycodeDialog
|
||||||
from basic_editor import BasicEditor
|
from basic_editor import BasicEditor
|
||||||
from keyboard_container import KeyboardContainer
|
from keyboard_container import KeyboardContainer
|
||||||
from keycodes import recreate_keyboard_keycodes
|
from keycodes import recreate_keyboard_keycodes
|
||||||
|
|
@ -13,9 +13,11 @@ class KeymapEditor(BasicEditor):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
self.keyboard_container = KeyboardContainer(layout_editor)
|
self.keyboard_container = KeyboardContainer(layout_editor)
|
||||||
|
self.keyboard_container.container.anykey.connect(self.on_any_keycode)
|
||||||
|
|
||||||
self.tabbed_keycodes = TabbedKeycodes()
|
self.tabbed_keycodes = TabbedKeycodes()
|
||||||
self.tabbed_keycodes.keycode_changed.connect(self.on_keycode_changed)
|
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.keyboard_container)
|
||||||
self.addWidget(self.tabbed_keycodes)
|
self.addWidget(self.tabbed_keycodes)
|
||||||
|
|
@ -45,3 +47,8 @@ class KeymapEditor(BasicEditor):
|
||||||
def set_keymap_override(self, override):
|
def set_keymap_override(self, override):
|
||||||
self.keyboard_container.set_keymap_override(override)
|
self.keyboard_container.set_keymap_override(override)
|
||||||
self.tabbed_keycodes.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)
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,9 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
from PyQt5.QtCore import Qt, QSize, pyqtSignal
|
from PyQt5.QtCore import Qt, pyqtSignal
|
||||||
from PyQt5.QtWidgets import QTabWidget, QWidget, QPushButton, QScrollArea, QApplication
|
from PyQt5.QtWidgets import QTabWidget, QWidget, QScrollArea, QApplication
|
||||||
from PyQt5.QtGui import QPalette
|
from PyQt5.QtGui import QPalette
|
||||||
|
|
||||||
from any_keycode_dialog import AnyKeycodeDialog
|
|
||||||
from constants import KEYCODE_BTN_RATIO
|
from constants import KEYCODE_BTN_RATIO
|
||||||
from flowlayout import FlowLayout
|
from flowlayout import FlowLayout
|
||||||
from keycodes import keycode_tooltip, KEYCODES_BASIC, KEYCODES_ISO, KEYCODES_MACRO, KEYCODES_LAYERS, KEYCODES_QUANTUM, \
|
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):
|
class TabbedKeycodes(QTabWidget):
|
||||||
|
|
||||||
keycode_changed = pyqtSignal(int)
|
keycode_changed = pyqtSignal(int)
|
||||||
|
anykey = pyqtSignal()
|
||||||
|
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
|
|
@ -54,7 +54,7 @@ class TabbedKeycodes(QTabWidget):
|
||||||
btn = SquareButton()
|
btn = SquareButton()
|
||||||
btn.setText("Any")
|
btn.setText("Any")
|
||||||
btn.setRelSize(KEYCODE_BTN_RATIO)
|
btn.setRelSize(KEYCODE_BTN_RATIO)
|
||||||
btn.clicked.connect(self.on_any_keycode)
|
btn.clicked.connect(lambda: self.anykey.emit())
|
||||||
layout.addWidget(btn)
|
layout.addWidget(btn)
|
||||||
|
|
||||||
self.widgets += self.create_buttons(layout, keycodes)
|
self.widgets += self.create_buttons(layout, keycodes)
|
||||||
|
|
@ -111,8 +111,3 @@ class TabbedKeycodes(QTabWidget):
|
||||||
label = widget.keycode.label
|
label = widget.keycode.label
|
||||||
widget.setStyleSheet("QPushButton {}")
|
widget.setStyleSheet("QPushButton {}")
|
||||||
widget.setText(label.replace("&", "&&"))
|
widget.setText(label.replace("&", "&&"))
|
||||||
|
|
||||||
def on_any_keycode(self):
|
|
||||||
dlg = AnyKeycodeDialog()
|
|
||||||
if dlg.exec_() and dlg.value >= 0:
|
|
||||||
self.keycode_changed.emit(dlg.value)
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue