Files
SemesterapparatsManager/src/ui/dialogs/parsed_titles.py

82 lines
2.5 KiB
Python

from PyQt6 import QtWidgets
from src.backend import AutoAdder
from .dialog_sources.Ui_parsed_titles import Ui_Form
import loguru
import sys
log = loguru.logger
log.remove()
log.add("application.log", rotation="1 week", retention="1 month")
log.add(sys.stdout, level="INFO")
class ParsedTitles(QtWidgets.QWidget, Ui_Form):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.signatures = []
self.returned = []
self.prof_id = None
self.app_id = None
self.worker = None
def populate_table(self):
for i in range(len(self.signatures)):
self.listWidget.addItem(QtWidgets.QListWidgetItem())
self.listWidget.item(i).setText(self.signatures[i])
self.listWidget.item(i).setToolTip("Daten werden gesammelt")
def update_progress_bar(self, value: int):
self.progressBar.setValue(value)
def worker_quit(self):
# print("Terminating worker")
self.worker.terminate()
self.worker.quit()
self.worker.deleteLater()
self.worker = None
def start(self):
log.info("Starting AutoAdder")
self.worker = AutoAdder(
data=self.signatures,
app_id=self.app_id,
prof_id=self.prof_id,
)
self.worker.finished.connect(self.on_completion)
self.worker.updateSignal.connect(self.update_progress_bar)
self.worker.setTextSignal.connect(self.update_lists)
self.worker.progress.connect(self.determine_progress)
self.worker.finished.connect(self.worker.quit)
self.worker.finished.connect(self.worker.deleteLater)
# self.worker.updateSignal.connect(self.update_progress_label)
# worker.finished.connect(worker.deleteLater)
self.worker.start()
def on_completion(self):
log.info("AutoAdder finished")
log.info("Returning data")
# create a function that closes the dialog
def determine_progress(self, signal):
# check length of listWidget
length = self.listWidget.count()
# print(f"Length of listWidget: {length}")
if length == 0:
log.info("AutoAdder finished")
self.buttonBox.accepted.emit()
def update_lists(self, signal):
# get text of first entry in listWidget
text = self.listWidget.item(0).text()
# remove first entry
self.listWidget.takeItem(0)
# add first entry to listWidget_done
self.listWidget_done.addItem(text)