From 56a7c22de79419d9848e79080fc45a193f03ed9c Mon Sep 17 00:00:00 2001 From: Nisker Date: Fri, 25 Jun 2021 21:39:06 +0200 Subject: [PATCH] Scalable keys --- src/main/python/keyboard_widget.py | 7 +++++-- src/main/python/keymap_editor.py | 16 ++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/main/python/keyboard_widget.py b/src/main/python/keyboard_widget.py index 7fd1527..6334946 100644 --- a/src/main/python/keyboard_widget.py +++ b/src/main/python/keyboard_widget.py @@ -354,9 +354,9 @@ class KeyboardWidget(QWidget): """ Returns key, hit_masked_part """ for key in self.widgets: - if key.masked and key.mask_polygon.containsPoint(pos, Qt.OddEvenFill): + if key.masked and key.mask_polygon.containsPoint(pos/self.scale, Qt.OddEvenFill): return key, True - if key.polygon.containsPoint(pos, Qt.OddEvenFill): + if key.polygon.containsPoint(pos/self.scale, Qt.OddEvenFill): return key, False return None, False @@ -411,3 +411,6 @@ class KeyboardWidget(QWidget): def set_scale(self, scale): self.scale = scale + + def get_scale(self): + return self.scale diff --git a/src/main/python/keymap_editor.py b/src/main/python/keymap_editor.py index f265fe3..85139a9 100644 --- a/src/main/python/keymap_editor.py +++ b/src/main/python/keymap_editor.py @@ -24,12 +24,14 @@ class KeymapEditor(BasicEditor): self.layout_editor = layout_editor self.layout_layers = QHBoxLayout() + self.layout_size = QVBoxLayout() layer_label = QLabel(tr("KeymapEditor", "Layer")) layout_labels_container = QHBoxLayout() layout_labels_container.addWidget(layer_label) layout_labels_container.addLayout(self.layout_layers) layout_labels_container.addStretch() + layout_labels_container.addLayout(self.layout_size) # contains the actual keyboard self.container = KeyboardWidget(layout_editor) @@ -83,6 +85,20 @@ class KeymapEditor(BasicEditor): btn.clicked.connect(lambda state, idx=x: self.switch_layer(idx)) self.layout_layers.addWidget(btn) self.layer_buttons.append(btn) + for x in range(0,2): + btn = SquareButton("-") if x else SquareButton("+") + btn.setFocusPolicy(Qt.NoFocus) + btn.setCheckable(False) + btn.clicked.connect(lambda state, idx=x: self.adjust_size(idx)) + self.layout_size.addWidget(btn) + self.layer_buttons.append(btn) + + def adjust_size(self, minus): + if minus: + self.container.set_scale(self.container.get_scale() - 0.1) + else: + self.container.set_scale(self.container.get_scale() + 0.1) + self.refresh_layer_display() def rebuild(self, device): super().rebuild(device)