Skip to content
Snippets Groups Projects
Commit 372782fd authored by Thomas Holene Løkkeborg's avatar Thomas Holene Løkkeborg
Browse files

#98 frittstående funksjon for å sjekke ctrl / shift + / -

gjort pga klager på kode-duplisering
parent ad6059a0
No related branches found
No related tags found
1 merge request!73#98 Kodefrasemodul
Pipeline #83264 passed
"""Base/interface of each module."""
from abc import ABC
from PySide2 import QtGui
from PySide2.QtCore import Qt
# Font for module headline
HEADLINE_FONT = QtGui.QFont()
......@@ -118,3 +119,57 @@ def set_module_pos(widget, pos):
Position (x, y).
"""
widget.move(pos)
def event_is_ctrl_plus(event):
"""Check if the event is 'CTRL +'.
Parameters
----------
event : QKeyEvent
Event to check.
"""
return (
event.modifiers() == Qt.ControlModifier and event.key() == Qt.Key_Plus
)
def event_is_ctrl_minus(event):
"""Check if the event is 'CTRL -'.
Parameters
----------
event : QKeyEvent
Event to check.
"""
# Underline is in practice minus in this situation. We don't know why
return (
event.modifiers() == Qt.ControlModifier
and event.key() == Qt.Key_Underscore
)
def event_is_shift_plus(event):
"""Check if the event is 'SHIFT +'.
Parameters
----------
event : QKeyEvent
Event to check.
"""
return event.key() == Qt.Key_Question
def event_is_shift_minus(event):
"""Check if the event is 'SHIFT -'.
Parameters
----------
event : QKeyEvent
Event to check.
"""
# Underline is in practice minus in this situation. We don't know why
return (
event.modifiers() == Qt.ShiftModifier
and event.key() == Qt.Key_Underscore
)
......@@ -7,12 +7,13 @@ from PySide2.QtWidgets import (
QWidget,
QVBoxLayout,
)
from PySide2 import QtCore
from PySide2.QtCore import Qt
from PySide2.QtGui import QIcon
from soitool.modules.module_base import (
ModuleBase,
HEADLINE_FONT,
event_is_ctrl_plus,
event_is_ctrl_minus,
)
from soitool.modules.fit_to_contents_widgets import (
TableWithSizeOfContent,
......@@ -162,7 +163,7 @@ class CodePhraseModule(ModuleBase, QWidget, metaclass=Meta):
"""
item = QTableWidgetItem(code)
item.setFlags(item.flags() ^ Qt.ItemIsEditable)
self.table.setItem(self.table.currentRow() + 1, CODE_COLUMN, item)
self.table.setItem(row, CODE_COLUMN, item)
def set_phrase_table_item(self, row, phrase):
"""Set phrase at row.
......@@ -175,7 +176,7 @@ class CodePhraseModule(ModuleBase, QWidget, metaclass=Meta):
Phrase to set.
"""
item = QTableWidgetItem(phrase)
self.table.setItem(self.table.currentRow() + 1, PHRASE_COLUMN, item)
self.table.setItem(row, PHRASE_COLUMN, item)
def remove_row(self):
"""Remove selected row.
......@@ -199,15 +200,9 @@ class CodePhraseModule(ModuleBase, QWidget, metaclass=Meta):
event : QKeyEvent
event sent by Qt for us to handle
"""
if (
event.modifiers() == QtCore.Qt.ControlModifier
and event.key() == QtCore.Qt.Key_Plus
):
if event_is_ctrl_plus(event):
self.add_row()
elif (
event.modifiers() == QtCore.Qt.ControlModifier
and event.key() == QtCore.Qt.Key_Underscore # In practice minus
):
elif event_is_ctrl_minus(event):
self.remove_row()
def get_category(self):
......
......@@ -6,6 +6,10 @@ from soitool.modules.module_base import (
resize_table,
get_table_size,
HEADLINE_FONT,
event_is_shift_plus,
event_is_shift_minus,
event_is_ctrl_plus,
event_is_ctrl_minus,
)
START_ROWS = 2
......@@ -88,22 +92,13 @@ class TableModule(ModuleBase, QTableWidget, metaclass=Meta):
event : QKeyEvent
event sent by Qt for us to handle
"""
if event.key() == QtCore.Qt.Key_Question:
if event_is_shift_plus(event):
self.add_column()
elif (
event.modifiers() == QtCore.Qt.ShiftModifier
and event.key() == QtCore.Qt.Key_Underscore
):
elif event_is_shift_minus(event):
self.remove_column()
elif (
event.modifiers() == QtCore.Qt.ControlModifier
and event.key() == QtCore.Qt.Key_Plus
):
elif event_is_ctrl_plus(event):
self.add_row()
elif (
event.modifiers() == QtCore.Qt.ControlModifier
and event.key() == QtCore.Qt.Key_Underscore
):
elif event_is_ctrl_minus(event):
self.remove_row()
else:
super(TableModule, self).keyPressEvent(event)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment