Files
SemesterapparatsManager/src/ui/dialogs/medienadder.py
2024-02-22 21:20:57 +01:00

83 lines
2.9 KiB
Python

from PySide6 import QtCore, QtGui, QtWidgets
from .Ui_medianadder import Ui_Dialog
class MedienAdder(QtWidgets.QDialog):
def __init__(self):
super().__init__()
self.ui = Ui_Dialog()
self.ui.setupUi(self)
# Connect signals and slots for your custom functionality
self.ui.buttonBox.accepted.connect(self.accept)
self.ui.buttonBox.rejected.connect(self.reject)
self.ui.l_add.clicked.connect(self.add_to_list)
self.ui.l_add.setShortcut("Shift+Return")
# Initialize data variables to store the results
self.result_data = []
self.recolorize()
def add_to_list(self):
text = self.ui.lineEdit.text().strip()
if text == "":
return
else:
self.ui.listWidget.addItem(text)
self.ui.list_amount.setText(str(self.ui.listWidget.count()))
self.ui.lineEdit.clear()
def recolorize(self):
# set the color of the cells of the treeWidget to red if the field is not supported by the provider
# else set it to green
for i in range(self.ui.treeWidget.topLevelItemCount()):
for j in range(1, self.ui.treeWidget.columnCount()):
if self.ui.treeWidget.topLevelItem(i).text(j) == "0":
self.ui.treeWidget.topLevelItem(i).setBackground(
j, QtGui.QColor(255, 0, 0)
)
else:
self.ui.treeWidget.topLevelItem(i).setBackground(
j, QtGui.QColor(0, 255, 0)
)
# remove the text from the cells
self.ui.treeWidget.topLevelItem(i).setText(j, "")
def custom_context_menu(self):
menu = QtWidgets.QMenu()
menu.addAction("Remove")
action = menu.exec(QtGui.QCursor.pos())
if action.text() == "Remove":
self.remove_from_list()
def remove_from_list(self):
self.ui.listWidget.takeItem(self.ui.listWidget.currentRow())
self.ui.list_amount.setText(str(self.ui.listWidget.count()))
def add_to_list(self):
text = self.ui.lineEdit.text().strip()
if text:
self.ui.listWidget.addItem(text)
self.ui.list_amount.setText(str(self.ui.listWidget.count()))
self.ui.lineEdit.clear()
def accept(self):
# Gather and store the data you want to return
self.result_data = [
self.ui.listWidget.item(i).text() for i in range(self.ui.listWidget.count())
]
super().accept()
def keyPressEvent(self, event):
if (
event.key() == QtCore.Qt.Key.Key_Return
or event.key() == QtCore.Qt.Key.Key_Enter
):
# Handle the Return key press as needed (e.g., add to list)
self.add_to_list()
event.accept()
else:
super().keyPressEvent(event)