diff --git a/scripts/.flake8 b/scripts/.flake8 index de75a936c7acec77595ab58ce170803ae7205cd2..f6c974480c4192afdbffa9c58c1b72a51d49339e 100644 --- a/scripts/.flake8 +++ b/scripts/.flake8 @@ -2,4 +2,4 @@ ; ignorerer sjekk for lange linjer, ettersom dette gjøres i pylint ; vi vil tillate lange linjer som avsluttes med link, og dette er mulig i ; pylint, men såvidt vi vet ikke mulig i flake8 -ignore = E501 +ignore = E501,W503 diff --git a/soitool/modules/module_table.py b/soitool/modules/module_table.py index e9d06a7502c15d4d859c0173eb39ccc7de5dd481..29adbce0881c19645afa7c8e0435eefc6748a197 100644 --- a/soitool/modules/module_table.py +++ b/soitool/modules/module_table.py @@ -1,5 +1,5 @@ """Module containing subclassed SOIModule (QTableWidget, ModuleBase).""" -from PySide2.QtWidgets import QTableWidget, QTableWidgetItem, QShortcut +from PySide2.QtWidgets import QTableWidget, QTableWidgetItem from PySide2 import QtGui, QtCore from soitool.modules.module_base import ModuleBase @@ -28,7 +28,13 @@ class TableModule(ModuleBase, QTableWidget, metaclass=Meta): """ def set_pos(self, pos): - """Set position of widget.""" + """Set position of widget. + + Parameters + ---------- + pos : QPoint + Position (x, y). + """ self.move(pos) def __init__(self): @@ -58,7 +64,31 @@ class TableModule(ModuleBase, QTableWidget, metaclass=Meta): self.cellChanged.connect(self.resize) - self.set_shortcuts() + def keyPressEvent(self, event): + """Launch actions when specific combinations of keys are pressed. + + If the keys pressed are not related to a shortcut on this custom widget + the event is sent on to be handled by the superclass (for navigation + with arrow-keys for.eg.) + + Parameters + ---------- + event : QKeyEvent + event sent by Qt for us to handle + """ + if event.key() == QtCore.Qt.Key_Question: + self.add_column() + elif (event.modifiers() == QtCore.Qt.ShiftModifier + and event.key() == QtCore.Qt.Key_Underscore): + self.remove_column() + elif (event.modifiers() == QtCore.Qt.ControlModifier + and event.key() == QtCore.Qt.Key_Plus): + self.add_row() + elif (event.modifiers() == QtCore.Qt.ControlModifier + and event.key() == QtCore.Qt.Key_Underscore): + self.remove_row() + else: + super(TableModule, self).keyPressEvent(event) def set_header_item(self, column, text): """Insert item with header-style. @@ -77,20 +107,6 @@ class TableModule(ModuleBase, QTableWidget, metaclass=Meta): item.setFont(HEADER_FONT) self.setItem(0, column, item) - def set_shortcuts(self): - """Set shortcuts for adding and removing rows and columns.""" - # Create shortcuts - shortcut_add_col = QShortcut(QtGui.QKeySequence("Shift++"), self) - shortcut_rem_col = QShortcut(QtGui.QKeySequence("Shift+-"), self) - shortcut_add_row = QShortcut(QtGui.QKeySequence("Ctrl++"), self) - shortcut_rem_row = QShortcut(QtGui.QKeySequence("Ctrl+-"), self) - - # Connect shortcuts to functions - shortcut_add_col.activated.connect(self.add_column) - shortcut_rem_col.activated.connect(self.remove_column) - shortcut_add_row.activated.connect(self.add_row) - shortcut_rem_row.activated.connect(self.remove_row) - def add_column(self): """Add column to the right of selected column.""" self.insertColumn(self.currentColumn() + 1)