Skip to content
Snippets Groups Projects
Commit cc4c5733 authored by Anders H. Rebner's avatar Anders H. Rebner
Browse files

Merge branch 'fikse-shortcuts-ved-flere-tablemodules' into 'master'

#32 shortcuts fungerer nå ved flere TableModules i samme scene

See merge request !21
parents 8eddc2d4 b63ac77b
No related branches found
No related tags found
1 merge request!21#32 shortcuts fungerer nå ved flere TableModules i samme scene
Pipeline #72832 passed
......@@ -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
"""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)
......
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