Skip to content
Snippets Groups Projects

#101 & #121 kodetabell-innstillings-popup og db/DB->database i GUI

Merged Anders H. Rebner requested to merge kodetabell-popup into master
Files
6
@@ -5,6 +5,7 @@ Parent-class for AuthenticationBoardModule and SubtractorCodesModule.
from PySide2.QtWidgets import QTableWidget, QTableWidgetItem
from PySide2.QtCore import Qt
from soitool.coder import get_code_set, get_code
from soitool.modules.code_table_settings import CodeTableSettings
from soitool.modules.module_base import (
ModuleBase,
get_table_size,
@@ -28,14 +29,6 @@ class CodeTableBase(ModuleBase, QTableWidget, metaclass=Meta):
"""
def __init__(self, size, data):
if self.type not in [
AUTHENTICATIONBOARD_MODULE,
SUBTRACTORCODES_MODULE,
]:
raise ValueError(
"Invalid value for class-variable type: "
"'{}'".format(self.type)
)
QTableWidget.__init__(self)
ModuleBase.__init__(self)
@@ -51,8 +44,33 @@ class CodeTableBase(ModuleBase, QTableWidget, metaclass=Meta):
self, rows=False, columns=False, has_headline=True,
)
)
# If parameters are None, generate new table
# If parameters are None, launch settings-dialog and generate new table
if size is None and data is None:
# Disabling pylint-error
# 'Access to member before its definition line'
# because the variable is defined in subclass.
# pylint: disable=E0203
if self.start_no_of_codes > self.maximum_no_of_codes:
raise ValueError(
"The value of module-constant 'START_NO_OF_CODES' "
"is larger than module-constant 'MAXIMUM_NO_OF_CODES': "
"{} > {}".format(
self.start_no_of_codes, self.maximum_no_of_codes
)
)
dialog = CodeTableSettings(self)
dialog.exec()
self.start_headline = dialog.edit_headline.text()
self.start_no_of_codes = int(
dialog.combo_no_of_codes.currentText()
)
self.code_length = int(dialog.combo_code_length.currentText())
self.space_interval = int(
dialog.combo_space_interval.currentText()
)
self.space_amount = int(dialog.combo_space_amount.currentText())
self.generate_table()
self.resizeColumnsToContents()
self.resizeRowsToContents()
@@ -77,10 +95,9 @@ class CodeTableBase(ModuleBase, QTableWidget, metaclass=Meta):
item = QTableWidgetItem(
cells[i + 1][j]
) # +1 skip headline
if j == 2 and self.type == AUTHENTICATIONBOARD_MODULE:
item.setTextAlignment(Qt.AlignLeft | Qt.AlignVCenter)
else:
if j == 2:
item.setTextAlignment(Qt.AlignCenter)
item.setFont(self.code_font)
self.setItem(i, j, item)
self.resizeColumnsToContents()
@@ -192,10 +209,10 @@ class CodeTableBase(ModuleBase, QTableWidget, metaclass=Meta):
event.modifiers() == Qt.ControlModifier
and event.key() == Qt.Key_Underscore
):
# If at least one row (+ headline-row) exists and a row other than
# If at least two rows (+ headline-row) exists and a row other than
# headline-row is selected
row_index = self.currentRow()
if self.rowCount() > 2 and row_index != 0 and row_index != -1:
if self.rowCount() > 3 and row_index != 0 and row_index != -1:
self.remove_row(row_index)
else:
super().keyPressEvent(event)
Loading