From dc63304827c3b440252c9b61dacf40966b6da8cf Mon Sep 17 00:00:00 2001 From: Jared Beller Date: Tue, 12 Jan 2021 20:03:38 -0500 Subject: [PATCH] isolate logic for square ui buttons and fix layer selector --- src/main/python/constants.py | 2 +- src/main/python/keyboard_container.py | 5 +++-- src/main/python/square_button.py | 19 +++++++++++++++++++ src/main/python/tabbed_keycodes.py | 11 +++-------- 4 files changed, 26 insertions(+), 11 deletions(-) create mode 100644 src/main/python/square_button.py diff --git a/src/main/python/constants.py b/src/main/python/constants.py index 54f49fa..45bddc5 100644 --- a/src/main/python/constants.py +++ b/src/main/python/constants.py @@ -3,7 +3,7 @@ KEY_SIZE_RATIO = 2.667 KEY_SPACING_RATIO = 0.267 -KEYCODE_BTN_RATIO = 3 +KEYCODE_BTN_RATIO = 3.333 WINDOW_WIDTH, WINDOW_HEIGHT = 1024, 768 diff --git a/src/main/python/keyboard_container.py b/src/main/python/keyboard_container.py index e30ecae..7801064 100644 --- a/src/main/python/keyboard_container.py +++ b/src/main/python/keyboard_container.py @@ -9,6 +9,7 @@ from keyboard_widget import KeyboardWidget, EncoderWidget from keycodes import keycode_label, keycode_tooltip, keycode_is_mask, find_keycode from constants import LAYER_BTN_STYLE, ACTIVE_LAYER_BTN_STYLE from keymaps import KEYMAPS +from square_button import SquareButton from util import tr @@ -54,8 +55,8 @@ class KeyboardContainer(QWidget): # create new layer labels for x in range(self.keyboard.layers): - btn = QPushButton(str(x)) - btn.setFixedSize(25, 25) + btn = SquareButton(str(x)) + btn.setRelSize(1.667) btn.setCheckable(True) btn.clicked.connect(lambda state, idx=x: self.switch_layer(idx)) self.layout_layers.addWidget(btn) diff --git a/src/main/python/square_button.py b/src/main/python/square_button.py new file mode 100644 index 0000000..84ae2ae --- /dev/null +++ b/src/main/python/square_button.py @@ -0,0 +1,19 @@ +# SPDX-License-Identifier: GPL-2.0-or-later + +from PyQt5.QtCore import QSize +from PyQt5.QtWidgets import QPushButton + +class SquareButton(QPushButton): + + def __init__(self, parent=None): + super().__init__(parent) + + self.scale = 1.2 + + def setRelSize(self, ratio): + self.scale = ratio + self.updateGeometry() + + def sizeHint(self): + size = int(round(self.fontMetrics().height() * self.scale)) + return QSize(size, size) diff --git a/src/main/python/tabbed_keycodes.py b/src/main/python/tabbed_keycodes.py index 3f46110..3be1701 100644 --- a/src/main/python/tabbed_keycodes.py +++ b/src/main/python/tabbed_keycodes.py @@ -9,6 +9,7 @@ from flowlayout import FlowLayout from keycodes import keycode_tooltip, KEYCODES_BASIC, KEYCODES_ISO, KEYCODES_MACRO, KEYCODES_LAYERS, KEYCODES_QUANTUM, \ KEYCODES_BACKLIGHT, KEYCODES_MEDIA, KEYCODES_SPECIAL from keymaps import KEYMAPS +from square_button import SquareButton from util import tr @@ -65,7 +66,8 @@ class TabbedKeycodes(QTabWidget): buttons = [] for keycode in keycodes: - btn = KeycodeButton() + btn = SquareButton() + btn.setRelSize(KEYCODE_BTN_RATIO) btn.setToolTip(keycode_tooltip(keycode.code)) btn.clicked.connect(lambda st, k=keycode: self.keycode_changed.emit(k.code)) btn.keycode = keycode @@ -99,10 +101,3 @@ class TabbedKeycodes(QTabWidget): label = widget.keycode.label widget.setStyleSheet("QPushButton {}") widget.setText(label.replace("&", "&&")) - - -class KeycodeButton(QPushButton): - - def sizeHint(self): - size = KEYCODE_BTN_RATIO * self.fontMetrics().height() - return QSize(size, size)