diff --git a/src/ui/dialogs/Ui_mail_preview.py b/src/ui/dialogs/Ui_mail_preview.py deleted file mode 100644 index dff1a76..0000000 --- a/src/ui/dialogs/Ui_mail_preview.py +++ /dev/null @@ -1,202 +0,0 @@ -# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\dialogs\mail_preview.ui' -# -# Created by: PyQt6 UI code generator 6.3.1 -# -# WARNING: Any manual changes made to this file will be lost when pyuic6 is -# run again. Do not edit this file unless you know what you are doing. - - -import os -import re -import subprocess -import tempfile - -from omegaconf import OmegaConf -from PyQt6 import QtCore, QtGui, QtWidgets - -config = OmegaConf.load("config.yaml") - - -class Ui_eMailPreview(object): - - def setupUi( - self, - eMailPreview, - # app_id, - # app_name, - # app_subject, - # prof_name, - # prof_mail, - ): - eMailPreview.setObjectName("eMailPreview") - eMailPreview.resize(676, 676) - self.buttonBox = QtWidgets.QDialogButtonBox(eMailPreview) - self.buttonBox.setGeometry(QtCore.QRect(310, 630, 341, 32)) - self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal) - self.buttonBox.setStandardButtons( - QtWidgets.QDialogButtonBox.StandardButton.Cancel - | QtWidgets.QDialogButtonBox.StandardButton.Ok - ) - self.buttonBox.setObjectName("buttonBox") - self.gridLayoutWidget = QtWidgets.QWidget(eMailPreview) - self.gridLayoutWidget.setGeometry(QtCore.QRect(10, 10, 661, 621)) - self.gridLayoutWidget.setObjectName("gridLayoutWidget") - self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget) - self.gridLayout.setContentsMargins(0, 0, 0, 0) - self.gridLayout.setObjectName("gridLayout") - self.label_5 = QtWidgets.QLabel(self.gridLayoutWidget) - self.label_5.setObjectName("label_5") - self.gridLayout.addWidget(self.label_5, 0, 0, 1, 1) - self.prof_name = QtWidgets.QLineEdit(self.gridLayoutWidget) - self.prof_name.setObjectName("prof_name") - self.gridLayout.addWidget(self.prof_name, 2, 2, 1, 1) - self.label_3 = QtWidgets.QLabel(self.gridLayoutWidget) - self.label_3.setAlignment( - QtCore.Qt.AlignmentFlag.AlignLeading - | QtCore.Qt.AlignmentFlag.AlignLeft - | QtCore.Qt.AlignmentFlag.AlignTop - ) - self.label_3.setObjectName("label_3") - self.gridLayout.addWidget(self.label_3, 5, 0, 1, 1) - self.mail_name = QtWidgets.QLineEdit(self.gridLayoutWidget) - self.mail_name.setObjectName("mail_name") - self.gridLayout.addWidget(self.mail_name, 1, 2, 1, 1) - self.label_2 = QtWidgets.QLabel(self.gridLayoutWidget) - self.label_2.setObjectName("label_2") - self.gridLayout.addWidget(self.label_2, 2, 0, 1, 1) - self.label_4 = QtWidgets.QLabel(self.gridLayoutWidget) - self.label_4.setObjectName("label_4") - self.gridLayout.addWidget(self.label_4, 3, 0, 1, 1) - self.mail_header = QtWidgets.QLineEdit(self.gridLayoutWidget) - self.mail_header.setObjectName("mail_header") - self.gridLayout.addWidget(self.mail_header, 3, 2, 1, 1) - self.label = QtWidgets.QLabel(self.gridLayoutWidget) - self.label.setObjectName("label") - self.gridLayout.addWidget(self.label, 1, 0, 1, 1) - self.comboBox = QtWidgets.QComboBox(self.gridLayoutWidget) - self.comboBox.setObjectName("comboBox") - self.gridLayout.addWidget(self.comboBox, 0, 2, 1, 1) - self.mail_body = QtWidgets.QTextEdit(self.gridLayoutWidget) - self.mail_body.setObjectName("mail_body") - self.gridLayout.addWidget(self.mail_body, 5, 2, 1, 1) - self.horizontalLayout_3 = QtWidgets.QHBoxLayout() - self.horizontalLayout_3.setObjectName("horizontalLayout_3") - self.gender_male = QtWidgets.QRadioButton(self.gridLayoutWidget) - self.gender_male.setObjectName("gender_male") - self.horizontalLayout_3.addWidget(self.gender_male) - self.gender_female = QtWidgets.QRadioButton(self.gridLayoutWidget) - self.gender_female.setObjectName("gender_female") - self.horizontalLayout_3.addWidget(self.gender_female) - self.gender_non = QtWidgets.QRadioButton(self.gridLayoutWidget) - self.gender_non.setObjectName("gender_non") - self.horizontalLayout_3.addWidget(self.gender_non) - spacerItem = QtWidgets.QSpacerItem( - 40, - 20, - QtWidgets.QSizePolicy.Policy.Expanding, - QtWidgets.QSizePolicy.Policy.Minimum, - ) - self.horizontalLayout_3.addItem(spacerItem) - self.gridLayout.addLayout(self.horizontalLayout_3, 4, 2, 1, 1) - self.label_6 = QtWidgets.QLabel(self.gridLayoutWidget) - self.label_6.setObjectName("label_6") - self.gridLayout.addWidget(self.label_6, 4, 0, 1, 1) - - self.retranslateUi(eMailPreview) - self.buttonBox.accepted.connect(eMailPreview.accept) # type: ignore - self.buttonBox.rejected.connect(eMailPreview.reject) # type: ignore - QtCore.QMetaObject.connectSlotsByName(eMailPreview) - # self._appid = app_id - # self._appname = app_name - # self._subject = app_subject - # self.prof_name.setText(prof_name) - # self._mail_data = "" - # self._prof_mail = prof_mail - # self.load_mail_templates() - self.comboBox.addItem("") - self.comboBox.setCurrentText("") - # self.buttonBox.accepted.connect(self.save_mail) - # self.comboBox.currentIndexChanged.connect(self.set_mail) - # self.gender_female.clicked.connect(self.set_mail) - # self.gender_male.clicked.connect(self.set_mail) - # self.gender_non.clicked.connect(self.set_mail) - - def retranslateUi(self, eMailPreview): - _translate = QtCore.QCoreApplication.translate - eMailPreview.setWindowTitle(_translate("eMailPreview", "Dialog")) - self.label_5.setText(_translate("eMailPreview", "Art")) - self.label_3.setText(_translate("eMailPreview", "Mail")) - self.label_2.setText(_translate("eMailPreview", "Prof")) - self.label_4.setText(_translate("eMailPreview", "Betreff")) - self.label.setText(_translate("eMailPreview", "eMail")) - self.gender_male.setText(_translate("eMailPreview", "M")) - self.gender_female.setText(_translate("eMailPreview", "W")) - self.gender_non.setText(_translate("eMailPreview", "Divers")) - self.label_6.setText(_translate("eMailPreview", "Geschlecht")) - - # def get_greeting(self): - # if self.gender_male.isChecked(): - # return "Sehr geehrter Herr" - # elif self.gender_female.isChecked(): - # return "Sehr geehrte Frau" - # elif self.gender_non.isChecked(): - # return "Guten Tag" - - # def set_mail(self): - # email_template = self.comboBox.currentText() - # if email_template == "": - # return - # with open(f"mail_vorlagen/{email_template}", "r", encoding="utf-8") as f: - # mail_template = f.read() - # header = re.findall(r"Subject: (.*)", mail_template) - # if header: - # email_header = header[0] - # else: - # email_header = email_template.split(".eml")[0] - # self.mail_header.setText(email_header) - # self.mail_data = mail_template.split("")[0] - # mail_html = mail_template.split("")[1] - # mail_html = "" + mail_html - # mail_html = mail_html.format( - # Profname=self.prof_name.text().split(" ")[1], - # Appname=self._appname, - # AppNr=self._appid, - # AppSubject=self._subject, - # greeting=self.get_greeting(), - # ) - - # self.mail_body.setHtml(mail_html) - - # def load_mail_templates(self): - # mail_templates = os.listdir("mail_vorlagen") - # mail_templates = [f for f in mail_templates if f.endswith(".eml")] - # print(mail_templates) - # self.comboBox.addItems(mail_templates) - - # def save_mail(self): - # # create a temporary file - # mail_header = self.mail_header.text() - # mail_body = self.mail_body.toHtml() - # mail = self.mail_data + mail_body - # mail = mail.replace("Subject:", f"Subject: {mail_header}") - # directory = config["database"]["tempdir"] - # directory = directory.replace("~", str(os.path.expanduser("~"))) - # with tempfile.NamedTemporaryFile( - # mode="w", delete=False, suffix=".eml", encoding="utf-8", dir=directory - # ) as f: - # f.write(mail) - # self.mail_path = f.name - # print(self.mail_path) - # # open the file using thunderbird - # subprocess.Popen([f"{self.mail_path}"]) - # # delete the file - # # os.remove(self.mail_path) - - -def launch(): - app = QtWidgets.QApplication([]) - eMailPreview = QtWidgets.QDialog() - ui = Ui_eMailPreview() - ui.setupUi(eMailPreview, "1", "Test", "Biologie", "Kirchner, Alexander") - eMailPreview.show() - app.exec() diff --git a/src/ui/dialogs/Ui_medianadder.ts b/src/ui/dialogs/Ui_medianadder.ts deleted file mode 100644 index 6401616..0000000 --- a/src/ui/dialogs/Ui_medianadder.ts +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/ui/dialogs/Ui_parsed_titles.py b/src/ui/dialogs/Ui_parsed_titles.py deleted file mode 100644 index a0f318d..0000000 --- a/src/ui/dialogs/Ui_parsed_titles.py +++ /dev/null @@ -1,160 +0,0 @@ -# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\Semesterapparate\ui\dialogs\parsed_titles.ui' -# -# Created by: PyQt6 UI code generator 6.3.1 -# -# WARNING: Any manual changes made to this file will be lost when pyuic6 is -# run again. Do not edit this file unless you know what you are doing. - - -from PyQt6 import QtCore, QtGui, QtWidgets - -from src.logic import AutoAdder -from src.logic.log import MyLogger - -logger = MyLogger("AutoTitleAdder") - - -class Ui_Form(object): - def setupUi(self, Form): - Form.setObjectName("Form") - Form.resize(402, 316) - self.frame = QtWidgets.QFrame(Form) - self.frame.setGeometry(QtCore.QRect(10, 10, 381, 41)) - self.frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.frame.setFrameShadow(QtWidgets.QFrame.Shadow.Raised) - self.frame.setObjectName("frame") - self.horizontalLayoutWidget = QtWidgets.QWidget(self.frame) - self.horizontalLayoutWidget.setGeometry(QtCore.QRect(0, 0, 381, 41)) - self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget") - self.horizontalLayout = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget) - self.horizontalLayout.setContentsMargins(0, 0, 0, 0) - self.horizontalLayout.setObjectName("horizontalLayout") - self.label = QtWidgets.QLabel(self.horizontalLayoutWidget) - self.label.setObjectName("label") - self.horizontalLayout.addWidget(self.label) - self.count = QtWidgets.QLabel(self.horizontalLayoutWidget) - font = QtGui.QFont() - font.setBold(True) - font.setWeight(75) - self.count.setFont(font) - self.count.setTextFormat(QtCore.Qt.TextFormat.PlainText) - self.count.setObjectName("count") - self.horizontalLayout.addWidget(self.count) - self.label_2 = QtWidgets.QLabel(self.horizontalLayoutWidget) - self.label_2.setObjectName("label_2") - self.horizontalLayout.addWidget(self.label_2) - spacerItem = QtWidgets.QSpacerItem( - 40, - 20, - QtWidgets.QSizePolicy.Policy.Expanding, - QtWidgets.QSizePolicy.Policy.Minimum, - ) - self.horizontalLayout.addItem(spacerItem) - self.frame_2 = QtWidgets.QFrame(Form) - self.frame_2.setGeometry(QtCore.QRect(10, 80, 381, 201)) - self.frame_2.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) - self.frame_2.setFrameShadow(QtWidgets.QFrame.Shadow.Raised) - self.frame_2.setObjectName("frame_2") - self.horizontalLayoutWidget_2 = QtWidgets.QWidget(self.frame_2) - self.horizontalLayoutWidget_2.setGeometry(QtCore.QRect(0, 10, 381, 191)) - self.horizontalLayoutWidget_2.setObjectName("horizontalLayoutWidget_2") - self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget_2) - self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0) - self.horizontalLayout_2.setObjectName("horizontalLayout_2") - self.listWidget = QtWidgets.QListWidget(self.horizontalLayoutWidget_2) - self.listWidget.setObjectName("listWidget") - self.horizontalLayout_2.addWidget(self.listWidget) - self.listWidget_done = QtWidgets.QListWidget(self.horizontalLayoutWidget_2) - self.listWidget_done.setObjectName("listWidget_done") - self.horizontalLayout_2.addWidget(self.listWidget_done) - self.progressBar = QtWidgets.QProgressBar(Form) - self.progressBar.setGeometry(QtCore.QRect(10, 60, 381, 23)) - self.progressBar.setProperty("value", 24) - self.progressBar.setObjectName("progressBar") - self.buttonBox = QtWidgets.QDialogButtonBox(Form) - self.buttonBox.setGeometry(QtCore.QRect(230, 290, 156, 23)) - self.buttonBox.setStandardButtons( - QtWidgets.QDialogButtonBox.StandardButton.Cancel - | QtWidgets.QDialogButtonBox.StandardButton.Ok - ) - self.buttonBox.setObjectName("buttonBox") - self.toolButton = QtWidgets.QToolButton(Form) - self.toolButton.setGeometry(QtCore.QRect(20, 290, 25, 19)) - self.toolButton.setObjectName("toolButton") - self.signatures = [] - self.prof_id = None - self.app_id = None - self.thread = QtCore.QThread() - self.toolButton.hide() - self.retranslateUi(Form) - QtCore.QMetaObject.connectSlotsByName(Form) - self.toolButton.clicked.connect(self.start) - # if cancel is clicked, terminate the thread - self.buttonBox.rejected.connect(self.thread_quit) - - def retranslateUi(self, Form): - _translate = QtCore.QCoreApplication.translate - Form.setWindowTitle(_translate("Form", "Form")) - self.label.setText(_translate("Form", "Es wurden")) - self.count.setText(_translate("Form", "0")) - self.label_2.setText(_translate("Form", "Signaturen gefunden.")) - self.toolButton.setText(_translate("Form", "...")) - - 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 thread_quit(self): - print("Terminating thread") - self.thread.terminate() - self.thread.quit() - self.thread.deleteLater() - self.thread = None - - def start(self): - logger.log_info("Starting AutoAdder") - - self.thread = AutoAdder( - data=self.signatures, - app_id=self.app_id, - prof_id=self.prof_id, - ) - self.thread.finished.connect(self.on_completion) - self.thread.updateSignal.connect(self.update_progress_bar) - self.thread.setTextSignal.connect(self.update_lists) - self.thread.progress.connect(self.determine_progress) - self.thread.finished.connect(self.thread.quit) - self.thread.finished.connect(self.thread.deleteLater) - # self.thread.updateSignal.connect(self.update_progress_label) - # worker.finished.connect(worker.deleteLater) - - self.thread.start() - - def on_completion(self): - logger.log_info("AutoAdder finished") - logger.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: - logger.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) - - diff --git a/src/ui/dialogs/Ui_settings.ts b/src/ui/dialogs/Ui_settings.ts deleted file mode 100644 index 6401616..0000000 --- a/src/ui/dialogs/Ui_settings.ts +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/ui/dialogs/__init__.py b/src/ui/dialogs/__init__.py index 72ca62f..9d86018 100644 --- a/src/ui/dialogs/__init__.py +++ b/src/ui/dialogs/__init__.py @@ -3,14 +3,13 @@ from .ext_app import Ui_Frame as App_Ext_Window from .mail import Mail_Dialog from .popup_confirm import Ui_extend_confirm as popus_confirm from .settings import Settings -from .Ui_edit_bookdata import Ui_Dialog as edit_bookdata_ui -from .Ui_fileparser import Ui_Dialog as fileparser_ui -from .Ui_login import Ui_Dialog as login_ui -from .Ui_medianadder import Ui_Dialog as medienadder_ui -from .Ui_parsed_titles import Ui_Form as parsed_titles_ui -from .Ui_reminder import Ui_Dialog as reminder_ui -from .Ui_settings import Ui_Dialog as settings_ui -from .Ui_new_subject import Ui_Dialog as new_subject_ui +from .bookdata import BookDataUI as edit_bookdata_ui +from .fileparser import FileParserDialog as fileparser_ui +from .login import LoginDialog as login_ui +from .medienadder import MedienAdder as medienadder_ui +from .parsed_titles import ParsedTitles as parsed_titles_ui +from .reminder import ReminderDialog as reminder_ui +from .settings import Settings as settings_ui __all__ = [ "ext_app", diff --git a/src/ui/dialogs/app_ext.py b/src/ui/dialogs/app_ext.py index 9ff68ce..a2c2309 100644 --- a/src/ui/dialogs/app_ext.py +++ b/src/ui/dialogs/app_ext.py @@ -116,4 +116,3 @@ if __name__ == "__main__": ui.setupUi(Dialog) Dialog.show() sys.exit(app.exec()) - diff --git a/src/ui/dialogs/apparat_extend_ui.py b/src/ui/dialogs/apparat_extend_ui.py index 56d82db..0df8e88 100644 --- a/src/ui/dialogs/apparat_extend_ui.py +++ b/src/ui/dialogs/apparat_extend_ui.py @@ -128,5 +128,3 @@ class Ui_Dialog(object): ) # retranslateUi - - diff --git a/src/ui/dialogs/bookdata.py b/src/ui/dialogs/bookdata.py new file mode 100644 index 0000000..1739071 --- /dev/null +++ b/src/ui/dialogs/bookdata.py @@ -0,0 +1,37 @@ +from .dialog_sources.Ui_edit_bookdata import Ui_Dialog +from PyQt6 import QtWidgets, QtCore +from src.logic.dataclass import BookData + +class BookDataUI(QtWidgets.QDialog, Ui_Dialog): + def __init__(self, parent=None): + super().__init__(parent) + self.setupUi(self) + + + def populate_fields(self, data: BookData): + self.line_author.setText(data.author) + self.line_edition.setText(data.edition) + self.line_isbn.setText(", ".join(data.isbn)) + self.line_lang.setText(data.language) + self.line_link.setText(data.link) + self.line_pages.setText(data.pages) + self.line_ppn.setText(data.ppn) + self.line_publisher.setText(data.publisher) + self.line_signature.setText(data.signature) + self.line_title.setText(data.title) + self.line_year.setText(data.year) + + def get_data(self) -> BookData: + return BookData( + ppn=self.line_ppn.text().strip(), + title=self.line_title.text().strip(), + signature=self.line_signature.text().strip(), + edition=self.line_edition.text().strip(), + link=self.line_link.text().strip(), + isbn=self.line_isbn.text().split(","), + author=self.line_author.text().strip(), + language=self.line_lang.text().strip(), + publisher=self.line_publisher.text().strip(), + year=self.line_year.text().strip(), + pages=self.line_pages.text().strip(), + ) \ No newline at end of file diff --git a/src/ui/dialogs/confirm_extend_ui.py b/src/ui/dialogs/confirm_extend_ui.py index 9e3b67f..8c6287b 100644 --- a/src/ui/dialogs/confirm_extend_ui.py +++ b/src/ui/dialogs/confirm_extend_ui.py @@ -79,5 +79,3 @@ class Ui_extend_confirm(object): ) # retranslateUi - - diff --git a/src/ui/dialogs/Ui_edit_bookdata.py b/src/ui/dialogs/dialog_sources/Ui_edit_bookdata.py similarity index 100% rename from src/ui/dialogs/Ui_edit_bookdata.py rename to src/ui/dialogs/dialog_sources/Ui_edit_bookdata.py diff --git a/src/ui/dialogs/Ui_fileparser.py b/src/ui/dialogs/dialog_sources/Ui_fileparser.py similarity index 100% rename from src/ui/dialogs/Ui_fileparser.py rename to src/ui/dialogs/dialog_sources/Ui_fileparser.py diff --git a/src/ui/dialogs/dialog_sources/Ui_login.py b/src/ui/dialogs/dialog_sources/Ui_login.py new file mode 100644 index 0000000..53cde13 --- /dev/null +++ b/src/ui/dialogs/dialog_sources/Ui_login.py @@ -0,0 +1,50 @@ +# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\dialogs\dialog_sources\login.ui' +# +# Created by: PyQt6 UI code generator 6.6.1 +# +# WARNING: Any manual changes made to this file will be lost when pyuic6 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt6 import QtCore, QtGui, QtWidgets + + +class Ui_Dialog(object): + def setupUi(self, Dialog): + Dialog.setObjectName("Dialog") + Dialog.resize(218, 190) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(":/icons/resources/1f510.svg"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off) + Dialog.setWindowIcon(icon) + self.label = QtWidgets.QLabel(parent=Dialog) + self.label.setGeometry(QtCore.QRect(20, 40, 71, 21)) + self.label.setObjectName("label") + self.lineEdit = QtWidgets.QLineEdit(parent=Dialog) + self.lineEdit.setGeometry(QtCore.QRect(80, 40, 113, 21)) + self.lineEdit.setObjectName("lineEdit") + self.label_2 = QtWidgets.QLabel(parent=Dialog) + self.label_2.setGeometry(QtCore.QRect(20, 80, 71, 21)) + self.label_2.setObjectName("label_2") + self.lineEdit_2 = QtWidgets.QLineEdit(parent=Dialog) + self.lineEdit_2.setGeometry(QtCore.QRect(80, 80, 113, 21)) + self.lineEdit_2.setInputMethodHints(QtCore.Qt.InputMethodHint.ImhSensitiveData) + self.lineEdit_2.setClearButtonEnabled(True) + self.lineEdit_2.setObjectName("lineEdit_2") + self.login_button = QtWidgets.QPushButton(parent=Dialog) + self.login_button.setGeometry(QtCore.QRect(30, 140, 76, 32)) + self.login_button.setObjectName("login_button") + self.cancel_button = QtWidgets.QPushButton(parent=Dialog) + self.cancel_button.setGeometry(QtCore.QRect(120, 140, 76, 32)) + self.cancel_button.setObjectName("cancel_button") + + self.retranslateUi(Dialog) + QtCore.QMetaObject.connectSlotsByName(Dialog) + + + def retranslateUi(self, Dialog): + _translate = QtCore.QCoreApplication.translate + Dialog.setWindowTitle(_translate("Dialog", "Login")) + self.label.setText(_translate("Dialog", "Username")) + self.label_2.setText(_translate("Dialog", "Password")) + self.login_button.setText(_translate("Dialog", "Login")) + self.cancel_button.setText(_translate("Dialog", "Cancel")) diff --git a/src/ui/dialogs/dialog_sources/Ui_mail_preview.py b/src/ui/dialogs/dialog_sources/Ui_mail_preview.py new file mode 100644 index 0000000..624c427 --- /dev/null +++ b/src/ui/dialogs/dialog_sources/Ui_mail_preview.py @@ -0,0 +1,99 @@ +# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\dialogs\dialog_sources\mail_preview.ui' +# +# Created by: PyQt6 UI code generator 6.6.1 +# +# WARNING: Any manual changes made to this file will be lost when pyuic6 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt6 import QtCore, QtGui, QtWidgets + + +class Ui_eMailPreview(object): + def setupUi(self, eMailPreview): + eMailPreview.setObjectName("eMailPreview") + eMailPreview.resize(676, 676) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap("icons/email.svg"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off) + eMailPreview.setWindowIcon(icon) + self.buttonBox = QtWidgets.QDialogButtonBox(parent=eMailPreview) + self.buttonBox.setGeometry(QtCore.QRect(310, 630, 341, 32)) + self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal) + self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel) + self.buttonBox.setObjectName("buttonBox") + self.gridLayoutWidget = QtWidgets.QWidget(parent=eMailPreview) + self.gridLayoutWidget.setGeometry(QtCore.QRect(10, 10, 661, 621)) + self.gridLayoutWidget.setObjectName("gridLayoutWidget") + self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget) + self.gridLayout.setContentsMargins(0, 0, 0, 0) + self.gridLayout.setObjectName("gridLayout") + self.label_5 = QtWidgets.QLabel(parent=self.gridLayoutWidget) + self.label_5.setObjectName("label_5") + self.gridLayout.addWidget(self.label_5, 0, 0, 1, 1) + self.prof_name = QtWidgets.QLineEdit(parent=self.gridLayoutWidget) + self.prof_name.setObjectName("prof_name") + self.gridLayout.addWidget(self.prof_name, 2, 2, 1, 1) + self.label_3 = QtWidgets.QLabel(parent=self.gridLayoutWidget) + self.label_3.setAlignment(QtCore.Qt.AlignmentFlag.AlignLeading|QtCore.Qt.AlignmentFlag.AlignLeft|QtCore.Qt.AlignmentFlag.AlignTop) + self.label_3.setObjectName("label_3") + self.gridLayout.addWidget(self.label_3, 5, 0, 1, 1) + self.mail_name = QtWidgets.QLineEdit(parent=self.gridLayoutWidget) + self.mail_name.setObjectName("mail_name") + self.gridLayout.addWidget(self.mail_name, 1, 2, 1, 1) + self.label_2 = QtWidgets.QLabel(parent=self.gridLayoutWidget) + self.label_2.setObjectName("label_2") + self.gridLayout.addWidget(self.label_2, 2, 0, 1, 1) + self.label_4 = QtWidgets.QLabel(parent=self.gridLayoutWidget) + self.label_4.setObjectName("label_4") + self.gridLayout.addWidget(self.label_4, 3, 0, 1, 1) + self.mail_header = QtWidgets.QLineEdit(parent=self.gridLayoutWidget) + self.mail_header.setObjectName("mail_header") + self.gridLayout.addWidget(self.mail_header, 3, 2, 1, 1) + self.label = QtWidgets.QLabel(parent=self.gridLayoutWidget) + self.label.setObjectName("label") + self.gridLayout.addWidget(self.label, 1, 0, 1, 1) + self.comboBox = QtWidgets.QComboBox(parent=self.gridLayoutWidget) + self.comboBox.setObjectName("comboBox") + self.gridLayout.addWidget(self.comboBox, 0, 2, 1, 1) + self.mail_body = QtWidgets.QTextEdit(parent=self.gridLayoutWidget) + self.mail_body.setObjectName("mail_body") + self.gridLayout.addWidget(self.mail_body, 5, 2, 1, 1) + self.horizontalLayout_3 = QtWidgets.QHBoxLayout() + self.horizontalLayout_3.setObjectName("horizontalLayout_3") + self.gender_male = QtWidgets.QRadioButton(parent=self.gridLayoutWidget) + self.gender_male.setObjectName("gender_male") + self.horizontalLayout_3.addWidget(self.gender_male) + self.gender_female = QtWidgets.QRadioButton(parent=self.gridLayoutWidget) + self.gender_female.setObjectName("gender_female") + self.horizontalLayout_3.addWidget(self.gender_female) + self.gender_non = QtWidgets.QRadioButton(parent=self.gridLayoutWidget) + self.gender_non.setObjectName("gender_non") + self.horizontalLayout_3.addWidget(self.gender_non) + spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum) + self.horizontalLayout_3.addItem(spacerItem) + self.gridLayout.addLayout(self.horizontalLayout_3, 4, 2, 1, 1) + self.label_6 = QtWidgets.QLabel(parent=self.gridLayoutWidget) + self.label_6.setObjectName("label_6") + self.gridLayout.addWidget(self.label_6, 4, 0, 1, 1) + self.btn_okay = QtWidgets.QPushButton(parent=eMailPreview) + self.btn_okay.setGeometry(QtCore.QRect(487, 634, 75, 24)) + self.btn_okay.setObjectName("btn_okay") + + self.retranslateUi(eMailPreview) + self.buttonBox.accepted.connect(eMailPreview.accept) # type: ignore + self.buttonBox.rejected.connect(eMailPreview.reject) # type: ignore + QtCore.QMetaObject.connectSlotsByName(eMailPreview) + + def retranslateUi(self, eMailPreview): + _translate = QtCore.QCoreApplication.translate + eMailPreview.setWindowTitle(_translate("eMailPreview", "eMail Voransicht")) + self.label_5.setText(_translate("eMailPreview", "Art")) + self.label_3.setText(_translate("eMailPreview", "Mail")) + self.label_2.setText(_translate("eMailPreview", "Prof")) + self.label_4.setText(_translate("eMailPreview", "Betreff")) + self.label.setText(_translate("eMailPreview", "eMail")) + self.gender_male.setText(_translate("eMailPreview", "M")) + self.gender_female.setText(_translate("eMailPreview", "W")) + self.gender_non.setText(_translate("eMailPreview", "Divers")) + self.label_6.setText(_translate("eMailPreview", "Geschlecht")) + self.btn_okay.setText(_translate("eMailPreview", "Senden")) diff --git a/src/ui/dialogs/Ui_medianadder.py b/src/ui/dialogs/dialog_sources/Ui_medianadder.py similarity index 70% rename from src/ui/dialogs/Ui_medianadder.py rename to src/ui/dialogs/dialog_sources/Ui_medianadder.py index 3578bab..c00430f 100644 --- a/src/ui/dialogs/Ui_medianadder.py +++ b/src/ui/dialogs/dialog_sources/Ui_medianadder.py @@ -1,6 +1,6 @@ -# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\Semesterapparate\ui\dialogs\medianadder.ui' +# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\dialogs\medianadder.ui' # -# Created by: PyQt6 UI code generator 6.3.1 +# Created by: PyQt6 UI code generator 6.6.1 # # WARNING: Any manual changes made to this file will be lost when pyuic6 is # run again. Do not edit this file unless you know what you are doing. @@ -13,50 +13,44 @@ class Ui_Dialog(object): def setupUi(self, Dialog): Dialog.setObjectName("Dialog") Dialog.resize(637, 491) - self.label = QtWidgets.QLabel(Dialog) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap("c:\\Users\\aky547\\GitHub\\SemesterapparatsManager\\src\\ui\\dialogs\\../../../../../Desktop/2795.svg"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off) + Dialog.setWindowIcon(icon) + self.label = QtWidgets.QLabel(parent=Dialog) self.label.setGeometry(QtCore.QRect(20, 10, 47, 21)) self.label.setObjectName("label") - self.label_2 = QtWidgets.QLabel(Dialog) + self.label_2 = QtWidgets.QLabel(parent=Dialog) self.label_2.setGeometry(QtCore.QRect(20, 40, 47, 21)) self.label_2.setObjectName("label_2") - self.comboBox = QtWidgets.QComboBox(Dialog) + self.comboBox = QtWidgets.QComboBox(parent=Dialog) self.comboBox.setGeometry(QtCore.QRect(70, 40, 69, 22)) self.comboBox.setObjectName("comboBox") self.comboBox.addItem("") self.comboBox.addItem("") self.comboBox.addItem("") self.comboBox.addItem("") - self.lineEdit = QtWidgets.QLineEdit(Dialog) + self.lineEdit = QtWidgets.QLineEdit(parent=Dialog) self.lineEdit.setGeometry(QtCore.QRect(70, 10, 113, 20)) self.lineEdit.setObjectName("lineEdit") - self.label_3 = QtWidgets.QLabel(Dialog) + self.label_3 = QtWidgets.QLabel(parent=Dialog) self.label_3.setGeometry(QtCore.QRect(20, 70, 47, 21)) self.label_3.setObjectName("label_3") - self.widget = QtWidgets.QWidget(Dialog) + self.widget = QtWidgets.QWidget(parent=Dialog) self.widget.setGeometry(QtCore.QRect(330, 90, 301, 341)) self.widget.setObjectName("widget") - self.treeWidget = QtWidgets.QTreeWidget(self.widget) + self.treeWidget = QtWidgets.QTreeWidget(parent=self.widget) self.treeWidget.setEnabled(True) self.treeWidget.setGeometry(QtCore.QRect(0, 0, 301, 341)) + self.treeWidget.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) self.treeWidget.setAutoFillBackground(False) self.treeWidget.setLineWidth(0) self.treeWidget.setMidLineWidth(0) - self.treeWidget.setVerticalScrollBarPolicy( - QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff - ) - self.treeWidget.setHorizontalScrollBarPolicy( - QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff - ) - self.treeWidget.setSizeAdjustPolicy( - QtWidgets.QAbstractScrollArea.SizeAdjustPolicy.AdjustToContents - ) - self.treeWidget.setEditTriggers( - QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers - ) + self.treeWidget.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.treeWidget.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarPolicy.ScrollBarAlwaysOff) + self.treeWidget.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.SizeAdjustPolicy.AdjustToContents) + self.treeWidget.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers) self.treeWidget.setAlternatingRowColors(True) - self.treeWidget.setSelectionMode( - QtWidgets.QAbstractItemView.SelectionMode.NoSelection - ) + self.treeWidget.setSelectionMode(QtWidgets.QAbstractItemView.SelectionMode.NoSelection) self.treeWidget.setTextElideMode(QtCore.Qt.TextElideMode.ElideMiddle) self.treeWidget.setUniformRowHeights(True) self.treeWidget.setItemsExpandable(False) @@ -83,46 +77,50 @@ class Ui_Dialog(object): item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget) item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget) self.treeWidget.header().setCascadingSectionResizes(False) - self.treeWidget.header().setDefaultSectionSize(60) + self.treeWidget.header().setDefaultSectionSize(96) self.treeWidget.header().setHighlightSections(False) self.treeWidget.header().setMinimumSectionSize(20) - self.listWidget = QtWidgets.QListWidget(Dialog) + self.treeWidget.header().setStretchLastSection(False) + self.listWidget = QtWidgets.QListWidget(parent=Dialog) self.listWidget.setGeometry(QtCore.QRect(10, 90, 281, 341)) - self.listWidget.setContextMenuPolicy( - QtCore.Qt.ContextMenuPolicy.CustomContextMenu - ) + self.listWidget.setContextMenuPolicy(QtCore.Qt.ContextMenuPolicy.CustomContextMenu) self.listWidget.setObjectName("listWidget") - self.label_4 = QtWidgets.QLabel(Dialog) + self.label_4 = QtWidgets.QLabel(parent=Dialog) self.label_4.setGeometry(QtCore.QRect(330, 50, 181, 21)) self.label_4.setObjectName("label_4") - self.label_5 = QtWidgets.QLabel(Dialog) + self.label_5 = QtWidgets.QLabel(parent=Dialog) self.label_5.setGeometry(QtCore.QRect(200, 70, 41, 21)) self.label_5.setObjectName("label_5") - self.list_amount = QtWidgets.QLabel(Dialog) + self.list_amount = QtWidgets.QLabel(parent=Dialog) self.list_amount.setGeometry(QtCore.QRect(240, 70, 47, 21)) self.list_amount.setObjectName("list_amount") - self.buttonBox = QtWidgets.QDialogButtonBox(Dialog) + self.buttonBox = QtWidgets.QDialogButtonBox(parent=Dialog) self.buttonBox.setGeometry(QtCore.QRect(10, 450, 156, 23)) - self.buttonBox.setStandardButtons( - QtWidgets.QDialogButtonBox.StandardButton.Cancel - | QtWidgets.QDialogButtonBox.StandardButton.Ok - ) + self.buttonBox.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus) + self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok) self.buttonBox.setCenterButtons(False) self.buttonBox.setObjectName("buttonBox") - self.buttonBox.setFocusPolicy(QtCore.Qt.FocusPolicy.ClickFocus) - # self.buttonBox.accepted.disconnect() - # set the activation action for the buttonBox to be shift enter - self.buttonBox.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus) - self.buttonBox.accepted.connect(Dialog.accept) # type: ignore - self.buttonBox.rejected.connect(Dialog.reject) # type: ignore + self.l_add = QtWidgets.QPushButton(parent=Dialog) + self.l_add.setGeometry(QtCore.QRect(190, 10, 21, 23)) + self.l_add.setFocusPolicy(QtCore.Qt.FocusPolicy.ClickFocus) + self.l_add.setText("") + icon1 = QtGui.QIcon() + icon1.addPixmap(QtGui.QPixmap(":/information/icons/information.png"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off) + self.l_add.setIcon(icon1) + self.l_add.setAutoDefault(False) + self.l_add.setObjectName("l_add") - self.lineEdit.returnPressed.connect(self.add_to_list) self.retranslateUi(Dialog) + self.buttonBox.accepted.connect(Dialog.accept) # type: ignore + self.buttonBox.rejected.connect(Dialog.reject) # type: ignore QtCore.QMetaObject.connectSlotsByName(Dialog) + Dialog.setTabOrder(self.lineEdit, self.comboBox) + Dialog.setTabOrder(self.comboBox, self.listWidget) + Dialog.setTabOrder(self.listWidget, self.treeWidget) def retranslateUi(self, Dialog): _translate = QtCore.QCoreApplication.translate - Dialog.setWindowTitle(_translate("Dialog", "Dialog")) + Dialog.setWindowTitle(_translate("Dialog", "Medien")) self.label.setText(_translate("Dialog", "Signatur")) self.label_2.setText(_translate("Dialog", "Modus")) self.comboBox.setItemText(0, _translate("Dialog", "ARRAY")) @@ -131,9 +129,7 @@ class Ui_Dialog(object): self.comboBox.setItemText(3, _translate("Dialog", "RIS")) self.lineEdit.setPlaceholderText(_translate("Dialog", "Signatur / ISBN")) self.label_3.setText(_translate("Dialog", "Queue")) - self.treeWidget.headerItem().setText( - 0, _translate("Dialog", "Datensatz\\Metadata") - ) + self.treeWidget.headerItem().setText(0, _translate("Dialog", "Datensatz\\Metadata")) self.treeWidget.headerItem().setText(1, _translate("Dialog", "Array")) self.treeWidget.headerItem().setText(2, _translate("Dialog", "BibTeX")) self.treeWidget.headerItem().setText(3, _translate("Dialog", "COinS")) @@ -199,42 +195,5 @@ class Ui_Dialog(object): self.label_4.setText(_translate("Dialog", "Belegbare Felder per Anbieter")) self.label_5.setText(_translate("Dialog", "Anzahl:")) self.list_amount.setText(_translate("Dialog", "0")) - self.recolorize() - self.listWidget.customContextMenuRequested.connect(self.custom_context_menu) - - def add_to_list(self): - text = self.lineEdit.text().strip() - if text == "": - return - else: - self.listWidget.addItem(text) - self.list_amount.setText(str(self.listWidget.count())) - self.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.treeWidget.topLevelItemCount()): - for j in range(1, self.treeWidget.columnCount()): - if self.treeWidget.topLevelItem(i).text(j) == "0": - self.treeWidget.topLevelItem(i).setBackground( - j, QtGui.QColor(255, 0, 0) - ) - else: - self.treeWidget.topLevelItem(i).setBackground( - j, QtGui.QColor(0, 255, 0) - ) - # remove the text from the cells - self.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.listWidget.takeItem(self.listWidget.currentRow()) - self.list_amount.setText(str(self.listWidget.count())) + self.l_add.setToolTip(_translate("Dialog", "Clicken oder Shift Enter drücken um den Eintrag hinzuzufügen")) + self.l_add.setShortcut(_translate("Dialog", "Shift+Return")) diff --git a/src/ui/dialogs/Ui_new_subject.py b/src/ui/dialogs/dialog_sources/Ui_new_subject.py similarity index 100% rename from src/ui/dialogs/Ui_new_subject.py rename to src/ui/dialogs/dialog_sources/Ui_new_subject.py diff --git a/src/ui/dialogs/dialog_sources/Ui_parsed_titles.py b/src/ui/dialogs/dialog_sources/Ui_parsed_titles.py new file mode 100644 index 0000000..c76f3bc --- /dev/null +++ b/src/ui/dialogs/dialog_sources/Ui_parsed_titles.py @@ -0,0 +1,81 @@ +# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\dialogs\dialog_sources\parsed_titles.ui' +# +# Created by: PyQt6 UI code generator 6.6.1 +# +# WARNING: Any manual changes made to this file will be lost when pyuic6 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt6 import QtCore, QtGui, QtWidgets + + +class Ui_Form(object): + def setupUi(self, Form): + Form.setObjectName("Form") + Form.resize(402, 316) + self.frame = QtWidgets.QFrame(parent=Form) + self.frame.setGeometry(QtCore.QRect(10, 10, 381, 41)) + self.frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) + self.frame.setFrameShadow(QtWidgets.QFrame.Shadow.Raised) + self.frame.setObjectName("frame") + self.horizontalLayoutWidget = QtWidgets.QWidget(parent=self.frame) + self.horizontalLayoutWidget.setGeometry(QtCore.QRect(0, 0, 381, 41)) + self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget") + self.horizontalLayout = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget) + self.horizontalLayout.setContentsMargins(0, 0, 0, 0) + self.horizontalLayout.setObjectName("horizontalLayout") + self.label = QtWidgets.QLabel(parent=self.horizontalLayoutWidget) + self.label.setObjectName("label") + self.horizontalLayout.addWidget(self.label) + self.count = QtWidgets.QLabel(parent=self.horizontalLayoutWidget) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.count.setFont(font) + self.count.setTextFormat(QtCore.Qt.TextFormat.PlainText) + self.count.setObjectName("count") + self.horizontalLayout.addWidget(self.count) + self.label_2 = QtWidgets.QLabel(parent=self.horizontalLayoutWidget) + self.label_2.setObjectName("label_2") + self.horizontalLayout.addWidget(self.label_2) + spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum) + self.horizontalLayout.addItem(spacerItem) + self.frame_2 = QtWidgets.QFrame(parent=Form) + self.frame_2.setGeometry(QtCore.QRect(10, 80, 381, 201)) + self.frame_2.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) + self.frame_2.setFrameShadow(QtWidgets.QFrame.Shadow.Raised) + self.frame_2.setObjectName("frame_2") + self.horizontalLayoutWidget_2 = QtWidgets.QWidget(parent=self.frame_2) + self.horizontalLayoutWidget_2.setGeometry(QtCore.QRect(0, 10, 381, 191)) + self.horizontalLayoutWidget_2.setObjectName("horizontalLayoutWidget_2") + self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget_2) + self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0) + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + self.listWidget = QtWidgets.QListWidget(parent=self.horizontalLayoutWidget_2) + self.listWidget.setObjectName("listWidget") + self.horizontalLayout_2.addWidget(self.listWidget) + self.listWidget_done = QtWidgets.QListWidget(parent=self.horizontalLayoutWidget_2) + self.listWidget_done.setObjectName("listWidget_done") + self.horizontalLayout_2.addWidget(self.listWidget_done) + self.progressBar = QtWidgets.QProgressBar(parent=Form) + self.progressBar.setGeometry(QtCore.QRect(10, 60, 381, 23)) + self.progressBar.setProperty("value", 24) + self.progressBar.setObjectName("progressBar") + self.buttonBox = QtWidgets.QDialogButtonBox(parent=Form) + self.buttonBox.setGeometry(QtCore.QRect(230, 290, 156, 23)) + self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok) + self.buttonBox.setObjectName("buttonBox") + self.toolButton = QtWidgets.QToolButton(parent=Form) + self.toolButton.setGeometry(QtCore.QRect(20, 290, 25, 19)) + self.toolButton.setObjectName("toolButton") + + self.retranslateUi(Form) + QtCore.QMetaObject.connectSlotsByName(Form) + + def retranslateUi(self, Form): + _translate = QtCore.QCoreApplication.translate + Form.setWindowTitle(_translate("Form", "Form")) + self.label.setText(_translate("Form", "Es wurden")) + self.count.setText(_translate("Form", "0")) + self.label_2.setText(_translate("Form", "Signaturen gefunden.")) + self.toolButton.setText(_translate("Form", "...")) diff --git a/src/ui/dialogs/Ui_reminder.py b/src/ui/dialogs/dialog_sources/Ui_reminder.py similarity index 100% rename from src/ui/dialogs/Ui_reminder.py rename to src/ui/dialogs/dialog_sources/Ui_reminder.py diff --git a/src/ui/dialogs/Ui_settings.py b/src/ui/dialogs/dialog_sources/Ui_settings.py similarity index 100% rename from src/ui/dialogs/Ui_settings.py rename to src/ui/dialogs/dialog_sources/Ui_settings.py diff --git a/src/ui/dialogs/dialog_sources/__init__.py b/src/ui/dialogs/dialog_sources/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/ui/dialogs/add_media.ui b/src/ui/dialogs/dialog_sources/add_media.ui similarity index 100% rename from src/ui/dialogs/add_media.ui rename to src/ui/dialogs/dialog_sources/add_media.ui diff --git a/src/ui/dialogs/app_status.ui b/src/ui/dialogs/dialog_sources/app_status.ui similarity index 100% rename from src/ui/dialogs/app_status.ui rename to src/ui/dialogs/dialog_sources/app_status.ui diff --git a/src/ui/dialogs/apparat_extend.ui b/src/ui/dialogs/dialog_sources/apparat_extend.ui similarity index 100% rename from src/ui/dialogs/apparat_extend.ui rename to src/ui/dialogs/dialog_sources/apparat_extend.ui diff --git a/src/ui/dialogs/confirm_extend.ui b/src/ui/dialogs/dialog_sources/confirm_extend.ui similarity index 100% rename from src/ui/dialogs/confirm_extend.ui rename to src/ui/dialogs/dialog_sources/confirm_extend.ui diff --git a/src/ui/dialogs/edit_bookdata.ui b/src/ui/dialogs/dialog_sources/edit_bookdata.ui similarity index 100% rename from src/ui/dialogs/edit_bookdata.ui rename to src/ui/dialogs/dialog_sources/edit_bookdata.ui diff --git a/src/ui/dialogs/extend_apparat.ui b/src/ui/dialogs/dialog_sources/extend_apparat.ui similarity index 100% rename from src/ui/dialogs/extend_apparat.ui rename to src/ui/dialogs/dialog_sources/extend_apparat.ui diff --git a/src/ui/dialogs/fileparser.ui b/src/ui/dialogs/dialog_sources/fileparser.ui similarity index 100% rename from src/ui/dialogs/fileparser.ui rename to src/ui/dialogs/dialog_sources/fileparser.ui diff --git a/src/ui/dialogs/login.ui b/src/ui/dialogs/dialog_sources/login.ui similarity index 62% rename from src/ui/dialogs/login.ui rename to src/ui/dialogs/dialog_sources/login.ui index 5b3239b..434d14c 100644 --- a/src/ui/dialogs/login.ui +++ b/src/ui/dialogs/dialog_sources/login.ui @@ -11,24 +11,12 @@ - Dialog + Login + + + + :/icons/resources/1f510.svg:/icons/resources/1f510.svg - - - - 30 - 140 - 161 - 32 - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - @@ -81,40 +69,35 @@ true + + + + 30 + 140 + 76 + 32 + + + + Login + + + + + + 120 + 140 + 76 + 32 + + + + Cancel + + - - - - buttonBox - accepted() - Dialog - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - Dialog - reject() - - - 316 - 260 - - - 286 - 274 - - - - + + + + diff --git a/src/ui/dialogs/mail_preview.ui b/src/ui/dialogs/dialog_sources/mail_preview.ui similarity index 88% rename from src/ui/dialogs/mail_preview.ui rename to src/ui/dialogs/dialog_sources/mail_preview.ui index eb4ce62..0a844fc 100644 --- a/src/ui/dialogs/mail_preview.ui +++ b/src/ui/dialogs/dialog_sources/mail_preview.ui @@ -11,7 +11,11 @@ - Dialog + eMail Voransicht + + + + ../../icons/email.svg../../icons/email.svg @@ -26,7 +30,7 @@ Qt::Horizontal - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::Cancel @@ -139,8 +143,23 @@ + + + + 487 + 634 + 75 + 24 + + + + Senden + + - + + + buttonBox diff --git a/src/ui/dialogs/medianadder.ui b/src/ui/dialogs/dialog_sources/medianadder.ui similarity index 97% rename from src/ui/dialogs/medianadder.ui rename to src/ui/dialogs/dialog_sources/medianadder.ui index 9a5b6ac..766248f 100644 --- a/src/ui/dialogs/medianadder.ui +++ b/src/ui/dialogs/dialog_sources/medianadder.ui @@ -11,7 +11,11 @@ - Dialog + Medien + + + + :/icons/resources/2795.svg:/icons/resources/2795.svg @@ -161,15 +165,15 @@ false + + 20 + 96 false - - 20 - false @@ -500,7 +504,7 @@ - + :/information/icons/information.png:/information/icons/information.png @@ -518,7 +522,7 @@ treeWidget - + diff --git a/src/ui/dialogs/new_subject.ui b/src/ui/dialogs/dialog_sources/new_subject.ui similarity index 100% rename from src/ui/dialogs/new_subject.ui rename to src/ui/dialogs/dialog_sources/new_subject.ui diff --git a/src/ui/dialogs/parsed_titles.ui b/src/ui/dialogs/dialog_sources/parsed_titles.ui similarity index 100% rename from src/ui/dialogs/parsed_titles.ui rename to src/ui/dialogs/dialog_sources/parsed_titles.ui diff --git a/src/ui/dialogs/reminder.ui b/src/ui/dialogs/dialog_sources/reminder.ui similarity index 100% rename from src/ui/dialogs/reminder.ui rename to src/ui/dialogs/dialog_sources/reminder.ui diff --git a/src/ui/dialogs/settings.ui b/src/ui/dialogs/dialog_sources/settings.ui similarity index 100% rename from src/ui/dialogs/settings.ui rename to src/ui/dialogs/dialog_sources/settings.ui diff --git a/src/ui/dialogs/ext_app.py b/src/ui/dialogs/ext_app.py index bedaa6d..4985e76 100644 --- a/src/ui/dialogs/ext_app.py +++ b/src/ui/dialogs/ext_app.py @@ -55,4 +55,3 @@ if __name__ == "__main__": ui.setupUi(Frame) Frame.show() sys.exit(app.exec()) - diff --git a/src/ui/dialogs/fileparser.py b/src/ui/dialogs/fileparser.py new file mode 100644 index 0000000..e44a13c --- /dev/null +++ b/src/ui/dialogs/fileparser.py @@ -0,0 +1,46 @@ +from PyQt6.QtCore import Qt +from .dialog_sources.Ui_fileparser import Ui_Dialog +from PyQt6 import QtWidgets +from src.logic.webrequest import BibTextTransformer, WebRequest + +class FileParserDialog(QtWidgets.QDialog, Ui_Dialog): + def __init__(self, parent: None) -> None: + super().__init__(parent) + self.setupUi(self) + self.signatures = [] + self.returned = [] + def moveToThread(self, thread): + self.progressBar.moveToThread(thread) + self.frame.moveToThread(thread) + self.horizontalLayoutWidget.moveToThread(thread) + self.horizontalLayout.moveToThread(thread) + self.label.moveToThread(thread) + self.count.moveToThread(thread) + self.label_2.moveToThread(thread) + self.frame_2.moveToThread(thread) + self.listWidget.moveToThread(thread) + + def run(self): + for signature in self.signatures: + self.count.setText(str(self.signatures.index(signature) + 1)) + self.listWidget.addItem(signature) + webdata = WebRequest().get_ppn(signature).get_data() + bookdata = BibTextTransformer("ARRAY").get_data(webdata).return_data() + self.returned.append(bookdata) + self.progressBar.setValue(self.signatures.index(signature) + 1) + # self.data_gathering_complete.emit() + + def deleteLater(self): + self.progressBar.deleteLater() + self.frame.deleteLater() + self.horizontalLayoutWidget.deleteLater() + self.horizontalLayout.deleteLater() + self.label.deleteLater() + self.count.deleteLater() + self.label_2.deleteLater() + self.frame_2.deleteLater() + self.listWidget.deleteLater() + self.signatures = [] + self.returned = [] + self.retranslateUi.deleteLater() + super().deleteLater() \ No newline at end of file diff --git a/src/ui/dialogs/Ui_login.py b/src/ui/dialogs/login.py similarity index 86% rename from src/ui/dialogs/Ui_login.py rename to src/ui/dialogs/login.py index 54f1b2b..76f8c93 100644 --- a/src/ui/dialogs/Ui_login.py +++ b/src/ui/dialogs/login.py @@ -1,24 +1,17 @@ -# Form implementation generated from reading ui file '/home/alexander/GitHub/Semesterapparate/ui/dialogs/login.ui' -# -# Created by: PyQt6 UI code generator 6.5.3 -# -# WARNING: Any manual changes made to this file will be lost when pyuic6 is -# run again. Do not edit this file unless you know what you are doing. - - -import hashlib - -from PyQt6 import QtCore, QtWidgets - +from .dialog_sources.Ui_login import Ui_Dialog from src.backend.admin_console import AdminCommands from src.backend.database import Database +import hashlib +from PyQt6 import QtCore, QtWidgets, QtGui - -class Ui_Dialog(object): +class LoginDialog(Ui_Dialog): def setupUi(self, Dialog): Dialog.setObjectName("Dialog") Dialog.resize(218, 190) self.dialog = Dialog + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap("icons/locked.svg"), QtGui.QIcon.Mode.Normal, QtGui.QIcon.State.Off) + Dialog.setWindowIcon(icon) self.login_button = QtWidgets.QPushButton(parent=Dialog) self.login_button.setGeometry(QtCore.QRect(30, 140, 76, 32)) self.login_button.setObjectName("login_button") @@ -55,7 +48,7 @@ class Ui_Dialog(object): self.lresult = -1 self.lusername = "" QtCore.QMetaObject.connectSlotsByName(Dialog) - + Dialog.setWindowTitle("Login") def retranslateUi(self, Dialog): _translate = QtCore.QCoreApplication.translate Dialog.setWindowTitle(_translate("Dialog", "Dialog")) @@ -97,17 +90,4 @@ class Ui_Dialog(object): warning_dialog.exec() def cancel_buttonfn(self): - self.dialog.reject() - - -if __name__ == "__main__": - import sys - - app = QtWidgets.QApplication(sys.argv) - Dialog = QtWidgets.QDialog() - ui = Ui_Dialog() - ui.setupUi(Dialog) - Dialog.show() - sys.exit(app.exec()) - - + self.dialog.reject() \ No newline at end of file diff --git a/src/ui/dialogs/mail.py b/src/ui/dialogs/mail.py index a62a167..9d22416 100644 --- a/src/ui/dialogs/mail.py +++ b/src/ui/dialogs/mail.py @@ -4,7 +4,7 @@ import sys from omegaconf import OmegaConf from PyQt6 import QtCore, QtGui, QtWidgets -from src.ui.dialogs.Ui_mail_preview import Ui_eMailPreview as Ui_Dialog +from .dialog_sources.Ui_mail_preview import Ui_eMailPreview as Ui_Dialog config = OmegaConf.load("config.yaml") @@ -18,7 +18,7 @@ class Mail_Dialog(QtWidgets.QDialog, Ui_Dialog): prof_name, prof_mail, parent=None, - default_mail="Information zum Semesterapparat {AppNr} - {AppName}.eml", + default_mail="Information zum Semesterapparat", ): super().__init__(parent) self.setupUi( @@ -39,14 +39,7 @@ class Mail_Dialog(QtWidgets.QDialog, Ui_Dialog): self.mail_name.setText(self.prof_mail) self.load_mail_templates() # if none of the radio buttons is checked, disable the accept button of the dialog - if ( - self.gender_female.isChecked() - or self.gender_male.isChecked() - or self.gender_male.isChecked() - ): - self.buttonBox.button(QtWidgets.QDialogButtonBox.Ok).setEnabled(True) - else: - self.buttonBox.button(QtWidgets.QDialogButtonBox.Ok).setEnabled(False) + self.btn_okay.setEnabled(False) if default_mail is not None: # get the nearest match to the default mail @@ -78,10 +71,13 @@ class Mail_Dialog(QtWidgets.QDialog, Ui_Dialog): def get_greeting(self): prof = self.profname if self.gender_male.isChecked(): + self.btn_okay.setEnabled(True) return f"Sehr geehrter Herr {prof.split(' ')[-1]}," elif self.gender_female.isChecked(): + self.btn_okay.setEnabled(True) return f"Sehr geehrte Frau {prof.split(' ')[-1]}," elif self.gender_non.isChecked(): + self.btn_okay.setEnabled(True) return f"Guten Tag {prof}," def set_mail(self): @@ -108,7 +104,6 @@ class Mail_Dialog(QtWidgets.QDialog, Ui_Dialog): ) self.mail_body.setHtml(mail_html) - self.buttonBox.button(QtWidgets.QDialogButtonBox.Ok).setEnabled(True) def createAndSendMail(self): import smtplib @@ -184,14 +179,3 @@ if __name__ == "__main__": ui.setupUi(Dialog) Dialog.show() sys.exit(app.exec()) - - - - - - - - - - - diff --git a/src/ui/dialogs/medianadder_ui.ts b/src/ui/dialogs/medianadder_ui.ts deleted file mode 100644 index 978f01e..0000000 --- a/src/ui/dialogs/medianadder_ui.ts +++ /dev/null @@ -1,47 +0,0 @@ - - - - - Dialog - - - Dialog - - - - - Signatur - - - - - Modus - - - - - ARRAY - - - - - BibTeX - - - - - COinS - - - - - RIS - - - - - Queue - - - - diff --git a/src/ui/dialogs/medienadder.py b/src/ui/dialogs/medienadder.py index 31f26cc..3983f61 100644 --- a/src/ui/dialogs/medienadder.py +++ b/src/ui/dialogs/medienadder.py @@ -1,82 +1,8 @@ from PyQt6 import QtCore, QtGui, QtWidgets -from .Ui_medianadder import Ui_Dialog +from .dialog_sources.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) +class MedienAdder(QtWidgets.QDialog, Ui_Dialog): + def __init__(self, parent=None): + super().__init__(parent) diff --git a/src/ui/dialogs/new_subject_ui.py b/src/ui/dialogs/new_subject_ui.py index e6b6676..50c94df 100644 --- a/src/ui/dialogs/new_subject_ui.py +++ b/src/ui/dialogs/new_subject_ui.py @@ -70,4 +70,3 @@ class Ui_Dialog(object): ) self.checkBox.setText(_translate("Dialog", "Ja")) self.label_2.setText(_translate("Dialog", "Name des Neuen Faches:")) - diff --git a/src/ui/dialogs/parsed_titles.py b/src/ui/dialogs/parsed_titles.py new file mode 100644 index 0000000..aff2f96 --- /dev/null +++ b/src/ui/dialogs/parsed_titles.py @@ -0,0 +1,74 @@ +from .dialog_sources.Ui_parsed_titles import Ui_Form + +from PyQt6 import QtWidgets, QtCore +from src.logic import AutoAdder +from src.logic.log import MyLogger + +logger = MyLogger("AutoTitleAdder") + +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): + logger.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): + logger.log_info("AutoAdder finished") + logger.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: + logger.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) diff --git a/src/ui/dialogs/parsed_titles_ui.py b/src/ui/dialogs/parsed_titles_ui.py index 04a499f..15fb6af 100644 --- a/src/ui/dialogs/parsed_titles_ui.py +++ b/src/ui/dialogs/parsed_titles_ui.py @@ -89,4 +89,3 @@ class Ui_Form(object): self.count.setText(_translate("Form", "0")) self.label_2.setText(_translate("Form", "Signaturen gefunden.")) self.toolButton.setText(_translate("Form", "...")) - diff --git a/src/ui/dialogs/reminder.py b/src/ui/dialogs/reminder.py new file mode 100644 index 0000000..928a2d8 --- /dev/null +++ b/src/ui/dialogs/reminder.py @@ -0,0 +1,11 @@ +from .dialog_sources.Ui_reminder import Ui_Dialog +from PyQt6 import QtWidgets +class ReminderDialog(QtWidgets.QDialog, Ui_Dialog): + def __init__(self, parent=None): + super().__init__(parent) + self.setupUi(self) + def return_message(self) -> dict: + return { + "message": self.message_box.toPlainText(), + "remind_at": self.dateEdit.date().toString("yyyy-MM-dd"), + } diff --git a/src/ui/dialogs/settings.py b/src/ui/dialogs/settings.py index 63d7b62..4517f4a 100644 --- a/src/ui/dialogs/settings.py +++ b/src/ui/dialogs/settings.py @@ -1,7 +1,7 @@ from omegaconf import OmegaConf from PyQt6 import QtWidgets -from src.ui.dialogs.Ui_settings import Ui_Dialog as _settings +from .dialog_sources.Ui_settings import Ui_Dialog as _settings config = OmegaConf.load("config.yaml")