add files

This commit is contained in:
WorldTeacher
2024-01-26 08:28:01 +01:00
parent dd9ee24a8f
commit 0a9818940c
110 changed files with 21563 additions and 0 deletions

47
src/ui/Ui_plotdata.py Normal file
View File

@@ -0,0 +1,47 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\Semesterapparate\ui\plotdata.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, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(640, 480)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.graphicsView = QtWidgets.QGraphicsView(self.centralwidget)
self.graphicsView.setGeometry(QtCore.QRect(330, 10, 256, 192))
self.graphicsView.setObjectName("graphicsView")
self.widget = QtWidgets.QWidget(self.centralwidget)
self.widget.setGeometry(QtCore.QRect(10, 0, 251, 271))
self.widget.setObjectName("widget")
self.stackedWidget = QtWidgets.QStackedWidget(self.centralwidget)
self.stackedWidget.setGeometry(QtCore.QRect(300, 220, 291, 201))
self.stackedWidget.setObjectName("stackedWidget")
self.page = QtWidgets.QWidget()
self.page.setObjectName("page")
self.stackedWidget.addWidget(self.page)
self.page_2 = QtWidgets.QWidget()
self.page_2.setObjectName("page_2")
self.stackedWidget.addWidget(self.page_2)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 640, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,232 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="de_DE" sourcelanguage="de_DE">
<context>
<name>MainWindow</name>
<message>
<location filename="Ui_semesterapparat_ui.py" line="543"/>
<source>MainWindow</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="544"/>
<source>Load the Semesterapparate from the database</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="545"/>
<source>App. aufrufen</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="546"/>
<source>neu. App anlegen</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="547"/>
<source>Auswahl abbrechen</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="550"/>
<source>AppNr</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="552"/>
<source>App Name</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="554"/>
<source>Professor</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="556"/>
<source>gültig bis</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="580"/>
<source>Dauerapparat</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="560"/>
<source>KontoNr</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="561"/>
<source>Apparatsdetails</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="563"/>
<source>Dokumentname</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="565"/>
<source>Dateityp</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="567"/>
<source>Neu?</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="569"/>
<source>path</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="570"/>
<source>Apparatsname</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="571"/>
<source>Winter</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="572"/>
<source>Prof. Name</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="573"/>
<source>Sommer</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="574"/>
<source>Prof. Titel</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="575"/>
<source>Semester</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="576"/>
<source>2023</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="577"/>
<source>Apparatsnummer</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="578"/>
<source>Speichern</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="579"/>
<source>Aktualisieren</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="581"/>
<source>Mail</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="582"/>
<source>Tel</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="583"/>
<source>Fach</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="589"/>
<source>*</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="590"/>
<source>Dokument hinzufügen</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="591"/>
<source>Dokument öffnen</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="594"/>
<source>Buchtitel</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="596"/>
<source>Signatur</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="598"/>
<source>Auflage</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="600"/>
<source>Autor</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="602"/>
<source>Link</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="603"/>
<source> Medienliste</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="604"/>
<source>gel. Medien anzeigen</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="605"/>
<source>Medien hinzufügen</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="606"/>
<source>Tab 1</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="607"/>
<source>Tab 2</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="608"/>
<source>Datei</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="609"/>
<source>Einstellungen</source>
<translation></translation>
</message>
<message>
<location filename="Ui_semesterapparat_ui.py" line="610"/>
<source>Beenden</source>
<translation></translation>
</message>
</context>
</TS>

71
src/ui/Ui_setupwizard.py Normal file
View File

@@ -0,0 +1,71 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\Semesterapparate\ui\setupwizard.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
class Ui_Wizard(object):
def setupUi(self, Wizard):
Wizard.setObjectName("Wizard")
Wizard.resize(640, 480)
Wizard.setMaximumSize(QtCore.QSize(640, 480))
self.wizardPage1 = QtWidgets.QWizardPage()
self.wizardPage1.setObjectName("wizardPage1")
self.textBrowser = QtWidgets.QTextBrowser(self.wizardPage1)
self.textBrowser.setGeometry(QtCore.QRect(200, 10, 256, 192))
self.textBrowser.setObjectName("textBrowser")
Wizard.addPage(self.wizardPage1)
self.wizardPage2 = QtWidgets.QWizardPage()
self.wizardPage2.setObjectName("wizardPage2")
self.label = QtWidgets.QLabel(self.wizardPage2)
self.label.setGeometry(QtCore.QRect(10, 0, 131, 16))
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.wizardPage2)
self.label_2.setGeometry(QtCore.QRect(10, 40, 71, 16))
self.label_2.setObjectName("label_2")
self.default_apps = QtWidgets.QCheckBox(self.wizardPage2)
self.default_apps.setGeometry(QtCore.QRect(100, 40, 70, 17))
self.default_apps.setText("")
self.default_apps.setObjectName("default_apps")
self.label_3 = QtWidgets.QLabel(self.wizardPage2)
self.label_3.setGeometry(QtCore.QRect(10, 70, 61, 16))
self.label_3.setObjectName("label_3")
self.custom_applications = QtWidgets.QFrame(self.wizardPage2)
self.custom_applications.setGeometry(QtCore.QRect(280, 10, 331, 361))
self.custom_applications.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
self.custom_applications.setFrameShadow(QtWidgets.QFrame.Shadow.Raised)
self.custom_applications.setObjectName("custom_applications")
self.save_path = QtWidgets.QLineEdit(self.wizardPage2)
self.save_path.setGeometry(QtCore.QRect(80, 70, 113, 20))
self.save_path.setObjectName("save_path")
self.btn_save_path_select = QtWidgets.QToolButton(self.wizardPage2)
self.btn_save_path_select.setGeometry(QtCore.QRect(200, 70, 25, 19))
self.btn_save_path_select.setObjectName("btn_save_path_select")
Wizard.addPage(self.wizardPage2)
self.retranslateUi(Wizard)
QtCore.QMetaObject.connectSlotsByName(Wizard)
def retranslateUi(self, Wizard):
_translate = QtCore.QCoreApplication.translate
Wizard.setWindowTitle(_translate("Wizard", "Wizard"))
self.textBrowser.setHtml(_translate("Wizard", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Setup für das Semesterapparatsprogram.</p>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Im Anschluss werden wichtige Einstellungen gesetzt, welche auch im späteren Verlauf verändert werden können.</p>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"))
self.label.setText(_translate("Wizard", "Grundeinstellungen"))
self.label_2.setToolTip(_translate("Wizard", "Opens the downloaded files with the default applications set in the OS"))
self.label_2.setText(_translate("Wizard", "Default Apps"))
self.label_3.setToolTip(_translate("Wizard", "Path where the downloaded files are stored. Defaults to ~/Desktop/SemapFiles"))
self.label_3.setText(_translate("Wizard", "Save Path"))
self.save_path.setPlaceholderText(_translate("Wizard", "~/Desktop/SemapFiles"))
self.btn_save_path_select.setText(_translate("Wizard", "..."))

29
src/ui/__init__.py Normal file
View File

@@ -0,0 +1,29 @@
import pathlib
from .dialogs import (
App_Ext_Dialog,
Mail_Dialog,
Settings,
edit_bookdata_ui,
fileparser_ui,
login_ui,
medienadder_ui,
parsed_titles_ui,
popus_confirm,
reminder_ui,
settings_ui,
new_subject_ui,
)
from .Ui_semesterapparat_ui import Ui_MainWindow as Ui_Semesterapparat
from .Ui_setupwizard import Ui_Wizard as SetupWizard
from .widgets import (
FilePicker,
GraphWidget,
Message_Widget,
StatusWidget,
)
path = pathlib.Path(__file__).parent.absolute()
# from .mainwindow import Ui_MainWindow as Ui_MainWindow
# from .sap import Ui_MainWindow as MainWindow_SAP
__all__ = ["mainwindow", "sap", "dialogs", "widgets"]

View File

@@ -0,0 +1,157 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\Semesterapparate\ui\dialogs\edit_bookdata.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.dataclass import BookData
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Metadaten")
Dialog.resize(448, 572)
self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
self.buttonBox.setGeometry(QtCore.QRect(260, 530, 161, 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(Dialog)
self.gridLayoutWidget.setGeometry(QtCore.QRect(0, 0, 441, 531))
self.gridLayoutWidget.setObjectName("gridLayoutWidget")
self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget)
self.gridLayout.setSizeConstraint(
QtWidgets.QLayout.SizeConstraint.SetDefaultConstraint
)
self.gridLayout.setContentsMargins(0, 0, 0, 0)
self.gridLayout.setObjectName("gridLayout")
self.label_10 = QtWidgets.QLabel(self.gridLayoutWidget)
self.label_10.setObjectName("label_10")
self.gridLayout.addWidget(self.label_10, 10, 1, 1, 1)
self.label = QtWidgets.QLabel(self.gridLayoutWidget)
self.label.setObjectName("label")
self.gridLayout.addWidget(self.label, 0, 1, 1, 1)
self.label_9 = QtWidgets.QLabel(self.gridLayoutWidget)
self.label_9.setObjectName("label_9")
self.gridLayout.addWidget(self.label_9, 9, 1, 1, 1)
self.label_8 = QtWidgets.QLabel(self.gridLayoutWidget)
self.label_8.setObjectName("label_8")
self.gridLayout.addWidget(self.label_8, 8, 1, 1, 1)
self.label_12 = QtWidgets.QLabel(self.gridLayoutWidget)
self.label_12.setObjectName("label_12")
self.gridLayout.addWidget(self.label_12, 6, 1, 1, 1)
self.line_edition = QtWidgets.QLineEdit(self.gridLayoutWidget)
self.line_edition.setObjectName("line_edition")
self.gridLayout.addWidget(self.line_edition, 2, 2, 1, 1)
self.label_3 = QtWidgets.QLabel(self.gridLayoutWidget)
self.label_3.setObjectName("label_3")
self.gridLayout.addWidget(self.label_3, 2, 1, 1, 1)
self.label_4 = QtWidgets.QLabel(self.gridLayoutWidget)
self.label_4.setObjectName("label_4")
self.gridLayout.addWidget(self.label_4, 3, 1, 1, 1)
self.line_link = QtWidgets.QLineEdit(self.gridLayoutWidget)
self.line_link.setCursor(QtGui.QCursor(QtCore.Qt.CursorShape.ArrowCursor))
self.line_link.setReadOnly(True)
self.line_link.setObjectName("line_link")
self.gridLayout.addWidget(self.line_link, 6, 2, 1, 1)
self.label_5 = QtWidgets.QLabel(self.gridLayoutWidget)
self.label_5.setObjectName("label_5")
self.gridLayout.addWidget(self.label_5, 4, 1, 1, 1)
self.label_7 = QtWidgets.QLabel(self.gridLayoutWidget)
self.label_7.setObjectName("label_7")
self.gridLayout.addWidget(self.label_7, 7, 1, 1, 1)
self.label_6 = QtWidgets.QLabel(self.gridLayoutWidget)
self.label_6.setObjectName("label_6")
self.gridLayout.addWidget(self.label_6, 5, 1, 1, 1)
self.label_2 = QtWidgets.QLabel(self.gridLayoutWidget)
self.label_2.setObjectName("label_2")
self.gridLayout.addWidget(self.label_2, 1, 1, 1, 1)
spacerItem = QtWidgets.QSpacerItem(
5,
20,
QtWidgets.QSizePolicy.Policy.Fixed,
QtWidgets.QSizePolicy.Policy.Minimum,
)
self.gridLayout.addItem(spacerItem, 8, 0, 1, 1)
self.line_title = QtWidgets.QLineEdit(self.gridLayoutWidget)
self.line_title.setObjectName("line_title")
self.gridLayout.addWidget(self.line_title, 0, 2, 1, 1)
self.line_signature = QtWidgets.QLineEdit(self.gridLayoutWidget)
self.line_signature.setObjectName("line_signature")
self.gridLayout.addWidget(self.line_signature, 1, 2, 1, 1)
self.line_author = QtWidgets.QLineEdit(self.gridLayoutWidget)
self.line_author.setObjectName("line_author")
self.gridLayout.addWidget(self.line_author, 3, 2, 1, 1)
self.line_lang = QtWidgets.QLineEdit(self.gridLayoutWidget)
self.line_lang.setObjectName("line_lang")
self.gridLayout.addWidget(self.line_lang, 8, 2, 1, 1)
self.line_ppn = QtWidgets.QLineEdit(self.gridLayoutWidget)
self.line_ppn.setObjectName("line_ppn")
self.gridLayout.addWidget(self.line_ppn, 5, 2, 1, 1)
self.line_isbn = QtWidgets.QLineEdit(self.gridLayoutWidget)
self.line_isbn.setObjectName("line_isbn")
self.gridLayout.addWidget(self.line_isbn, 7, 2, 1, 1)
self.line_year = QtWidgets.QLineEdit(self.gridLayoutWidget)
self.line_year.setObjectName("line_year")
self.gridLayout.addWidget(self.line_year, 9, 2, 1, 1)
self.line_pages = QtWidgets.QLineEdit(self.gridLayoutWidget)
self.line_pages.setObjectName("line_pages")
self.gridLayout.addWidget(self.line_pages, 10, 2, 1, 1)
self.line_publisher = QtWidgets.QLineEdit(self.gridLayoutWidget)
self.line_publisher.setObjectName("line_publisher")
self.gridLayout.addWidget(self.line_publisher, 4, 2, 1, 1)
self.retranslateUi(Dialog)
self.buttonBox.accepted.connect(Dialog.accept) # type: ignore
self.buttonBox.rejected.connect(Dialog.reject) # type: ignore
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.label_10.setText(_translate("Dialog", "Seiten"))
self.label.setText(_translate("Dialog", "Titel"))
self.label_9.setText(_translate("Dialog", "Jahr"))
self.label_8.setText(_translate("Dialog", "Sprache"))
self.label_12.setText(_translate("Dialog", "Link"))
self.label_3.setText(_translate("Dialog", "Auflage"))
self.label_4.setText(_translate("Dialog", "Autor"))
self.label_5.setText(_translate("Dialog", "Herausgeber"))
self.label_7.setText(_translate("Dialog", "ISBN(s)"))
self.label_6.setText(_translate("Dialog", "PPN"))
self.label_2.setText(_translate("Dialog", "Signatur"))
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(),
)

View File

@@ -0,0 +1,109 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\Semesterapparate\ui\dialogs\fileparser.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.webrequest import BibTextTransformer, WebRequest
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(402, 301)
self.progressBar = QtWidgets.QProgressBar(Dialog)
self.progressBar.setGeometry(QtCore.QRect(10, 60, 381, 23))
self.progressBar.setProperty("value", 24)
self.progressBar.setObjectName("progressBar")
self.frame = QtWidgets.QFrame(Dialog)
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(Dialog)
self.frame_2.setGeometry(QtCore.QRect(10, 100, 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.listWidget = QtWidgets.QListWidget(self.frame_2)
self.listWidget.setGeometry(QtCore.QRect(0, 0, 381, 191))
self.listWidget.setObjectName("listWidget")
self.signatures = []
self.returned = []
# self.data_gathering_complete = QtCore.pyqtSignal()
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.label.setText(_translate("Dialog", "Es wurden"))
self.count.setText(_translate("Dialog", "0"))
self.label_2.setText(_translate("Dialog", "Signaturen gefunden."))
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()

113
src/ui/dialogs/Ui_login.py Normal file
View File

@@ -0,0 +1,113 @@
# 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 src.backend.database import Database
from src.backend.admin_console import AdminCommands
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(218, 190)
self.dialog = Dialog
self.login_button = QtWidgets.QPushButton(parent=Dialog)
self.login_button.setGeometry(QtCore.QRect(30, 140, 76, 32))
self.login_button.setObjectName("login_button")
self.login_button.setText("Login")
self.login_button.setFocusPolicy(QtCore.Qt.FocusPolicy.ClickFocus)
self.cancel_button = QtWidgets.QPushButton(parent=Dialog)
self.cancel_button.setGeometry(QtCore.QRect(120, 140, 76, 32))
self.cancel_button.setObjectName("cancel_button")
self.cancel_button.setText("Cancel")
self.cancel_button.setFocusPolicy(QtCore.Qt.FocusPolicy.ClickFocus)
self.cancel_button.clicked.connect(self.cancel_buttonfn)
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")
# set strong focus to lineEdit
self.lineEdit.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus)
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)
# set echo mode to password
self.lineEdit_2.setEchoMode(QtWidgets.QLineEdit.EchoMode.Password)
self.lineEdit_2.setClearButtonEnabled(True)
self.lineEdit_2.setObjectName("lineEdit_2")
self.retranslateUi(Dialog)
# if buttonbox accepted is clicked, launch login test
self.login_button.clicked.connect(self.login)
self.lresult = -1
self.lusername = ""
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.label.setText(_translate("Dialog", "Username"))
self.label_2.setText(_translate("Dialog", "Password"))
def login(self):
username = self.lineEdit.text()
password = self.lineEdit_2.text()
print(type(username), password)
# Assuming 'Database' is a class to interact with your database
db = Database()
hashed_password = hashlib.sha256(
password.encode()
).hexdigest()
if len(db.get_users()) == 0:
AdminCommands().create_admin()
self.lresult = 1 # Indicate successful login
self.lusername = username
self.dialog.accept()
if db.login(username, hashed_password):
self.lresult = 1 # Indicate successful login
self.lusername = username
self.dialog.accept()
db.close()
else:
# Credentials are invalid, display a warning
if username == "" or password == "":
warning_dialog = QtWidgets.QMessageBox()
warning_dialog.setIcon(QtWidgets.QMessageBox.Icon.Warning)
warning_dialog.setText("Please enter a username and password.")
warning_dialog.setWindowTitle("Login Failed")
warning_dialog.exec()
else:
warning_dialog = QtWidgets.QMessageBox()
warning_dialog.setIcon(QtWidgets.QMessageBox.Icon.Warning)
warning_dialog.setText(
"Invalid username or password. Please try again."
)
warning_dialog.setWindowTitle("Login Failed")
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())

View File

@@ -0,0 +1,240 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\Semesterapparate\ui\dialogs\medianadder.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
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(637, 491)
self.label = QtWidgets.QLabel(Dialog)
self.label.setGeometry(QtCore.QRect(20, 10, 47, 21))
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(Dialog)
self.label_2.setGeometry(QtCore.QRect(20, 40, 47, 21))
self.label_2.setObjectName("label_2")
self.comboBox = QtWidgets.QComboBox(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.setGeometry(QtCore.QRect(70, 10, 113, 20))
self.lineEdit.setObjectName("lineEdit")
self.label_3 = QtWidgets.QLabel(Dialog)
self.label_3.setGeometry(QtCore.QRect(20, 70, 47, 21))
self.label_3.setObjectName("label_3")
self.widget = QtWidgets.QWidget(Dialog)
self.widget.setGeometry(QtCore.QRect(330, 90, 301, 341))
self.widget.setObjectName("widget")
self.treeWidget = QtWidgets.QTreeWidget(self.widget)
self.treeWidget.setEnabled(True)
self.treeWidget.setGeometry(QtCore.QRect(0, 0, 301, 341))
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.setAlternatingRowColors(True)
self.treeWidget.setSelectionMode(
QtWidgets.QAbstractItemView.SelectionMode.NoSelection
)
self.treeWidget.setTextElideMode(QtCore.Qt.TextElideMode.ElideMiddle)
self.treeWidget.setUniformRowHeights(True)
self.treeWidget.setItemsExpandable(False)
self.treeWidget.setExpandsOnDoubleClick(False)
self.treeWidget.setObjectName("treeWidget")
font = QtGui.QFont()
font.setPointSize(7)
self.treeWidget.headerItem().setFont(0, font)
item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget)
brush = QtGui.QBrush(QtGui.QColor(255, 0, 0))
brush.setStyle(QtCore.Qt.BrushStyle.SolidPattern)
item_0.setBackground(2, brush)
item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget)
brush = QtGui.QBrush(QtGui.QColor(0, 255, 0))
brush.setStyle(QtCore.Qt.BrushStyle.SolidPattern)
item_0.setBackground(2, brush)
item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget)
item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget)
item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget)
item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget)
item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget)
item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget)
item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget)
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().setHighlightSections(False)
self.treeWidget.header().setMinimumSectionSize(20)
self.listWidget = QtWidgets.QListWidget(Dialog)
self.listWidget.setGeometry(QtCore.QRect(10, 90, 281, 341))
self.listWidget.setContextMenuPolicy(
QtCore.Qt.ContextMenuPolicy.CustomContextMenu
)
self.listWidget.setObjectName("listWidget")
self.label_4 = QtWidgets.QLabel(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.setGeometry(QtCore.QRect(200, 70, 41, 21))
self.label_5.setObjectName("label_5")
self.list_amount = QtWidgets.QLabel(Dialog)
self.list_amount.setGeometry(QtCore.QRect(240, 70, 47, 21))
self.list_amount.setObjectName("list_amount")
self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
self.buttonBox.setGeometry(QtCore.QRect(10, 450, 156, 23))
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.lineEdit.returnPressed.connect(self.add_to_list)
self.retranslateUi(Dialog)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.label.setText(_translate("Dialog", "Signatur"))
self.label_2.setText(_translate("Dialog", "Modus"))
self.comboBox.setItemText(0, _translate("Dialog", "ARRAY"))
self.comboBox.setItemText(1, _translate("Dialog", "BibTeX"))
self.comboBox.setItemText(2, _translate("Dialog", "COinS"))
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(1, _translate("Dialog", "Array"))
self.treeWidget.headerItem().setText(2, _translate("Dialog", "BibTeX"))
self.treeWidget.headerItem().setText(3, _translate("Dialog", "COinS"))
self.treeWidget.headerItem().setText(4, _translate("Dialog", "RIS"))
__sortingEnabled = self.treeWidget.isSortingEnabled()
self.treeWidget.setSortingEnabled(False)
self.treeWidget.topLevelItem(0).setText(0, _translate("Dialog", "PPN"))
self.treeWidget.topLevelItem(0).setText(1, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(0).setText(2, _translate("Dialog", "0"))
self.treeWidget.topLevelItem(0).setText(3, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(0).setText(4, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(1).setText(0, _translate("Dialog", "Signatur"))
self.treeWidget.topLevelItem(1).setText(1, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(1).setText(2, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(1).setText(3, _translate("Dialog", "0"))
self.treeWidget.topLevelItem(1).setText(4, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(2).setText(0, _translate("Dialog", "Autor"))
self.treeWidget.topLevelItem(2).setText(1, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(2).setText(2, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(2).setText(3, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(2).setText(4, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(3).setText(0, _translate("Dialog", "ISBN"))
self.treeWidget.topLevelItem(3).setText(1, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(3).setText(2, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(3).setText(3, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(3).setText(4, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(4).setText(0, _translate("Dialog", "Jahr"))
self.treeWidget.topLevelItem(4).setText(1, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(4).setText(2, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(4).setText(3, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(4).setText(4, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(5).setText(0, _translate("Dialog", "Auflage"))
self.treeWidget.topLevelItem(5).setText(1, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(5).setText(2, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(5).setText(3, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(5).setText(4, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(6).setText(0, _translate("Dialog", "Sprache"))
self.treeWidget.topLevelItem(6).setText(1, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(6).setText(2, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(6).setText(3, _translate("Dialog", "0"))
self.treeWidget.topLevelItem(6).setText(4, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(7).setText(0, _translate("Dialog", "Herausgeber"))
self.treeWidget.topLevelItem(7).setText(1, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(7).setText(2, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(7).setText(3, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(7).setText(4, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(8).setText(0, _translate("Dialog", "Seiten"))
self.treeWidget.topLevelItem(8).setText(1, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(8).setText(2, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(8).setText(3, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(8).setText(4, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(9).setText(0, _translate("Dialog", "Titel"))
self.treeWidget.topLevelItem(9).setText(1, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(9).setText(2, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(9).setText(3, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(9).setText(4, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(10).setText(0, _translate("Dialog", "Link"))
self.treeWidget.topLevelItem(10).setText(1, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(10).setText(2, _translate("Dialog", "0"))
self.treeWidget.topLevelItem(10).setText(3, _translate("Dialog", "1"))
self.treeWidget.topLevelItem(10).setText(4, _translate("Dialog", "1"))
self.treeWidget.setSortingEnabled(__sortingEnabled)
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()))

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
</TS>

View File

@@ -0,0 +1,63 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\Semesterapparate\ui\dialogs\new_subject.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, QtWidgets
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(448, 165)
self.verticalLayout_2 = QtWidgets.QVBoxLayout(Dialog)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.label = QtWidgets.QLabel(Dialog)
self.label.setObjectName("label")
self.verticalLayout.addWidget(self.label)
self.gridLayout = QtWidgets.QGridLayout()
self.gridLayout.setObjectName("gridLayout")
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
self.gridLayout.addItem(spacerItem, 0, 1, 1, 1)
self.checkBox = QtWidgets.QCheckBox(Dialog)
self.checkBox.setObjectName("checkBox")
self.gridLayout.addWidget(self.checkBox, 0, 0, 1, 1)
self.verticalLayout.addLayout(self.gridLayout)
self.verticalLayout_2.addLayout(self.verticalLayout)
self.frame = QtWidgets.QFrame(Dialog)
self.frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
self.frame.setFrameShadow(QtWidgets.QFrame.Shadow.Raised)
self.frame.setObjectName("frame")
self.label_2 = QtWidgets.QLabel(self.frame)
self.label_2.setGeometry(QtCore.QRect(0, 10, 141, 16))
self.label_2.setObjectName("label_2")
self.lineEdit = QtWidgets.QLineEdit(self.frame)
self.lineEdit.setGeometry(QtCore.QRect(0, 30, 141, 20))
self.lineEdit.setObjectName("lineEdit")
self.verticalLayout_2.addWidget(self.frame)
self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok)
self.buttonBox.setObjectName("buttonBox")
self.verticalLayout_2.addWidget(self.buttonBox)
self.frame.setVisible(False)
self.checkBox.stateChanged.connect(lambda: self.frame.setVisible(self.checkBox.isChecked()))
self.retranslateUi(Dialog)
self.buttonBox.accepted.connect(Dialog.accept) # type: ignore
self.buttonBox.rejected.connect(Dialog.reject) # type: ignore
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.label.setText(_translate("Dialog", "Das eingegebene Fach wurde nicht in der Datenbank gefunden. Soll es angelegt werden?"))
self.checkBox.setText(_translate("Dialog", "Ja"))
self.label_2.setText(_translate("Dialog", "Name des Neuen Faches:"))
def return_state(self):
return self.lineEdit.text()

View File

@@ -0,0 +1,158 @@
# 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 log import MyLogger
from src.logic.threads import AutoAdder
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)

View File

@@ -0,0 +1,52 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\Semesterapparate\ui\dialogs\reminder.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, QtWidgets
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(369, 308)
self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
self.buttonBox.setGeometry(QtCore.QRect(190, 270, 161, 32))
self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
self.buttonBox.setStandardButtons(
QtWidgets.QDialogButtonBox.StandardButton.Cancel
| QtWidgets.QDialogButtonBox.StandardButton.Ok
)
self.buttonBox.setObjectName("buttonBox")
self.message_box = QtWidgets.QTextEdit(Dialog)
self.message_box.setGeometry(QtCore.QRect(10, 60, 341, 201))
self.message_box.setObjectName("message_box")
self.label = QtWidgets.QLabel(Dialog)
self.label.setGeometry(QtCore.QRect(10, 30, 61, 21))
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(Dialog)
self.label_2.setGeometry(QtCore.QRect(150, 30, 81, 21))
self.label_2.setObjectName("label_2")
self.dateEdit = QtWidgets.QDateEdit(Dialog)
self.dateEdit.setGeometry(QtCore.QRect(240, 30, 110, 22))
self.dateEdit.setObjectName("dateEdit")
self.dateEdit.setDateTime(QtCore.QDateTime.currentDateTime())
self.retranslateUi(Dialog)
self.buttonBox.accepted.connect(Dialog.accept) # type: ignore
self.buttonBox.rejected.connect(Dialog.reject) # type: ignore
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.label.setText(_translate("Dialog", "Nachricht:"))
self.label_2.setText(_translate("Dialog", "Erinnerung am:"))
def return_message(self) -> dict:
return {
"message": self.message_box.toPlainText(),
"remind_at": self.dateEdit.date().toString("yyyy-MM-dd"),
}

View File

@@ -0,0 +1,202 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\Semesterapparate\ui\dialogs\settings.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 omegaconf import OmegaConf
from PyQt6 import QtCore, QtWidgets
config = OmegaConf.load("config.yaml")
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(743, 576)
self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
self.buttonBox.setGeometry(QtCore.QRect(120, 540, 621, 32))
self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
self.buttonBox.setStandardButtons(
QtWidgets.QDialogButtonBox.StandardButton.Cancel
| QtWidgets.QDialogButtonBox.StandardButton.Ok
)
self.buttonBox.setObjectName("buttonBox")
self.frame = QtWidgets.QFrame(Dialog)
self.frame.setGeometry(QtCore.QRect(0, 0, 741, 541))
self.frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
self.frame.setFrameShadow(QtWidgets.QFrame.Shadow.Raised)
self.frame.setObjectName("frame")
self.label = QtWidgets.QLabel(self.frame)
self.label.setGeometry(QtCore.QRect(400, 30, 161, 21))
self.label.setObjectName("label")
self.line = QtWidgets.QFrame(self.frame)
self.line.setGeometry(QtCore.QRect(370, 0, 20, 541))
self.line.setFrameShadow(QtWidgets.QFrame.Shadow.Plain)
self.line.setLineWidth(1)
self.line.setMidLineWidth(0)
self.line.setFrameShape(QtWidgets.QFrame.Shape.VLine)
self.line.setObjectName("line")
self.textBrowser = QtWidgets.QTextBrowser(self.frame)
self.textBrowser.setGeometry(QtCore.QRect(400, 50, 311, 51))
self.textBrowser.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.textBrowser.setInputMethodHints(QtCore.Qt.InputMethodHint.ImhNone)
self.textBrowser.setObjectName("textBrowser")
self.label_2 = QtWidgets.QLabel(self.frame)
self.label_2.setGeometry(QtCore.QRect(10, 20, 161, 21))
self.label_2.setObjectName("label_2")
self.os_apps = QtWidgets.QCheckBox(self.frame)
self.os_apps.setGeometry(QtCore.QRect(410, 110, 161, 17))
self.os_apps.setObjectName("os_apps")
self.formLayoutWidget = QtWidgets.QWidget(self.frame)
self.formLayoutWidget.setGeometry(QtCore.QRect(10, 50, 361, 491))
self.formLayoutWidget.setObjectName("formLayoutWidget")
self.gridLayout = QtWidgets.QGridLayout(self.formLayoutWidget)
self.gridLayout.setContentsMargins(0, 0, 0, 0)
self.gridLayout.setObjectName("gridLayout")
self.label_3 = QtWidgets.QLabel(self.formLayoutWidget)
self.label_3.setObjectName("label_3")
self.gridLayout.addWidget(self.label_3, 0, 0, 1, 1)
self.label_5 = QtWidgets.QLabel(self.formLayoutWidget)
self.label_5.setObjectName("label_5")
self.gridLayout.addWidget(self.label_5, 2, 0, 1, 1)
self.db_path = QtWidgets.QLineEdit(self.formLayoutWidget)
self.db_path.setEnabled(False)
self.db_path.setObjectName("db_path")
self.gridLayout.addWidget(self.db_path, 1, 1, 1, 1)
self.save_path = QtWidgets.QLineEdit(self.formLayoutWidget)
self.save_path.setObjectName("save_path")
self.gridLayout.addWidget(self.save_path, 2, 1, 1, 1)
self.label_4 = QtWidgets.QLabel(self.formLayoutWidget)
self.label_4.setObjectName("label_4")
self.gridLayout.addWidget(self.label_4, 1, 0, 1, 1)
self.db_name = QtWidgets.QLineEdit(self.formLayoutWidget)
self.db_name.setObjectName("db_name")
self.gridLayout.addWidget(self.db_name, 0, 1, 1, 1)
self.tb_set_save_path = QtWidgets.QToolButton(self.formLayoutWidget)
self.tb_set_save_path.setObjectName("tb_set_save_path")
self.gridLayout.addWidget(self.tb_set_save_path, 2, 2, 1, 1)
spacerItem = QtWidgets.QSpacerItem(
20,
40,
QtWidgets.QSizePolicy.Policy.Minimum,
QtWidgets.QSizePolicy.Policy.Expanding,
)
self.gridLayout.addItem(spacerItem, 3, 1, 1, 1)
self.tb_select_db = QtWidgets.QToolButton(self.formLayoutWidget)
self.tb_select_db.setObjectName("tb_select_db")
self.gridLayout.addWidget(self.tb_select_db, 0, 2, 1, 1)
self.scrollArea = QtWidgets.QScrollArea(self.frame)
self.scrollArea.setGeometry(QtCore.QRect(400, 130, 331, 411))
self.scrollArea.setWidgetResizable(True)
self.scrollArea.setObjectName("scrollArea")
self.scrollAreaWidgetContents = QtWidgets.QWidget()
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 329, 409))
self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
self.treeWidget = QtWidgets.QTreeWidget(self.scrollAreaWidgetContents)
self.treeWidget.setGeometry(QtCore.QRect(0, 0, 331, 411))
self.treeWidget.setObjectName("treeWidget")
self.treeWidget.setContextMenuPolicy(
QtCore.Qt.ContextMenuPolicy.ActionsContextMenu
)
self.scrollArea.setWidget(self.scrollAreaWidgetContents)
self.label_3.setBuddy(self.db_name)
self.label_5.setBuddy(self.save_path)
self.label_4.setBuddy(self.db_path)
self.tb_select_db.clicked.connect(self.select_db)
self.tb_set_save_path.clicked.connect(self.set_save_path)
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.db_name, self.db_path)
Dialog.setTabOrder(self.db_path, self.save_path)
Dialog.setTabOrder(self.save_path, self.os_apps)
Dialog.setTabOrder(self.os_apps, self.textBrowser)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.label.setText(_translate("Dialog", "Dateispezifische Einstellungen"))
self.textBrowser.setHtml(
_translate(
"Dialog",
'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">\n'
'<html><head><meta name="qrichtext" content="1" /><style type="text/css">\n'
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
'<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Hier können Einstellungen f<>r bestehende Dateiformate geändert, oder neue Dateiformate eingefügt werden</p>\n'
'<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html>',
)
)
self.label_2.setText(_translate("Dialog", "Allgemeine Einstellungen"))
self.os_apps.setToolTip(
_translate(
"Dialog",
"Verwendet im Betriebssystem festgelegte Anwendungen um Dateien zu öffnen",
)
)
self.os_apps.setText(_translate("Dialog", "Standard-Apps verwenden"))
self.label_3.setToolTip(
_translate(
"Dialog",
'<html><head/><body><p>Name der Datenbank, welche verwendet werden soll. <span style=" font-weight:600;">Muss</span> auf .db enden</p></body></html>',
)
)
self.label_3.setText(_translate("Dialog", "Datenbankname"))
self.label_5.setToolTip(
_translate(
"Dialog",
"Pfad, an dem heruntergeladene Dateien gespeichert werden sollen",
)
)
self.label_5.setText(_translate("Dialog", "Speicherpfad"))
self.label_4.setText(_translate("Dialog", "Datenbankpfad"))
self.db_name.setText(_translate("Dialog", "sap.db"))
self.tb_set_save_path.setText(_translate("Dialog", "..."))
self.tb_select_db.setText(_translate("Dialog", "..."))
self.load_config()
def load_config(self):
self.db_name.setText(config.database.name)
self.db_path.setText(config.database.path)
self.save_path.setText(config.save_path)
self.os_apps.setChecked(config.default_apps)
applications = config.custom_applications
for application in applications:
name = application.application
file_type = application.extensions
display_name = application.name
print(name, file_type, display_name) #
# create new item
item = QtWidgets.QTreeWidgetItem(self.treeWidget)
item.setText(0, display_name)
def select_db(self):
# open file dialog, limit to .db files
file_dialog = QtWidgets.QFileDialog()
file_dialog.setFileMode(QtWidgets.QFileDialog.FileMode.AnyFile)
file_dialog.setNameFilter("Datenbank (*.db)")
file_dialog.setViewMode(QtWidgets.QFileDialog.ViewMode.Detail)
if file_dialog.exec():
self.db_name.setText(file_dialog.selectedFiles()[0].split("/")[-1])
self.db_path.setText(
file_dialog.selectedFiles()[0].split(self.db_name.text())[0]
)
def set_save_path(self):
# open file dialog, limit to .db files
file_dialog = QtWidgets.QFileDialog()
file_dialog.setFileMode(QtWidgets.QFileDialog.FileMode.Directory)
file_dialog.setViewMode(QtWidgets.QFileDialog.ViewMode.Detail)
if file_dialog.exec():
self.save_path.setText(file_dialog.selectedFiles()[0])
def return_data(self):
config.database.name = self.db_name.text()
config.database.path = self.db_path.text()
config.save_path = self.save_path.text()
config.default_apps = self.os_apps.isChecked()
return config

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
</TS>

View File

@@ -0,0 +1,24 @@
from .app_ext import Ui_Dialog as App_Ext_Dialog
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
__all__ = [
"ext_app",
"app_ext",
"Mail_Dialog",
"medianadder_ui",
"popup_confirm",
"edit_bookdata_ui",
"settings_ui",
"parsed_titles_ui",
]

View File

@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="geometry">
<rect>
<x>30</x>
<y>260</y>
<width>341</width>
<height>32</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
<widget class="QWidget" name="gridLayoutWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>381</width>
<height>241</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Signatur</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit"/>
</item>
</layout>
</widget>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>Dialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>Dialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

114
src/ui/dialogs/app_ext.py Normal file
View File

@@ -0,0 +1,114 @@
# Form implementation generated from reading ui file 'ui\dialogs\apparat_extend.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
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(388, 103)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(Dialog.sizePolicy().hasHeightForWidth())
Dialog.setSizePolicy(sizePolicy)
Dialog.setMinimumSize(QtCore.QSize(388, 103))
Dialog.setMaximumSize(QtCore.QSize(388, 103))
self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
self.buttonBox.setGeometry(QtCore.QRect(290, 30, 81, 241))
self.buttonBox.setOrientation(QtCore.Qt.Orientation.Vertical)
self.buttonBox.setStandardButtons(
QtWidgets.QDialogButtonBox.StandardButton.Abort
| QtWidgets.QDialogButtonBox.StandardButton.Save
)
self.buttonBox.setObjectName("buttonBox")
self.label = QtWidgets.QLabel(Dialog)
self.label.setGeometry(QtCore.QRect(10, 0, 281, 31))
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
self.label.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(10)
self.label.setFont(font)
self.label.setObjectName("label")
self.frame = QtWidgets.QFrame(Dialog)
self.frame.setGeometry(QtCore.QRect(10, 30, 241, 41))
self.frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
self.frame.setFrameShadow(QtWidgets.QFrame.Shadow.Raised)
self.frame.setObjectName("frame")
self.line = QtWidgets.QFrame(self.frame)
self.line.setGeometry(QtCore.QRect(120, 0, 3, 61))
self.line.setFrameShape(QtWidgets.QFrame.Shape.VLine)
self.line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
self.line.setObjectName("line")
self.rad_sommer = QtWidgets.QRadioButton(self.frame)
self.rad_sommer.setGeometry(QtCore.QRect(10, 10, 82, 21))
self.rad_sommer.setObjectName("rad_sommer")
self.rad_winter = QtWidgets.QRadioButton(self.frame)
self.rad_winter.setGeometry(QtCore.QRect(140, 10, 82, 21))
self.rad_winter.setObjectName("rad_winter")
self.sem_year = QtWidgets.QLineEdit(Dialog)
self.sem_year.setGeometry(QtCore.QRect(10, 70, 121, 20))
self.sem_year.setObjectName("sem_year")
self.dauerapp = QtWidgets.QCheckBox(Dialog)
self.dauerapp.setGeometry(QtCore.QRect(150, 70, 91, 21))
self.dauerapp.setObjectName("dauerapp")
self.retranslateUi(Dialog)
self.buttonBox.accepted.connect(Dialog.accept) # type: ignore
self.buttonBox.rejected.connect(Dialog.reject) # type: ignore
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.label.setText(
_translate("Dialog", "Bis wann soll der Apparat verlängert werden?")
)
self.rad_sommer.setText(_translate("Dialog", "Sommer"))
self.rad_winter.setText(_translate("Dialog", "Winter"))
self.sem_year.setPlaceholderText(_translate("Dialog", "2023"))
self.dauerapp.setText(_translate("Dialog", "Dauerapparat"))
def get_data(self):
# def __select_sem_state():
# curr_month=QtCore.QDate.currentDate().month()
# if curr_month>=4 and curr_month<=9:
# return "SoSe"
# else:
# return "WiSe"
# if __select_sem_state()=="SoSe":
# self.rad_sommer.setChecked(True)
# else:
# self.rad_winter.setChecked(True)
return {
"semester": f"SoSe {int(self.sem_year.text()[-2:])}"
if self.rad_sommer.isChecked()
else f"WiSe {int(self.sem_year.text()[-2:])}/{int(self.sem_year.text()[-2:])+1}",
"dauerapp": self.dauerapp.isChecked()
if self.dauerapp.isChecked()
else False,
}
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())

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>300</width>
<height>500</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,191 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>388</width>
<height>103</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>388</width>
<height>103</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>388</width>
<height>103</height>
</size>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="geometry">
<rect>
<x>290</x>
<y>30</y>
<width>81</width>
<height>241</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Abort|QDialogButtonBox::Save</set>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>10</x>
<y>0</y>
<width>281</width>
<height>31</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>Bis wann soll der Apparat verlängert werden?</string>
</property>
</widget>
<widget class="QFrame" name="frame">
<property name="geometry">
<rect>
<x>10</x>
<y>30</y>
<width>241</width>
<height>41</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="Line" name="line">
<property name="geometry">
<rect>
<x>120</x>
<y>0</y>
<width>3</width>
<height>61</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
<widget class="QRadioButton" name="rad_sommer">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>82</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>Sommer</string>
</property>
</widget>
<widget class="QRadioButton" name="rad_winter">
<property name="geometry">
<rect>
<x>140</x>
<y>10</y>
<width>82</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>Winter</string>
</property>
</widget>
</widget>
<widget class="QLineEdit" name="sem_year">
<property name="geometry">
<rect>
<x>10</x>
<y>70</y>
<width>121</width>
<height>20</height>
</rect>
</property>
<property name="placeholderText">
<string>2023</string>
</property>
</widget>
<widget class="QCheckBox" name="dauerapp">
<property name="geometry">
<rect>
<x>150</x>
<y>70</y>
<width>91</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>Dauerapparat</string>
</property>
</widget>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>Dialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>Dialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@@ -0,0 +1,83 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file 'apparat_extend.ui'
##
## Created by: Qt User Interface Compiler version 6.4.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
QMetaObject, QObject, QPoint, QRect,
QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
QFont, QFontDatabase, QGradient, QIcon,
QImage, QKeySequence, QLinearGradient, QPainter,
QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QAbstractButton, QApplication, QCheckBox, QDialog,
QDialogButtonBox, QFrame, QLabel, QLineEdit,
QRadioButton, QSizePolicy, QWidget)
class Ui_Dialog(object):
def setupUi(self, Dialog):
if not Dialog.objectName():
Dialog.setObjectName(u"Dialog")
Dialog.resize(388, 103)
sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(Dialog.sizePolicy().hasHeightForWidth())
Dialog.setSizePolicy(sizePolicy)
Dialog.setMinimumSize(QSize(388, 103))
Dialog.setMaximumSize(QSize(388, 103))
self.buttonBox = QDialogButtonBox(Dialog)
self.buttonBox.setObjectName(u"buttonBox")
self.buttonBox.setGeometry(QRect(290, 30, 81, 241))
self.buttonBox.setOrientation(Qt.Vertical)
self.buttonBox.setStandardButtons(QDialogButtonBox.Abort|QDialogButtonBox.Save)
self.label = QLabel(Dialog)
self.label.setObjectName(u"label")
self.label.setGeometry(QRect(10, 0, 281, 31))
font = QFont()
font.setPointSize(10)
self.label.setFont(font)
self.frame = QFrame(Dialog)
self.frame.setObjectName(u"frame")
self.frame.setGeometry(QRect(10, 30, 241, 41))
self.frame.setFrameShape(QFrame.StyledPanel)
self.frame.setFrameShadow(QFrame.Raised)
self.line = QFrame(self.frame)
self.line.setObjectName(u"line")
self.line.setGeometry(QRect(120, 0, 3, 61))
self.line.setFrameShape(QFrame.VLine)
self.line.setFrameShadow(QFrame.Sunken)
self.rad_sommer = QRadioButton(self.frame)
self.rad_sommer.setObjectName(u"rad_sommer")
self.rad_sommer.setGeometry(QRect(10, 10, 82, 21))
self.rad_winter = QRadioButton(self.frame)
self.rad_winter.setObjectName(u"rad_winter")
self.rad_winter.setGeometry(QRect(140, 10, 82, 21))
self.sem_year = QLineEdit(Dialog)
self.sem_year.setObjectName(u"sem_year")
self.sem_year.setGeometry(QRect(10, 70, 121, 20))
self.checkBox = QCheckBox(Dialog)
self.checkBox.setObjectName(u"checkBox")
self.checkBox.setGeometry(QRect(150, 70, 91, 21))
self.retranslateUi(Dialog)
self.buttonBox.accepted.connect(Dialog.accept)
self.buttonBox.rejected.connect(Dialog.reject)
QMetaObject.connectSlotsByName(Dialog)
# setupUi
def retranslateUi(self, Dialog):
Dialog.setWindowTitle(QCoreApplication.translate("Dialog", u"Dialog", None))
self.label.setText(QCoreApplication.translate("Dialog", u"Bis wann soll der Apparat verl\u00e4ngert werden?", None))
self.rad_sommer.setText(QCoreApplication.translate("Dialog", u"Sommer", None))
self.rad_winter.setText(QCoreApplication.translate("Dialog", u"Winter", None))
self.sem_year.setPlaceholderText(QCoreApplication.translate("Dialog", u"2023", None))
self.checkBox.setText(QCoreApplication.translate("Dialog", u"Dauerapparat", None))
# retranslateUi

View File

@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>extend_confirm</class>
<widget class="QDialog" name="extend_confirm">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>380</width>
<height>97</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="geometry">
<rect>
<x>290</x>
<y>20</y>
<width>81</width>
<height>241</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
<widget class="QTextEdit" name="textEdit">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>271</width>
<height>81</height>
</rect>
</property>
</widget>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>extend_confirm</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>extend_confirm</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@@ -0,0 +1,45 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file 'confirm_extend.ui'
##
## Created by: Qt User Interface Compiler version 6.4.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
QMetaObject, QObject, QPoint, QRect,
QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
QFont, QFontDatabase, QGradient, QIcon,
QImage, QKeySequence, QLinearGradient, QPainter,
QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QAbstractButton, QApplication, QDialog, QDialogButtonBox,
QSizePolicy, QTextEdit, QWidget)
class Ui_extend_confirm(object):
def setupUi(self, extend_confirm):
if not extend_confirm.objectName():
extend_confirm.setObjectName(u"extend_confirm")
extend_confirm.resize(380, 97)
self.buttonBox = QDialogButtonBox(extend_confirm)
self.buttonBox.setObjectName(u"buttonBox")
self.buttonBox.setGeometry(QRect(290, 20, 81, 241))
self.buttonBox.setOrientation(Qt.Vertical)
self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel|QDialogButtonBox.Ok)
self.textEdit = QTextEdit(extend_confirm)
self.textEdit.setObjectName(u"textEdit")
self.textEdit.setGeometry(QRect(10, 10, 271, 81))
self.retranslateUi(extend_confirm)
self.buttonBox.accepted.connect(extend_confirm.accept)
self.buttonBox.rejected.connect(extend_confirm.reject)
QMetaObject.connectSlotsByName(extend_confirm)
# setupUi
def retranslateUi(self, extend_confirm):
extend_confirm.setWindowTitle(QCoreApplication.translate("extend_confirm", u"Dialog", None))
# retranslateUi

View File

@@ -0,0 +1,216 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>448</width>
<height>572</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="geometry">
<rect>
<x>260</x>
<y>530</y>
<width>161</width>
<height>32</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
<widget class="QWidget" name="gridLayoutWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>441</width>
<height>531</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
</property>
<item row="10" column="1">
<widget class="QLabel" name="label_10">
<property name="text">
<string>Seiten</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label">
<property name="text">
<string>Titel</string>
</property>
</widget>
</item>
<item row="9" column="1">
<widget class="QLabel" name="label_9">
<property name="text">
<string>Jahr</string>
</property>
</widget>
</item>
<item row="8" column="1">
<widget class="QLabel" name="label_8">
<property name="text">
<string>Sprache</string>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QLabel" name="label_12">
<property name="text">
<string>Link</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QLineEdit" name="line_edition"/>
</item>
<item row="2" column="1">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Auflage</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Autor</string>
</property>
</widget>
</item>
<item row="6" column="2">
<widget class="QLineEdit" name="line_link">
<property name="cursor">
<cursorShape>ArrowCursor</cursorShape>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Herausgeber</string>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QLabel" name="label_7">
<property name="text">
<string>ISBN(s)</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLabel" name="label_6">
<property name="text">
<string>PPN</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Signatur</string>
</property>
</widget>
</item>
<item row="8" column="0">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>5</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="2">
<widget class="QLineEdit" name="line_title"/>
</item>
<item row="1" column="2">
<widget class="QLineEdit" name="line_signature"/>
</item>
<item row="3" column="2">
<widget class="QLineEdit" name="line_author"/>
</item>
<item row="8" column="2">
<widget class="QLineEdit" name="line_lang"/>
</item>
<item row="5" column="2">
<widget class="QLineEdit" name="line_ppn"/>
</item>
<item row="7" column="2">
<widget class="QLineEdit" name="line_isbn"/>
</item>
<item row="9" column="2">
<widget class="QLineEdit" name="line_year"/>
</item>
<item row="10" column="2">
<widget class="QLineEdit" name="line_pages"/>
</item>
<item row="4" column="2">
<widget class="QLineEdit" name="line_publisher"/>
</item>
</layout>
</widget>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>Dialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>Dialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

51
src/ui/dialogs/ext_app.py Normal file
View File

@@ -0,0 +1,51 @@
# Form implementation generated from reading ui file 'ui/dialogs/extend_apparat.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
class Ui_Frame(object):
def setupUi(self, Frame):
Frame.setObjectName("Frame")
Frame.resize(317, 126)
self.label = QtWidgets.QLabel(Frame)
self.label.setGeometry(QtCore.QRect(60, 20, 231, 16))
self.label.setObjectName("label")
self.buttonBox = QtWidgets.QDialogButtonBox(Frame)
self.buttonBox.setGeometry(QtCore.QRect(90, 90, 156, 23))
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok)
self.buttonBox.setObjectName("buttonBox")
self.sem_winter = QtWidgets.QRadioButton(Frame)
self.sem_winter.setGeometry(QtCore.QRect(60, 40, 82, 17))
self.sem_winter.setObjectName("sem_winter")
self.sem_sommer = QtWidgets.QRadioButton(Frame)
self.sem_sommer.setGeometry(QtCore.QRect(60, 60, 82, 17))
self.sem_sommer.setObjectName("sem_sommer")
self.sem_year = QtWidgets.QLineEdit(Frame)
self.sem_year.setGeometry(QtCore.QRect(160, 50, 113, 20))
self.sem_year.setObjectName("sem_year")
self.retranslateUi(Frame)
QtCore.QMetaObject.connectSlotsByName(Frame)
def retranslateUi(self, Frame):
_translate = QtCore.QCoreApplication.translate
Frame.setWindowTitle(_translate("Frame", "Frame"))
self.label.setText(_translate("Frame", "Bis wann soll der Apparat verlängert werden?"))
self.sem_winter.setText(_translate("Frame", "Winter"))
self.sem_sommer.setText(_translate("Frame", "Sommer"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Frame = QtWidgets.QFrame()
ui = Ui_Frame()
ui.setupUi(Frame)
Frame.show()
sys.exit(app.exec())

View File

@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Frame</class>
<widget class="QFrame" name="Frame">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>317</width>
<height>126</height>
</rect>
</property>
<property name="windowTitle">
<string>Frame</string>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>60</x>
<y>20</y>
<width>231</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>Bis wann soll der Apparat verlängert werden?</string>
</property>
</widget>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="geometry">
<rect>
<x>90</x>
<y>90</y>
<width>156</width>
<height>23</height>
</rect>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
<widget class="QRadioButton" name="sem_winter">
<property name="geometry">
<rect>
<x>60</x>
<y>40</y>
<width>82</width>
<height>17</height>
</rect>
</property>
<property name="text">
<string>Winter</string>
</property>
</widget>
<widget class="QRadioButton" name="sem_sommer">
<property name="geometry">
<rect>
<x>60</x>
<y>60</y>
<width>82</width>
<height>17</height>
</rect>
</property>
<property name="text">
<string>Sommer</string>
</property>
</widget>
<widget class="QLineEdit" name="sem_year">
<property name="geometry">
<rect>
<x>160</x>
<y>50</y>
<width>113</width>
<height>20</height>
</rect>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,129 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>402</width>
<height>301</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QProgressBar" name="progressBar">
<property name="geometry">
<rect>
<x>10</x>
<y>60</y>
<width>381</width>
<height>23</height>
</rect>
</property>
<property name="value">
<number>24</number>
</property>
</widget>
<widget class="QFrame" name="frame">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>381</width>
<height>41</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QWidget" name="horizontalLayoutWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>381</width>
<height>41</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Es wurden</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="count">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>0</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>Signaturen gefunden.</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
<widget class="QFrame" name="frame_2">
<property name="geometry">
<rect>
<x>10</x>
<y>100</y>
<width>381</width>
<height>201</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QListWidget" name="listWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>381</width>
<height>191</height>
</rect>
</property>
</widget>
</widget>
</widget>
<resources/>
<connections/>
</ui>

120
src/ui/dialogs/login.ui Normal file
View File

@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>218</width>
<height>190</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="geometry">
<rect>
<x>30</x>
<y>140</y>
<width>161</width>
<height>32</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>20</x>
<y>40</y>
<width>71</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>Username</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit">
<property name="geometry">
<rect>
<x>80</x>
<y>40</y>
<width>113</width>
<height>21</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>20</x>
<y>80</y>
<width>71</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>Password</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit_2">
<property name="geometry">
<rect>
<x>80</x>
<y>80</y>
<width>113</width>
<height>21</height>
</rect>
</property>
<property name="inputMethodHints">
<set>Qt::ImhSensitiveData</set>
</property>
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>Dialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>Dialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

69
src/ui/dialogs/mail.py Normal file
View File

@@ -0,0 +1,69 @@
import subprocess
import tempfile
from PyQt6 import QtCore, QtGui, QtWidgets
from src.ui.dialogs.mail_preview import Ui_Dialog
class Mail_Dialog(QtWidgets.QDialog, Ui_Dialog):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.appid = ""
self.mail_data = ""
self.data = None
self.buttonBox.accepted.connect(self.save_mail)
def set_data(self, data: dict):
self.prof_name.setText(data["prof_name"])
self.mail_name.setText(data["mail_name"])
# assign data["general"] to self.data
self.data = data["general"]
def set_mail(self):
email_template = self.comboBox.currentText()
with open(f"mail_vorlagen/{email_template}", "r", encoding="utf-8") as f:
mail_template = f.read()
email_header = email_template.split(".eml")[0]
if "{AppNr}" in email_template:
email_header = email_template.split(".eml")[0].format(AppNr=self.appid)
self.mail_header.setText(email_header)
self.mail_data = mail_template.split("<html>")[0]
mail_html = mail_template.split("<html>")[1]
mail_html = "<html>" + mail_html
print(self.data)
Appname = self.data["Appname"]
mail_html = mail_html.format(
Profname=self.prof_name.text().split(" ")[-1], Appname=Appname
)
self.mail_body.setHtml(mail_html)
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}")
with tempfile.NamedTemporaryFile(
mode="w", delete=False, suffix=".eml", encoding="utf-8", dir="mails"
) as f:
f.write(mail)
self.mail_path = f.name
print(self.mail_path)
# open the file using thunderbird
subprocess.Popen(["thunderbird", f"{self.mail_path}"])
# delete the file
# os.remove(self.mail_path)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Dialog = QtWidgets.QDialog()
ui = Mail_Dialog()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec())

View File

@@ -0,0 +1,81 @@
# Form implementation generated from reading ui file '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.
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(676, 676)
self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
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(Dialog)
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.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, 4, 0, 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.mail_name = QtWidgets.QLineEdit(self.gridLayoutWidget)
self.mail_name.setObjectName("mail_name")
self.gridLayout.addWidget(self.mail_name, 1, 2, 1, 1)
self.mail_body = QtWidgets.QTextEdit(self.gridLayoutWidget)
self.mail_body.setObjectName("mail_body")
self.gridLayout.addWidget(self.mail_body, 4, 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.label_5 = QtWidgets.QLabel(self.gridLayoutWidget)
self.label_5.setObjectName("label_5")
self.gridLayout.addWidget(self.label_5, 0, 0, 1, 1)
# at selection change, load mail text
self.comboBox.currentIndexChanged.connect(self.set_mail)
self.retranslateUi(Dialog)
self.buttonBox.accepted.connect(Dialog.accept) # type: ignore
self.buttonBox.rejected.connect(Dialog.reject) # type: ignore
# if the dialog is accepted, save the mail and send it
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.label_3.setText(_translate("Dialog", "Mail"))
self.label_2.setText(_translate("Dialog", "Prof"))
self.label_4.setText(_translate("Dialog", "Betreff"))
self.label.setText(_translate("Dialog", "eMail"))
self.label_5.setText(_translate("Dialog", "Art"))

View File

@@ -0,0 +1,133 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>676</width>
<height>676</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="geometry">
<rect>
<x>310</x>
<y>630</y>
<width>341</width>
<height>32</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
<widget class="QWidget" name="gridLayoutWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>661</width>
<height>621</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="2" column="2">
<widget class="QLineEdit" name="prof_name"/>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Mail</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Prof</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Betreff</string>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QLineEdit" name="mail_header"/>
</item>
<item row="1" column="2">
<widget class="QLineEdit" name="mail_name"/>
</item>
<item row="4" column="2">
<widget class="QTextEdit" name="mail_body"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>eMail</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QComboBox" name="comboBox"/>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Art</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>Dialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>Dialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@@ -0,0 +1,557 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>637</width>
<height>491</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>20</x>
<y>10</y>
<width>47</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>Signatur</string>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>20</x>
<y>40</y>
<width>47</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>Modus</string>
</property>
</widget>
<widget class="QComboBox" name="comboBox">
<property name="geometry">
<rect>
<x>70</x>
<y>40</y>
<width>69</width>
<height>22</height>
</rect>
</property>
<item>
<property name="text">
<string>ARRAY</string>
</property>
</item>
<item>
<property name="text">
<string>BibTeX</string>
</property>
</item>
<item>
<property name="text">
<string>COinS</string>
</property>
</item>
<item>
<property name="text">
<string>RIS</string>
</property>
</item>
</widget>
<widget class="QLineEdit" name="lineEdit">
<property name="geometry">
<rect>
<x>70</x>
<y>10</y>
<width>113</width>
<height>20</height>
</rect>
</property>
<property name="placeholderText">
<string>Signatur / ISBN</string>
</property>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>20</x>
<y>70</y>
<width>47</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>Queue</string>
</property>
</widget>
<widget class="QWidget" name="widget" native="true">
<property name="geometry">
<rect>
<x>330</x>
<y>90</y>
<width>301</width>
<height>341</height>
</rect>
</property>
<widget class="QTreeWidget" name="treeWidget">
<property name="enabled">
<bool>true</bool>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>301</width>
<height>341</height>
</rect>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="lineWidth">
<number>0</number>
</property>
<property name="midLineWidth">
<number>0</number>
</property>
<property name="verticalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="sizeAdjustPolicy">
<enum>QAbstractScrollArea::AdjustToContents</enum>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="selectionMode">
<enum>QAbstractItemView::NoSelection</enum>
</property>
<property name="textElideMode">
<enum>Qt::ElideMiddle</enum>
</property>
<property name="uniformRowHeights">
<bool>true</bool>
</property>
<property name="itemsExpandable">
<bool>false</bool>
</property>
<property name="expandsOnDoubleClick">
<bool>false</bool>
</property>
<attribute name="headerCascadingSectionResizes">
<bool>false</bool>
</attribute>
<attribute name="headerDefaultSectionSize">
<number>96</number>
</attribute>
<attribute name="headerHighlightSections">
<bool>false</bool>
</attribute>
<attribute name="headerMinimumSectionSize">
<number>20</number>
</attribute>
<attribute name="headerStretchLastSection">
<bool>false</bool>
</attribute>
<column>
<property name="text">
<string>Datensatz\Metadata</string>
</property>
<property name="font">
<font>
<pointsize>7</pointsize>
</font>
</property>
</column>
<column>
<property name="text">
<string>Array</string>
</property>
</column>
<column>
<property name="text">
<string>BibTeX</string>
</property>
</column>
<column>
<property name="text">
<string>COinS</string>
</property>
</column>
<column>
<property name="text">
<string>RIS</string>
</property>
</column>
<item>
<property name="text">
<string>PPN</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>0</string>
</property>
<property name="background">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>255</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
</item>
<item>
<property name="text">
<string>Signatur</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="background">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>0</red>
<green>255</green>
<blue>0</blue>
</color>
</brush>
</property>
<property name="text">
<string>0</string>
</property>
<property name="text">
<string>1</string>
</property>
</item>
<item>
<property name="text">
<string>Autor</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
</item>
<item>
<property name="text">
<string>ISBN</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
</item>
<item>
<property name="text">
<string>Jahr</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
</item>
<item>
<property name="text">
<string>Auflage</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
</item>
<item>
<property name="text">
<string>Sprache</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>0</string>
</property>
<property name="text">
<string>1</string>
</property>
</item>
<item>
<property name="text">
<string>Herausgeber</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
</item>
<item>
<property name="text">
<string>Seiten</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
</item>
<item>
<property name="text">
<string>Titel</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
</item>
<item>
<property name="text">
<string>Link</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>0</string>
</property>
<property name="text">
<string>1</string>
</property>
<property name="text">
<string>1</string>
</property>
</item>
</widget>
</widget>
<widget class="QListWidget" name="listWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>90</y>
<width>281</width>
<height>341</height>
</rect>
</property>
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
</widget>
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
<x>330</x>
<y>50</y>
<width>181</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>Belegbare Felder per Anbieter</string>
</property>
</widget>
<widget class="QLabel" name="label_5">
<property name="geometry">
<rect>
<x>200</x>
<y>70</y>
<width>41</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>Anzahl:</string>
</property>
</widget>
<widget class="QLabel" name="list_amount">
<property name="geometry">
<rect>
<x>240</x>
<y>70</y>
<width>47</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>0</string>
</property>
</widget>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="geometry">
<rect>
<x>10</x>
<y>450</y>
<width>156</width>
<height>23</height>
</rect>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
<property name="centerButtons">
<bool>false</bool>
</property>
</widget>
<widget class="QPushButton" name="l_add">
<property name="geometry">
<rect>
<x>190</x>
<y>10</y>
<width>21</width>
<height>23</height>
</rect>
</property>
<property name="focusPolicy">
<enum>Qt::ClickFocus</enum>
</property>
<property name="toolTip">
<string>Clicken oder Shift Enter drücken um den Eintrag hinzuzufügen</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../resources.qrc">
<normaloff>:/information/icons/information.png</normaloff>:/information/icons/information.png</iconset>
</property>
<property name="shortcut">
<string>Shift+Return</string>
</property>
<property name="autoDefault">
<bool>false</bool>
</property>
</widget>
</widget>
<tabstops>
<tabstop>lineEdit</tabstop>
<tabstop>comboBox</tabstop>
<tabstop>listWidget</tabstop>
<tabstop>treeWidget</tabstop>
</tabstops>
<resources>
<include location="../resources.qrc"/>
</resources>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>Dialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>87</x>
<y>461</y>
</hint>
<hint type="destinationlabel">
<x>318</x>
<y>245</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>Dialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>87</x>
<y>461</y>
</hint>
<hint type="destinationlabel">
<x>318</x>
<y>245</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
<context>
<name>Dialog</name>
<message>
<location filename="medianadder_ui.py" line="60"/>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="medianadder_ui.py" line="61"/>
<source>Signatur</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="medianadder_ui.py" line="62"/>
<source>Modus</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="medianadder_ui.py" line="63"/>
<source>ARRAY</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="medianadder_ui.py" line="64"/>
<source>BibTeX</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="medianadder_ui.py" line="65"/>
<source>COinS</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="medianadder_ui.py" line="66"/>
<source>RIS</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="medianadder_ui.py" line="68"/>
<source>Queue</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View File

@@ -0,0 +1,82 @@
from PyQt6 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)

View File

@@ -0,0 +1,132 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>448</width>
<height>165</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Das eingegebene Fach wurde nicht in der Datenbank gefunden. Soll es angelegt werden?</string>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="1">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0">
<widget class="QCheckBox" name="checkBox">
<property name="text">
<string>Ja</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<widget class="QFrame" name="frame">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>0</x>
<y>10</y>
<width>141</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>Name des Neuen Faches:</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit">
<property name="geometry">
<rect>
<x>0</x>
<y>30</y>
<width>141</width>
<height>20</height>
</rect>
</property>
</widget>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>Dialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>Dialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@@ -0,0 +1,59 @@
# Form implementation generated from reading ui file '/home/alexander/GitHub/Semesterapparate/ui/dialogs/new_subject.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.
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(448, 165)
self.verticalLayout_2 = QtWidgets.QVBoxLayout(Dialog)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.label = QtWidgets.QLabel(parent=Dialog)
self.label.setObjectName("label")
self.verticalLayout.addWidget(self.label)
self.gridLayout = QtWidgets.QGridLayout()
self.gridLayout.setObjectName("gridLayout")
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Minimum)
self.gridLayout.addItem(spacerItem, 0, 1, 1, 1)
self.checkBox = QtWidgets.QCheckBox(parent=Dialog)
self.checkBox.setObjectName("checkBox")
self.gridLayout.addWidget(self.checkBox, 0, 0, 1, 1)
self.verticalLayout.addLayout(self.gridLayout)
self.verticalLayout_2.addLayout(self.verticalLayout)
self.frame = QtWidgets.QFrame(parent=Dialog)
self.frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
self.frame.setFrameShadow(QtWidgets.QFrame.Shadow.Raised)
self.frame.setObjectName("frame")
self.label_2 = QtWidgets.QLabel(parent=self.frame)
self.label_2.setGeometry(QtCore.QRect(0, 10, 141, 16))
self.label_2.setObjectName("label_2")
self.lineEdit = QtWidgets.QLineEdit(parent=self.frame)
self.lineEdit.setGeometry(QtCore.QRect(0, 30, 141, 20))
self.lineEdit.setObjectName("lineEdit")
self.verticalLayout_2.addWidget(self.frame)
self.buttonBox = QtWidgets.QDialogButtonBox(parent=Dialog)
self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Cancel|QtWidgets.QDialogButtonBox.StandardButton.Ok)
self.buttonBox.setObjectName("buttonBox")
self.verticalLayout_2.addWidget(self.buttonBox)
self.retranslateUi(Dialog)
self.buttonBox.accepted.connect(Dialog.accept) # type: ignore
self.buttonBox.rejected.connect(Dialog.reject) # type: ignore
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.label.setText(_translate("Dialog", "Das eingegebene Fach wurde nicht in der Datenbank gefunden. Soll es angelegt werden?"))
self.checkBox.setText(_translate("Dialog", "Ja"))
self.label_2.setText(_translate("Dialog", "Name des Neuen Faches:"))

View File

@@ -0,0 +1,163 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>402</width>
<height>316</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QFrame" name="frame">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>381</width>
<height>41</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QWidget" name="horizontalLayoutWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>381</width>
<height>41</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Es wurden</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="count">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>0</string>
</property>
<property name="textFormat">
<enum>Qt::PlainText</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>Signaturen gefunden.</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
<widget class="QFrame" name="frame_2">
<property name="geometry">
<rect>
<x>10</x>
<y>80</y>
<width>381</width>
<height>201</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QWidget" name="horizontalLayoutWidget_2">
<property name="geometry">
<rect>
<x>0</x>
<y>10</y>
<width>381</width>
<height>191</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QListWidget" name="listWidget"/>
</item>
<item>
<widget class="QListWidget" name="listWidget_done"/>
</item>
</layout>
</widget>
</widget>
<widget class="QProgressBar" name="progressBar">
<property name="geometry">
<rect>
<x>10</x>
<y>60</y>
<width>381</width>
<height>23</height>
</rect>
</property>
<property name="value">
<number>24</number>
</property>
</widget>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="geometry">
<rect>
<x>230</x>
<y>290</y>
<width>156</width>
<height>23</height>
</rect>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
<widget class="QToolButton" name="toolButton">
<property name="geometry">
<rect>
<x>20</x>
<y>290</y>
<width>25</width>
<height>19</height>
</rect>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,81 @@
# Form implementation generated from reading ui file '/home/alexander/GitHub/Semesterapparate/ui/dialogs/parsed_titles.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.
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", "..."))

View File

@@ -0,0 +1,48 @@
# Form implementation generated from reading ui file 'ui\dialogs\confirm_extend.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
class Ui_extend_confirm(object):
def setupUi(self, extend_confirm):
extend_confirm.setObjectName("extend_confirm")
extend_confirm.resize(380, 97)
# icon=QtGui.QIcon(f"ui/icons/{icon}.png")
# extend_confirm.setWindowIcon(icon)
self.buttonBox = QtWidgets.QDialogButtonBox(extend_confirm)
self.buttonBox.setGeometry(QtCore.QRect(290, 20, 81, 241))
self.buttonBox.setOrientation(QtCore.Qt.Orientation.Vertical)
self.buttonBox.setStandardButtons(
QtWidgets.QDialogButtonBox.StandardButton.Cancel
| QtWidgets.QDialogButtonBox.StandardButton.Ok
)
self.buttonBox.setObjectName("buttonBox")
self.textEdit = QtWidgets.QTextEdit(extend_confirm)
self.textEdit.setGeometry(QtCore.QRect(10, 10, 271, 81))
self.textEdit.setObjectName("textEdit")
self.retranslateUi(extend_confirm)
self.buttonBox.accepted.connect(extend_confirm.accept) # type: ignore
self.buttonBox.rejected.connect(extend_confirm.reject) # type: ignore
QtCore.QMetaObject.connectSlotsByName(extend_confirm)
def retranslateUi(self, extend_confirm):
_translate = QtCore.QCoreApplication.translate
extend_confirm.setWindowTitle(_translate("extend_confirm", "Dialog"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
extend_confirm = QtWidgets.QDialog()
ui = Ui_extend_confirm()
ui.setupUi(extend_confirm)
extend_confirm.show()
sys.exit(app.exec())

114
src/ui/dialogs/reminder.ui Normal file
View File

@@ -0,0 +1,114 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>369</width>
<height>308</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="geometry">
<rect>
<x>190</x>
<y>270</y>
<width>161</width>
<height>32</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
<widget class="QTextEdit" name="message_box">
<property name="geometry">
<rect>
<x>10</x>
<y>60</y>
<width>341</width>
<height>201</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>10</x>
<y>30</y>
<width>61</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>Nachricht:</string>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>150</x>
<y>30</y>
<width>81</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>Erinnerung am:</string>
</property>
</widget>
<widget class="QDateEdit" name="dateEdit">
<property name="geometry">
<rect>
<x>240</x>
<y>30</y>
<width>110</width>
<height>22</height>
</rect>
</property>
</widget>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>Dialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>Dialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

View File

@@ -0,0 +1,48 @@
from omegaconf import OmegaConf
from PyQt6 import QtWidgets
from src.ui.dialogs.Ui_settings import Ui_Dialog as _settings
config = OmegaConf.load("config.yaml")
class Settings(_settings):
def __init__(self):
super().__init__()
self.setupUi(self)
self.retranslateUi(self)
self.load_config()
def load_config(self):
self.db_name.setText(config.database.name)
self.db_path.setText(config.database.path)
self.save_path.setText(config.save_path)
self.os_apps.setChecked(config.default_apps)
def select_db(self):
# open file dialog, limit to .db files
file_dialog = QtWidgets.QFileDialog()
file_dialog.setFileMode(QtWidgets.QFileDialog.FileMode.AnyFile)
file_dialog.setNameFilter("Datenbank (*.db)")
file_dialog.setViewMode(QtWidgets.QFileDialog.ViewMode.Detail)
if file_dialog.exec():
self.db_name.setText(file_dialog.selectedFiles()[0].split("/")[-1])
self.db_path.setText(
file_dialog.selectedFiles()[0].split(self.db_name.text())[0]
)
def set_save_path(self):
# open file dialog, limit to .db files
file_dialog = QtWidgets.QFileDialog()
file_dialog.setFileMode(QtWidgets.QFileDialog.FileMode.Directory)
file_dialog.setViewMode(QtWidgets.QFileDialog.ViewMode.Detail)
if file_dialog.exec():
self.save_path.setText(file_dialog.selectedFiles()[0])
def return_data(self):
config.database.name = self.db_name.text()
config.database.path = self.db_path.text()
config.save_path = self.save_path.text()
config.default_apps = self.os_apps.isChecked()
return config

308
src/ui/dialogs/settings.ui Normal file
View File

@@ -0,0 +1,308 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>743</width>
<height>576</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="geometry">
<rect>
<x>120</x>
<y>540</y>
<width>621</width>
<height>32</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
<widget class="QFrame" name="frame">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>741</width>
<height>541</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>400</x>
<y>30</y>
<width>161</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>Dateispezifische Einstellungen</string>
</property>
</widget>
<widget class="Line" name="line">
<property name="geometry">
<rect>
<x>370</x>
<y>0</y>
<width>20</width>
<height>541</height>
</rect>
</property>
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>1</number>
</property>
<property name="midLineWidth">
<number>0</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
<widget class="QTextBrowser" name="textBrowser">
<property name="geometry">
<rect>
<x>400</x>
<y>50</y>
<width>311</width>
<height>51</height>
</rect>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="inputMethodHints">
<set>Qt::ImhNone</set>
</property>
<property name="html">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Hier können Einstellungen für bestehende Dateiformate geändert, oder neue Dateiformate eingefügt werden.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>161</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>Allgemeine Einstellungen</string>
</property>
</widget>
<widget class="QCheckBox" name="os_apps">
<property name="geometry">
<rect>
<x>410</x>
<y>110</y>
<width>161</width>
<height>17</height>
</rect>
</property>
<property name="toolTip">
<string>Verwendet im Betriebssystem festgelegte Anwendungen um Dateien zu öffnen</string>
</property>
<property name="text">
<string>Standard-Apps verwenden</string>
</property>
</widget>
<widget class="QWidget" name="formLayoutWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>50</y>
<width>361</width>
<height>491</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_3">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Name der Datenbank, welche verwendet werden soll. &lt;span style=&quot; font-weight:600;&quot;&gt;Muss&lt;/span&gt; auf .db enden&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Datenbankname</string>
</property>
<property name="buddy">
<cstring>db_name</cstring>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_5">
<property name="toolTip">
<string>Pfad, an dem heruntergeladene Dateien gespeichert werden sollen</string>
</property>
<property name="text">
<string>Speicherpfad</string>
</property>
<property name="buddy">
<cstring>save_path</cstring>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="db_path">
<property name="enabled">
<bool>false</bool>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="save_path"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Datenbankpfad</string>
</property>
<property name="buddy">
<cstring>db_path</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="db_name">
<property name="text">
<string>sap.db</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QToolButton" name="tb_set_save_path">
<property name="text">
<string>...</string>
</property>
</widget>
</item>
<item row="3" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="2">
<widget class="QToolButton" name="tb_select_db">
<property name="text">
<string>...</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QScrollArea" name="scrollArea">
<property name="geometry">
<rect>
<x>400</x>
<y>130</y>
<width>331</width>
<height>381</height>
</rect>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>329</width>
<height>379</height>
</rect>
</property>
<widget class="QTreeWidget" name="treeWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>331</width>
<height>381</height>
</rect>
</property>
<property name="contextMenuPolicy">
<enum>Qt::ActionsContextMenu</enum>
</property>
</widget>
</widget>
</widget>
</widget>
</widget>
<tabstops>
<tabstop>db_name</tabstop>
<tabstop>db_path</tabstop>
<tabstop>save_path</tabstop>
<tabstop>os_apps</tabstop>
<tabstop>textBrowser</tabstop>
</tabstops>
<resources>
<include location="../resources.qrc"/>
</resources>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>Dialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>358</x>
<y>540</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>Dialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>426</x>
<y>540</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

BIN
src/ui/icons/critical.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 B

BIN
src/ui/icons/logo_SAP.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

BIN
src/ui/icons/logo_SAP.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 KiB

BIN
src/ui/icons/question.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

BIN
src/ui/icons/warning.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 B

360
src/ui/mainwindow.py Normal file
View File

@@ -0,0 +1,360 @@
# Form implementation generated from reading ui file 'untitled.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
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1280, 720)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
self.centralwidget = QtWidgets.QWidget(MainWindow)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.centralwidget.sizePolicy().hasHeightForWidth())
self.centralwidget.setSizePolicy(sizePolicy)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
self.verticalLayoutWidget.setGeometry(QtCore.QRect(0, 0, 1271, 671))
self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setObjectName("verticalLayout")
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.gridLayout = QtWidgets.QGridLayout()
self.gridLayout.setObjectName("gridLayout")
self.tabWidget = QtWidgets.QTabWidget(self.verticalLayoutWidget)
self.tabWidget.setObjectName("tabWidget")
self.tab = QtWidgets.QWidget()
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.tab.sizePolicy().hasHeightForWidth())
self.tab.setSizePolicy(sizePolicy)
self.tab.setObjectName("tab")
self.horizontalLayoutWidget_2 = QtWidgets.QWidget(self.tab)
self.horizontalLayoutWidget_2.setGeometry(QtCore.QRect(0, 0, 1261, 161))
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.formLayout = QtWidgets.QFormLayout()
self.formLayout.setObjectName("formLayout")
self.verticalLayout_2 = QtWidgets.QVBoxLayout()
self.verticalLayout_2.setObjectName("verticalLayout_2")
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
self.verticalLayout_2.addItem(spacerItem)
self.load_app = QtWidgets.QPushButton(self.horizontalLayoutWidget_2)
self.load_app.setObjectName("load_app")
self.verticalLayout_2.addWidget(self.load_app)
self.create_new_app = QtWidgets.QPushButton(self.horizontalLayoutWidget_2)
self.create_new_app.setObjectName("create_new_app")
self.verticalLayout_2.addWidget(self.create_new_app)
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
self.verticalLayout_2.addItem(spacerItem1)
self.formLayout.setLayout(0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.verticalLayout_2)
self.tableWidget_apparate = QtWidgets.QTableWidget(self.horizontalLayoutWidget_2)
self.tableWidget_apparate.setObjectName("tableWidget_apparate")
self.tableWidget_apparate.setColumnCount(4)
self.tableWidget_apparate.setRowCount(0)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_apparate.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_apparate.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_apparate.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_apparate.setHorizontalHeaderItem(3, item)
self.formLayout.setWidget(0, QtWidgets.QFormLayout.ItemRole.FieldRole, self.tableWidget_apparate)
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.formLayout.setLayout(2, QtWidgets.QFormLayout.ItemRole.LabelRole, self.horizontalLayout_3)
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
self.formLayout.setLayout(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.horizontalLayout_4)
self.horizontalLayout_2.addLayout(self.formLayout)
self.line = QtWidgets.QFrame(self.tab)
self.line.setGeometry(QtCore.QRect(0, 160, 1261, 21))
self.line.setFrameShape(QtWidgets.QFrame.Shape.HLine)
self.line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
self.line.setObjectName("line")
self.gridLayoutWidget_2 = QtWidgets.QWidget(self.tab)
self.gridLayoutWidget_2.setGeometry(QtCore.QRect(0, 180, 1261, 461))
self.gridLayoutWidget_2.setObjectName("gridLayoutWidget_2")
self.gridLayout_2 = QtWidgets.QGridLayout(self.gridLayoutWidget_2)
self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
self.gridLayout_2.setObjectName("gridLayout_2")
self.tableWidget_apparat_media = QtWidgets.QTableWidget(self.gridLayoutWidget_2)
self.tableWidget_apparat_media.setObjectName("tableWidget_apparat_media")
self.tableWidget_apparat_media.setColumnCount(4)
self.tableWidget_apparat_media.setRowCount(0)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_apparat_media.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_apparat_media.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_apparat_media.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_apparat_media.setHorizontalHeaderItem(3, item)
self.gridLayout_2.addWidget(self.tableWidget_apparat_media, 3, 0, 1, 1)
self.label = QtWidgets.QLabel(self.gridLayoutWidget_2)
font = QtGui.QFont()
font.setPointSize(11)
font.setBold(True)
font.setWeight(75)
self.label.setFont(font)
self.label.setObjectName("label")
self.gridLayout_2.addWidget(self.label, 1, 0, 1, 1)
self.app_group_box = QtWidgets.QGroupBox(self.gridLayoutWidget_2)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.app_group_box.sizePolicy().hasHeightForWidth())
self.app_group_box.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.app_group_box.setFont(font)
self.app_group_box.setAlignment(QtCore.Qt.AlignmentFlag.AlignLeading|QtCore.Qt.AlignmentFlag.AlignLeft|QtCore.Qt.AlignmentFlag.AlignVCenter)
self.app_group_box.setCheckable(False)
self.app_group_box.setObjectName("app_group_box")
self.tableWidget = QtWidgets.QTableWidget(self.app_group_box)
self.tableWidget.setGeometry(QtCore.QRect(820, 20, 256, 192))
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(2)
self.tableWidget.setRowCount(0)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(1, item)
self.frame = QtWidgets.QFrame(self.app_group_box)
self.frame.setGeometry(QtCore.QRect(10, 30, 731, 151))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth())
self.frame.setSizePolicy(sizePolicy)
self.frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
self.frame.setFrameShadow(QtWidgets.QFrame.Shadow.Raised)
self.frame.setObjectName("frame")
self.drpdwn_prof_title = QtWidgets.QComboBox(self.frame)
self.drpdwn_prof_title.setGeometry(QtCore.QRect(110, 50, 69, 22))
self.drpdwn_prof_title.setObjectName("drpdwn_prof_title")
self.label_5 = QtWidgets.QLabel(self.frame)
self.label_5.setGeometry(QtCore.QRect(250, 20, 91, 21))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_5.setFont(font)
self.label_5.setObjectName("label_5")
self.lineEdit = QtWidgets.QLineEdit(self.frame)
self.lineEdit.setGeometry(QtCore.QRect(110, 80, 121, 20))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.lineEdit.setFont(font)
self.lineEdit.setObjectName("lineEdit")
self.sem_winter = QtWidgets.QRadioButton(self.frame)
self.sem_winter.setGeometry(QtCore.QRect(340, 50, 82, 17))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.sem_winter.setFont(font)
self.sem_winter.setObjectName("sem_winter")
self.label_4 = QtWidgets.QLabel(self.frame)
self.label_4.setGeometry(QtCore.QRect(10, 80, 71, 21))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_4.setFont(font)
self.label_4.setObjectName("label_4")
self.drpdwn_app_nr = QtWidgets.QComboBox(self.frame)
self.drpdwn_app_nr.setGeometry(QtCore.QRect(110, 20, 69, 22))
self.drpdwn_app_nr.setObjectName("drpdwn_app_nr")
self.app_name = QtWidgets.QLineEdit(self.frame)
self.app_name.setGeometry(QtCore.QRect(340, 20, 113, 20))
self.app_name.setObjectName("app_name")
self.sem_sommer = QtWidgets.QRadioButton(self.frame)
self.sem_sommer.setGeometry(QtCore.QRect(340, 70, 82, 17))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.sem_sommer.setFont(font)
self.sem_sommer.setObjectName("sem_sommer")
self.label_3 = QtWidgets.QLabel(self.frame)
self.label_3.setGeometry(QtCore.QRect(10, 50, 61, 20))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_3.setFont(font)
self.label_3.setObjectName("label_3")
self.label_6 = QtWidgets.QLabel(self.frame)
self.label_6.setGeometry(QtCore.QRect(270, 60, 51, 21))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_6.setFont(font)
self.label_6.setObjectName("label_6")
self.sem_year = QtWidgets.QLineEdit(self.frame)
self.sem_year.setGeometry(QtCore.QRect(410, 60, 113, 20))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.sem_year.setFont(font)
self.sem_year.setObjectName("sem_year")
self.label_2 = QtWidgets.QLabel(self.frame)
self.label_2.setGeometry(QtCore.QRect(10, 20, 101, 21))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.btn_apparat_save = QtWidgets.QPushButton(self.frame)
self.btn_apparat_save.setGeometry(QtCore.QRect(260, 120, 75, 23))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.btn_apparat_save.setFont(font)
self.btn_apparat_save.setObjectName("btn_apparat_save")
self.btn_apparat_apply = QtWidgets.QPushButton(self.frame)
self.btn_apparat_apply.setGeometry(QtCore.QRect(350, 120, 75, 23))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.btn_apparat_apply.setFont(font)
self.btn_apparat_apply.setObjectName("btn_apparat_apply")
self.checkBox = QtWidgets.QCheckBox(self.frame)
self.checkBox.setGeometry(QtCore.QRect(340, 90, 101, 17))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.checkBox.setFont(font)
self.checkBox.setObjectName("checkBox")
self.btn_add_document = QtWidgets.QPushButton(self.app_group_box)
self.btn_add_document.setGeometry(QtCore.QRect(1100, 40, 131, 25))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.btn_add_document.setFont(font)
self.btn_add_document.setObjectName("btn_add_document")
self.btn_open_document = QtWidgets.QPushButton(self.app_group_box)
self.btn_open_document.setGeometry(QtCore.QRect(1100, 80, 131, 25))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.btn_open_document.setFont(font)
self.btn_open_document.setObjectName("btn_open_document")
self.toolButton = QtWidgets.QToolButton(self.app_group_box)
self.toolButton.setGeometry(QtCore.QRect(1110, 110, 25, 19))
self.toolButton.setObjectName("toolButton")
self.gridLayout_2.addWidget(self.app_group_box, 2, 0, 1, 1)
self.tabWidget.addTab(self.tab, "")
self.tab_2 = QtWidgets.QWidget()
self.tab_2.setObjectName("tab_2")
self.tabWidget.addTab(self.tab_2, "")
self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 1)
self.horizontalLayout.addLayout(self.gridLayout)
self.verticalLayout.addLayout(self.horizontalLayout)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 1280, 21))
self.menubar.setObjectName("menubar")
self.menuDatei = QtWidgets.QMenu(self.menubar)
self.menuDatei.setObjectName("menuDatei")
self.menuEinstellungen = QtWidgets.QMenu(self.menubar)
self.menuEinstellungen.setObjectName("menuEinstellungen")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.menubar.addAction(self.menuDatei.menuAction())
self.menubar.addAction(self.menuEinstellungen.menuAction())
self.retranslateUi(MainWindow)
self.tabWidget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.load_app.setToolTip(_translate("MainWindow", "Load the Semesterapparate from the database"))
self.load_app.setText(_translate("MainWindow", "App. Laden"))
self.create_new_app.setText(_translate("MainWindow", "neu. App anlegen"))
item = self.tableWidget_apparate.horizontalHeaderItem(0)
item.setText(_translate("MainWindow", "AppNr"))
item = self.tableWidget_apparate.horizontalHeaderItem(1)
item.setText(_translate("MainWindow", "App Name"))
item = self.tableWidget_apparate.horizontalHeaderItem(2)
item.setText(_translate("MainWindow", "Professor"))
item = self.tableWidget_apparate.horizontalHeaderItem(3)
item.setText(_translate("MainWindow", "Dauerapparat"))
item = self.tableWidget_apparat_media.horizontalHeaderItem(0)
item.setText(_translate("MainWindow", "Buchtitel"))
item = self.tableWidget_apparat_media.horizontalHeaderItem(1)
item.setText(_translate("MainWindow", "Autor"))
item = self.tableWidget_apparat_media.horizontalHeaderItem(2)
item.setText(_translate("MainWindow", "Auflage"))
item = self.tableWidget_apparat_media.horizontalHeaderItem(3)
item.setText(_translate("MainWindow", "Signatur"))
self.label.setText(_translate("MainWindow", "Medienliste"))
self.app_group_box.setTitle(_translate("MainWindow", "Apparatsdetails"))
item = self.tableWidget.horizontalHeaderItem(0)
item.setText(_translate("MainWindow", "Dokumentname"))
item = self.tableWidget.horizontalHeaderItem(1)
item.setText(_translate("MainWindow", "Typ"))
self.label_5.setText(_translate("MainWindow", "Apparatsname"))
self.lineEdit.setPlaceholderText(_translate("MainWindow", "Nachname, Vorname"))
self.sem_winter.setText(_translate("MainWindow", "Winter"))
self.label_4.setText(_translate("MainWindow", "Prof. Name"))
self.sem_sommer.setText(_translate("MainWindow", "Sommer"))
self.label_3.setText(_translate("MainWindow", "Prof. Titel"))
self.label_6.setText(_translate("MainWindow", "Semester"))
self.sem_year.setPlaceholderText(_translate("MainWindow", "2023"))
self.label_2.setText(_translate("MainWindow", "Apparatsnummer"))
self.btn_apparat_save.setText(_translate("MainWindow", "Speichern"))
self.btn_apparat_apply.setText(_translate("MainWindow", "Aktualisieren"))
self.checkBox.setText(_translate("MainWindow", "Dauerapparat"))
self.btn_add_document.setText(_translate("MainWindow", "Dokument hinzufügen"))
self.btn_open_document.setText(_translate("MainWindow", "Dokument öffnen"))
self.toolButton.setText(_translate("MainWindow", "..."))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Tab 1"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Tab 2"))
self.menuDatei.setTitle(_translate("MainWindow", "Datei"))
self.menuEinstellungen.setTitle(_translate("MainWindow", "Einstellungen"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec())

64
src/ui/plotdata.ui Normal file
View File

@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>640</width>
<height>480</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QGraphicsView" name="graphicsView">
<property name="geometry">
<rect>
<x>330</x>
<y>10</y>
<width>256</width>
<height>192</height>
</rect>
</property>
</widget>
<widget class="QWidget" name="widget" native="true">
<property name="geometry">
<rect>
<x>10</x>
<y>0</y>
<width>251</width>
<height>271</height>
</rect>
</property>
</widget>
<widget class="QStackedWidget" name="stackedWidget">
<property name="geometry">
<rect>
<x>300</x>
<y>220</y>
<width>291</width>
<height>201</height>
</rect>
</property>
<widget class="QWidget" name="page"/>
<widget class="QWidget" name="page_2"/>
</widget>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>640</width>
<height>21</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>

47
src/ui/plotdata_ui.py Normal file
View File

@@ -0,0 +1,47 @@
# Form implementation generated from reading ui file '/home/alexander/GitHub/Semesterapparate/ui/plotdata.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.
from PyQt6 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(640, 480)
self.centralwidget = QtWidgets.QWidget(parent=MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.graphicsView = QtWidgets.QGraphicsView(parent=self.centralwidget)
self.graphicsView.setGeometry(QtCore.QRect(330, 10, 256, 192))
self.graphicsView.setObjectName("graphicsView")
self.widget = QtWidgets.QWidget(parent=self.centralwidget)
self.widget.setGeometry(QtCore.QRect(10, 0, 251, 271))
self.widget.setObjectName("widget")
self.stackedWidget = QtWidgets.QStackedWidget(parent=self.centralwidget)
self.stackedWidget.setGeometry(QtCore.QRect(300, 220, 291, 201))
self.stackedWidget.setObjectName("stackedWidget")
self.page = QtWidgets.QWidget()
self.page.setObjectName("page")
self.stackedWidget.addWidget(self.page)
self.page_2 = QtWidgets.QWidget()
self.page_2.setObjectName("page_2")
self.stackedWidget.addWidget(self.page_2)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(parent=MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 640, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(parent=MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

14
src/ui/resources.qrc Normal file
View File

@@ -0,0 +1,14 @@
<RCC>
<qresource prefix="warn_image">
<file>icons/warning.png</file>
</qresource>
<qresource prefix="critical">
<file>icons/critical.png</file>
</qresource>
<qresource prefix="information">
<file>icons/information.png</file>
</qresource>
<qresource prefix="question">
<file>icons/question.png</file>
</qresource>
</RCC>

512
src/ui/sap.py Normal file
View File

@@ -0,0 +1,512 @@
# Form implementation generated from reading ui file 'ui/semesterapparat_ui.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
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1280, 747)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
self.centralwidget = QtWidgets.QWidget(MainWindow)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.centralwidget.sizePolicy().hasHeightForWidth())
self.centralwidget.setSizePolicy(sizePolicy)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
self.verticalLayoutWidget.setGeometry(QtCore.QRect(0, 0, 1271, 691))
self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setObjectName("verticalLayout")
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.gridLayout = QtWidgets.QGridLayout()
self.gridLayout.setObjectName("gridLayout")
self.tabWidget = QtWidgets.QTabWidget(self.verticalLayoutWidget)
self.tabWidget.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.tabWidget.setObjectName("tabWidget")
self.tab = QtWidgets.QWidget()
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.tab.sizePolicy().hasHeightForWidth())
self.tab.setSizePolicy(sizePolicy)
self.tab.setObjectName("tab")
self.horizontalLayoutWidget_2 = QtWidgets.QWidget(self.tab)
self.horizontalLayoutWidget_2.setGeometry(QtCore.QRect(0, 0, 1261, 161))
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.formLayout = QtWidgets.QFormLayout()
self.formLayout.setObjectName("formLayout")
self.verticalLayout_2 = QtWidgets.QVBoxLayout()
self.verticalLayout_2.setObjectName("verticalLayout_2")
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
self.verticalLayout_2.addItem(spacerItem)
self.load_app = QtWidgets.QPushButton(self.horizontalLayoutWidget_2)
self.load_app.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.load_app.setObjectName("load_app")
self.verticalLayout_2.addWidget(self.load_app)
self.create_new_app = QtWidgets.QPushButton(self.horizontalLayoutWidget_2)
self.create_new_app.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.create_new_app.setObjectName("create_new_app")
self.verticalLayout_2.addWidget(self.create_new_app)
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
self.verticalLayout_2.addItem(spacerItem1)
self.formLayout.setLayout(0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.verticalLayout_2)
self.tableWidget_apparate = QtWidgets.QTableWidget(self.horizontalLayoutWidget_2)
self.tableWidget_apparate.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.tableWidget_apparate.setEditTriggers(QtWidgets.QAbstractItemView.EditTrigger.NoEditTriggers)
self.tableWidget_apparate.setObjectName("tableWidget_apparate")
self.tableWidget_apparate.setColumnCount(4)
self.tableWidget_apparate.setRowCount(0)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_apparate.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_apparate.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_apparate.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_apparate.setHorizontalHeaderItem(3, item)
self.formLayout.setWidget(0, QtWidgets.QFormLayout.ItemRole.FieldRole, self.tableWidget_apparate)
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.formLayout.setLayout(2, QtWidgets.QFormLayout.ItemRole.LabelRole, self.horizontalLayout_3)
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
self.formLayout.setLayout(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.horizontalLayout_4)
self.horizontalLayout_2.addLayout(self.formLayout)
self.line = QtWidgets.QFrame(self.tab)
self.line.setGeometry(QtCore.QRect(0, 160, 1261, 21))
self.line.setFrameShape(QtWidgets.QFrame.Shape.HLine)
self.line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
self.line.setObjectName("line")
self.gridLayoutWidget_2 = QtWidgets.QWidget(self.tab)
self.gridLayoutWidget_2.setGeometry(QtCore.QRect(0, 180, 1261, 461))
self.gridLayoutWidget_2.setObjectName("gridLayoutWidget_2")
self.gridLayout_2 = QtWidgets.QGridLayout(self.gridLayoutWidget_2)
self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
self.gridLayout_2.setObjectName("gridLayout_2")
self.app_group_box = QtWidgets.QGroupBox(self.gridLayoutWidget_2)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.app_group_box.sizePolicy().hasHeightForWidth())
self.app_group_box.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.app_group_box.setFont(font)
self.app_group_box.setAlignment(QtCore.Qt.AlignmentFlag.AlignLeading|QtCore.Qt.AlignmentFlag.AlignLeft|QtCore.Qt.AlignmentFlag.AlignVCenter)
self.app_group_box.setCheckable(False)
self.app_group_box.setObjectName("app_group_box")
self.dokument_list = QtWidgets.QTableWidget(self.app_group_box)
self.dokument_list.setGeometry(QtCore.QRect(830, 20, 256, 192))
font = QtGui.QFont()
font.setKerning(False)
self.dokument_list.setFont(font)
self.dokument_list.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.dokument_list.setSelectionMode(QtWidgets.QAbstractItemView.SelectionMode.SingleSelection)
self.dokument_list.setObjectName("dokument_list")
self.dokument_list.setColumnCount(4)
self.dokument_list.setRowCount(0)
item = QtWidgets.QTableWidgetItem()
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(8)
item.setFont(font)
self.dokument_list.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(8)
item.setFont(font)
self.dokument_list.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
font = QtGui.QFont()
font.setFamily("Arial")
font.setPointSize(8)
item.setFont(font)
self.dokument_list.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.dokument_list.setHorizontalHeaderItem(3, item)
self.frame = QtWidgets.QFrame(self.app_group_box)
self.frame.setEnabled(True)
self.frame.setGeometry(QtCore.QRect(10, 30, 731, 151))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth())
self.frame.setSizePolicy(sizePolicy)
self.frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
self.frame.setFrameShadow(QtWidgets.QFrame.Shadow.Raised)
self.frame.setObjectName("frame")
self.drpdwn_prof_title = QtWidgets.QComboBox(self.frame)
self.drpdwn_prof_title.setGeometry(QtCore.QRect(110, 50, 69, 22))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.drpdwn_prof_title.setFont(font)
self.drpdwn_prof_title.setEditable(True)
self.drpdwn_prof_title.setObjectName("drpdwn_prof_title")
self.label_5 = QtWidgets.QLabel(self.frame)
self.label_5.setGeometry(QtCore.QRect(250, 20, 91, 21))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_5.setFont(font)
self.label_5.setObjectName("label_5")
self.sem_winter = QtWidgets.QRadioButton(self.frame)
self.sem_winter.setGeometry(QtCore.QRect(340, 50, 82, 17))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.sem_winter.setFont(font)
self.sem_winter.setObjectName("sem_winter")
self.label_4 = QtWidgets.QLabel(self.frame)
self.label_4.setGeometry(QtCore.QRect(10, 80, 71, 21))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_4.setFont(font)
self.label_4.setObjectName("label_4")
self.drpdwn_app_nr = QtWidgets.QComboBox(self.frame)
self.drpdwn_app_nr.setGeometry(QtCore.QRect(110, 20, 69, 22))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.drpdwn_app_nr.setFont(font)
self.drpdwn_app_nr.setEditable(True)
self.drpdwn_app_nr.setObjectName("drpdwn_app_nr")
self.app_name = QtWidgets.QLineEdit(self.frame)
self.app_name.setGeometry(QtCore.QRect(340, 20, 113, 20))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.app_name.setFont(font)
self.app_name.setObjectName("app_name")
self.sem_sommer = QtWidgets.QRadioButton(self.frame)
self.sem_sommer.setGeometry(QtCore.QRect(340, 70, 82, 17))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.sem_sommer.setFont(font)
self.sem_sommer.setObjectName("sem_sommer")
self.label_3 = QtWidgets.QLabel(self.frame)
self.label_3.setGeometry(QtCore.QRect(10, 50, 61, 20))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_3.setFont(font)
self.label_3.setObjectName("label_3")
self.label_6 = QtWidgets.QLabel(self.frame)
self.label_6.setGeometry(QtCore.QRect(270, 60, 51, 21))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_6.setFont(font)
self.label_6.setObjectName("label_6")
self.sem_year = QtWidgets.QLineEdit(self.frame)
self.sem_year.setGeometry(QtCore.QRect(410, 60, 113, 20))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.sem_year.setFont(font)
self.sem_year.setMaxLength(4)
self.sem_year.setObjectName("sem_year")
self.label_2 = QtWidgets.QLabel(self.frame)
self.label_2.setGeometry(QtCore.QRect(10, 20, 101, 21))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.btn_apparat_save = QtWidgets.QPushButton(self.frame)
self.btn_apparat_save.setGeometry(QtCore.QRect(260, 120, 75, 23))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.btn_apparat_save.setFont(font)
self.btn_apparat_save.setObjectName("btn_apparat_save")
self.btn_apparat_apply = QtWidgets.QPushButton(self.frame)
self.btn_apparat_apply.setGeometry(QtCore.QRect(350, 120, 75, 23))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.btn_apparat_apply.setFont(font)
self.btn_apparat_apply.setObjectName("btn_apparat_apply")
self.check_eternal_app = QtWidgets.QCheckBox(self.frame)
self.check_eternal_app.setGeometry(QtCore.QRect(340, 90, 101, 17))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.check_eternal_app.setFont(font)
self.check_eternal_app.setObjectName("check_eternal_app")
self.label_8 = QtWidgets.QLabel(self.frame)
self.label_8.setGeometry(QtCore.QRect(10, 110, 71, 21))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_8.setFont(font)
self.label_8.setObjectName("label_8")
self.prof_mail = QtWidgets.QLineEdit(self.frame)
self.prof_mail.setGeometry(QtCore.QRect(110, 110, 121, 20))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.prof_mail.setFont(font)
self.prof_mail.setPlaceholderText("")
self.prof_mail.setObjectName("prof_mail")
self.label_9 = QtWidgets.QLabel(self.frame)
self.label_9.setGeometry(QtCore.QRect(10, 130, 71, 21))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_9.setFont(font)
self.label_9.setObjectName("label_9")
self.prof_tel_nr = QtWidgets.QLineEdit(self.frame)
self.prof_tel_nr.setGeometry(QtCore.QRect(110, 130, 121, 20))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.prof_tel_nr.setFont(font)
self.prof_tel_nr.setPlaceholderText("")
self.prof_tel_nr.setObjectName("prof_tel_nr")
self.label_10 = QtWidgets.QLabel(self.frame)
self.label_10.setGeometry(QtCore.QRect(470, 20, 51, 21))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_10.setFont(font)
self.label_10.setObjectName("label_10")
self.app_fach = QtWidgets.QLineEdit(self.frame)
self.app_fach.setGeometry(QtCore.QRect(510, 20, 113, 20))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.app_fach.setFont(font)
self.app_fach.setObjectName("app_fach")
self.drpdwn_prof_name = QtWidgets.QComboBox(self.frame)
self.drpdwn_prof_name.setGeometry(QtCore.QRect(110, 80, 121, 22))
font = QtGui.QFont()
font.setPointSize(8)
font.setBold(False)
font.setWeight(50)
self.drpdwn_prof_name.setFont(font)
self.drpdwn_prof_name.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus)
self.drpdwn_prof_name.setEditable(True)
self.drpdwn_prof_name.setCurrentText("")
self.drpdwn_prof_name.setInsertPolicy(QtWidgets.QComboBox.InsertPolicy.InsertAlphabetically)
self.drpdwn_prof_name.setFrame(True)
self.drpdwn_prof_name.setObjectName("drpdwn_prof_name")
self.btn_add_document = QtWidgets.QPushButton(self.app_group_box)
self.btn_add_document.setGeometry(QtCore.QRect(1100, 40, 131, 25))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.btn_add_document.setFont(font)
self.btn_add_document.setObjectName("btn_add_document")
self.btn_open_document = QtWidgets.QPushButton(self.app_group_box)
self.btn_open_document.setGeometry(QtCore.QRect(1100, 80, 131, 25))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.btn_open_document.setFont(font)
self.btn_open_document.setObjectName("btn_open_document")
self.toolButton = QtWidgets.QToolButton(self.app_group_box)
self.toolButton.setGeometry(QtCore.QRect(1110, 110, 25, 19))
self.toolButton.setObjectName("toolButton")
self.label_7 = QtWidgets.QLabel(self.app_group_box)
self.label_7.setGeometry(QtCore.QRect(20, 200, 47, 21))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.label_7.setFont(font)
self.label_7.setObjectName("label_7")
self.search_media = QtWidgets.QLineEdit(self.app_group_box)
self.search_media.setGeometry(QtCore.QRect(80, 200, 211, 20))
font = QtGui.QFont()
font.setPointSize(9)
font.setBold(False)
font.setWeight(50)
self.search_media.setFont(font)
self.search_media.setObjectName("search_media")
self.label = QtWidgets.QLabel(self.app_group_box)
self.label.setGeometry(QtCore.QRect(10, 180, 1259, 18))
font = QtGui.QFont()
font.setPointSize(11)
font.setBold(True)
font.setWeight(75)
self.label.setFont(font)
self.label.setObjectName("label")
self.gridLayout_2.addWidget(self.app_group_box, 1, 0, 1, 1)
self.tableWidget_apparat_media = QtWidgets.QTableWidget(self.gridLayoutWidget_2)
self.tableWidget_apparat_media.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.tableWidget_apparat_media.setObjectName("tableWidget_apparat_media")
self.tableWidget_apparat_media.setColumnCount(4)
self.tableWidget_apparat_media.setRowCount(0)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_apparat_media.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_apparat_media.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_apparat_media.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_apparat_media.setHorizontalHeaderItem(3, item)
self.gridLayout_2.addWidget(self.tableWidget_apparat_media, 2, 0, 1, 1)
self.search = QtWidgets.QPushButton(self.tab)
self.search.setGeometry(QtCore.QRect(130, 640, 75, 20))
self.search.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.search.setObjectName("search")
self.add_medium = QtWidgets.QPushButton(self.tab)
self.add_medium.setGeometry(QtCore.QRect(10, 640, 111, 20))
self.add_medium.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.add_medium.setObjectName("add_medium")
self.tabWidget.addTab(self.tab, "")
self.tab_2 = QtWidgets.QWidget()
self.tab_2.setObjectName("tab_2")
self.tabWidget.addTab(self.tab_2, "")
self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 1)
self.horizontalLayout.addLayout(self.gridLayout)
self.verticalLayout.addLayout(self.horizontalLayout)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 1280, 21))
self.menubar.setObjectName("menubar")
self.menuDatei = QtWidgets.QMenu(self.menubar)
self.menuDatei.setObjectName("menuDatei")
self.menuEinstellungen = QtWidgets.QMenu(self.menubar)
self.menuEinstellungen.setObjectName("menuEinstellungen")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.menubar.addAction(self.menuDatei.menuAction())
self.menubar.addAction(self.menuEinstellungen.menuAction())
self.retranslateUi(MainWindow)
self.tabWidget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
MainWindow.setTabOrder(self.drpdwn_app_nr, self.drpdwn_prof_title)
MainWindow.setTabOrder(self.drpdwn_prof_title, self.drpdwn_prof_name)
MainWindow.setTabOrder(self.drpdwn_prof_name, self.prof_mail)
MainWindow.setTabOrder(self.prof_mail, self.prof_tel_nr)
MainWindow.setTabOrder(self.prof_tel_nr, self.app_name)
MainWindow.setTabOrder(self.app_name, self.app_fach)
MainWindow.setTabOrder(self.app_fach, self.sem_winter)
MainWindow.setTabOrder(self.sem_winter, self.sem_sommer)
MainWindow.setTabOrder(self.sem_sommer, self.sem_year)
MainWindow.setTabOrder(self.sem_year, self.check_eternal_app)
MainWindow.setTabOrder(self.check_eternal_app, self.btn_add_document)
MainWindow.setTabOrder(self.btn_add_document, self.btn_open_document)
MainWindow.setTabOrder(self.btn_open_document, self.toolButton)
MainWindow.setTabOrder(self.toolButton, self.btn_apparat_save)
MainWindow.setTabOrder(self.btn_apparat_save, self.btn_apparat_apply)
MainWindow.setTabOrder(self.btn_apparat_apply, self.search_media)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.load_app.setToolTip(_translate("MainWindow", "Load the Semesterapparate from the database"))
self.load_app.setText(_translate("MainWindow", "App. aufrufen"))
self.create_new_app.setText(_translate("MainWindow", "neu. App anlegen"))
item = self.tableWidget_apparate.horizontalHeaderItem(0)
item.setText(_translate("MainWindow", "AppNr"))
item = self.tableWidget_apparate.horizontalHeaderItem(1)
item.setText(_translate("MainWindow", "App Name"))
item = self.tableWidget_apparate.horizontalHeaderItem(2)
item.setText(_translate("MainWindow", "Professor"))
item = self.tableWidget_apparate.horizontalHeaderItem(3)
item.setText(_translate("MainWindow", "Dauerapparat"))
self.app_group_box.setTitle(_translate("MainWindow", "Apparatsdetails"))
item = self.dokument_list.horizontalHeaderItem(0)
item.setText(_translate("MainWindow", "Dokumentname"))
item = self.dokument_list.horizontalHeaderItem(1)
item.setText(_translate("MainWindow", "Dateityp"))
item = self.dokument_list.horizontalHeaderItem(2)
item.setText(_translate("MainWindow", "Neu?"))
item = self.dokument_list.horizontalHeaderItem(3)
item.setText(_translate("MainWindow", "path"))
self.label_5.setText(_translate("MainWindow", "Apparatsname"))
self.sem_winter.setText(_translate("MainWindow", "Winter"))
self.label_4.setText(_translate("MainWindow", "Prof. Name"))
self.sem_sommer.setText(_translate("MainWindow", "Sommer"))
self.label_3.setText(_translate("MainWindow", "Prof. Titel"))
self.label_6.setText(_translate("MainWindow", "Semester"))
self.sem_year.setPlaceholderText(_translate("MainWindow", "2023"))
self.label_2.setText(_translate("MainWindow", "Apparatsnummer"))
self.btn_apparat_save.setText(_translate("MainWindow", "Speichern"))
self.btn_apparat_apply.setText(_translate("MainWindow", "Aktualisieren"))
self.check_eternal_app.setText(_translate("MainWindow", "Dauerapparat"))
self.label_8.setText(_translate("MainWindow", "Mail"))
self.label_9.setText(_translate("MainWindow", "Tel"))
self.label_10.setText(_translate("MainWindow", "Fach"))
self.btn_add_document.setText(_translate("MainWindow", "Dokument hinzufügen"))
self.btn_open_document.setText(_translate("MainWindow", "Dokument öffnen"))
self.toolButton.setText(_translate("MainWindow", "..."))
self.label_7.setText(_translate("MainWindow", "Suche"))
self.search_media.setPlaceholderText(_translate("MainWindow", "Buch oder Signatur"))
self.label.setText(_translate("MainWindow", "Medienliste"))
item = self.tableWidget_apparat_media.horizontalHeaderItem(0)
item.setText(_translate("MainWindow", "Buchtitel"))
item = self.tableWidget_apparat_media.horizontalHeaderItem(1)
item.setText(_translate("MainWindow", "Autor"))
item = self.tableWidget_apparat_media.horizontalHeaderItem(2)
item.setText(_translate("MainWindow", "Auflage"))
item = self.tableWidget_apparat_media.horizontalHeaderItem(3)
item.setText(_translate("MainWindow", "Signatur"))
self.search.setToolTip(_translate("MainWindow", "Sucht im Katalog nach allen Medien, die die Apparatsnummer enthalten"))
self.search.setText(_translate("MainWindow", "Suche"))
self.add_medium.setText(_translate("MainWindow", "Medium hinzufügen"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Tab 1"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Tab 2"))
self.menuDatei.setTitle(_translate("MainWindow", "Datei"))
self.menuEinstellungen.setTitle(_translate("MainWindow", "Einstellungen"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec())

View File

@@ -0,0 +1,234 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
<context>
<name>MainWindow</name>
<message>
<location filename="semesterapparat_ui.ui" line="23"/>
<source>MainWindow</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="62"/>
<source>Tab 1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="97"/>
<source>Load the Semesterapparate from the database</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="100"/>
<source>App. aufrufen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="110"/>
<source>neu. App anlegen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="139"/>
<source>AppNr</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="144"/>
<source>App Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="149"/>
<source>Professor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="154"/>
<location filename="semesterapparat_ui.ui" line="584"/>
<source>Dauerapparat</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="159"/>
<source>KontoNr</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="254"/>
<source>Dateityp</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="265"/>
<source>Neu?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="276"/>
<source>path</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="604"/>
<source>Mail</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="650"/>
<source>Tel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="693"/>
<source>Fach</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="762"/>
<location filename="semesterapparat_ui.ui" line="782"/>
<location filename="semesterapparat_ui.ui" line="802"/>
<location filename="semesterapparat_ui.ui" line="822"/>
<location filename="semesterapparat_ui.ui" line="842"/>
<location filename="semesterapparat_ui.ui" line="862"/>
<source>*</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="975"/>
<source>Buchtitel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="980"/>
<source>Autor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="985"/>
<source>Auflage</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="990"/>
<source>Signatur</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="1073"/>
<source>Beenden</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="213"/>
<source>Apparatsdetails</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="243"/>
<source>Dokumentname</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="341"/>
<source>Apparatsname</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="361"/>
<source>Winter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="381"/>
<source>Prof. Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="441"/>
<source>Sommer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="461"/>
<source>Prof. Titel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="481"/>
<source>Semester</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="504"/>
<source>2023</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="524"/>
<source>Apparatsnummer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="544"/>
<source>Speichern</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="564"/>
<source>Aktualisieren</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="883"/>
<source>Dokument hinzufügen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="903"/>
<source>Dokument öffnen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="923"/>
<location filename="semesterapparat_ui.ui" line="1013"/>
<source>Suche</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="943"/>
<source>Buch oder Signatur</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="963"/>
<source>Medienliste</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="1010"/>
<source>Sucht im Katalog nach allen Medien, die die Apparatsnummer enthalten</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="1029"/>
<source>Medium hinzufügen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="1035"/>
<source>Tab 2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="1058"/>
<source>Datei</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="semesterapparat_ui.ui" line="1064"/>
<source>Einstellungen</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

2890
src/ui/semesterapparat_ui.ui Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

149
src/ui/setupwizard.ui Normal file
View File

@@ -0,0 +1,149 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Wizard</class>
<widget class="QWizard" name="Wizard">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>640</width>
<height>480</height>
</rect>
</property>
<property name="maximumSize">
<size>
<width>640</width>
<height>480</height>
</size>
</property>
<property name="windowTitle">
<string>Wizard</string>
</property>
<widget class="QWizardPage" name="wizardPage1">
<widget class="QTextBrowser" name="textBrowser">
<property name="geometry">
<rect>
<x>200</x>
<y>10</y>
<width>256</width>
<height>192</height>
</rect>
</property>
<property name="html">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Setup für das Semesterapparatsprogram.&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Im Anschluss werden wichtige Einstellungen gesetzt, welche auch im späteren Verlauf verändert werden können.&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</widget>
<widget class="QWizardPage" name="wizardPage2">
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>10</x>
<y>0</y>
<width>131</width>
<height>16</height>
</rect>
</property>
<property name="text">
<string>Grundeinstellungen</string>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>10</x>
<y>40</y>
<width>71</width>
<height>16</height>
</rect>
</property>
<property name="toolTip">
<string>Opens the downloaded files with the default applications set in the OS</string>
</property>
<property name="text">
<string>Default Apps</string>
</property>
</widget>
<widget class="QCheckBox" name="default_apps">
<property name="geometry">
<rect>
<x>100</x>
<y>40</y>
<width>70</width>
<height>17</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>10</x>
<y>70</y>
<width>61</width>
<height>16</height>
</rect>
</property>
<property name="toolTip">
<string>Path where the downloaded files are stored. Defaults to ~/Desktop/SemapFiles</string>
</property>
<property name="text">
<string>Save Path</string>
</property>
</widget>
<widget class="QFrame" name="custom_applications">
<property name="geometry">
<rect>
<x>280</x>
<y>10</y>
<width>331</width>
<height>361</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
<widget class="QLineEdit" name="save_path">
<property name="geometry">
<rect>
<x>80</x>
<y>70</y>
<width>113</width>
<height>20</height>
</rect>
</property>
<property name="placeholderText">
<string>~/Desktop/SemapFiles</string>
</property>
</widget>
<widget class="QToolButton" name="btn_save_path_select">
<property name="geometry">
<rect>
<x>200</x>
<y>70</y>
<width>25</width>
<height>19</height>
</rect>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
</widget>
</widget>
<resources/>
<connections/>
</ui>

90
src/ui/setupwizard_ui.py Normal file
View File

@@ -0,0 +1,90 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file 'setupwizard.ui'
##
## Created by: Qt User Interface Compiler version 6.5.2
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
QMetaObject, QObject, QPoint, QRect,
QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
QFont, QFontDatabase, QGradient, QIcon,
QImage, QKeySequence, QLinearGradient, QPainter,
QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QCheckBox, QFrame, QLabel,
QLineEdit, QSizePolicy, QTextBrowser, QToolButton,
QWidget, QWizard, QWizardPage)
class Ui_Wizard(object):
def setupUi(self, Wizard):
if not Wizard.objectName():
Wizard.setObjectName(u"Wizard")
Wizard.resize(640, 480)
Wizard.setMaximumSize(QSize(640, 480))
self.wizardPage1 = QWizardPage()
self.wizardPage1.setObjectName(u"wizardPage1")
self.textBrowser = QTextBrowser(self.wizardPage1)
self.textBrowser.setObjectName(u"textBrowser")
self.textBrowser.setGeometry(QRect(200, 10, 256, 192))
Wizard.addPage(self.wizardPage1)
self.wizardPage2 = QWizardPage()
self.wizardPage2.setObjectName(u"wizardPage2")
self.label = QLabel(self.wizardPage2)
self.label.setObjectName(u"label")
self.label.setGeometry(QRect(10, 0, 131, 16))
self.label_2 = QLabel(self.wizardPage2)
self.label_2.setObjectName(u"label_2")
self.label_2.setGeometry(QRect(10, 40, 71, 16))
self.default_apps = QCheckBox(self.wizardPage2)
self.default_apps.setObjectName(u"default_apps")
self.default_apps.setGeometry(QRect(100, 40, 70, 17))
self.label_3 = QLabel(self.wizardPage2)
self.label_3.setObjectName(u"label_3")
self.label_3.setGeometry(QRect(10, 70, 61, 16))
self.custom_applications = QFrame(self.wizardPage2)
self.custom_applications.setObjectName(u"custom_applications")
self.custom_applications.setGeometry(QRect(280, 10, 331, 361))
self.custom_applications.setFrameShape(QFrame.StyledPanel)
self.custom_applications.setFrameShadow(QFrame.Raised)
self.save_path = QLineEdit(self.wizardPage2)
self.save_path.setObjectName(u"save_path")
self.save_path.setGeometry(QRect(80, 70, 113, 20))
self.btn_save_path_select = QToolButton(self.wizardPage2)
self.btn_save_path_select.setObjectName(u"btn_save_path_select")
self.btn_save_path_select.setGeometry(QRect(200, 70, 25, 19))
Wizard.addPage(self.wizardPage2)
self.retranslateUi(Wizard)
QMetaObject.connectSlotsByName(Wizard)
# setupUi
def retranslateUi(self, Wizard):
Wizard.setWindowTitle(QCoreApplication.translate("Wizard", u"Wizard", None))
self.textBrowser.setHtml(QCoreApplication.translate("Wizard", u"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Setup f\u00fcr das Semesterapparatsprogram.</p>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p>\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">Im Anschluss werden wichtige Einstellungen gesetzt, welche auch im sp\u00e4teren Verlauf ver\u00e4ndert werden k\u00f6nnen.</p>\n"
"<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margi"
"n-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>", None))
self.label.setText(QCoreApplication.translate("Wizard", u"Grundeinstellungen", None))
#if QT_CONFIG(tooltip)
self.label_2.setToolTip(QCoreApplication.translate("Wizard", u"Opens the downloaded files with the default applications set in the OS", None))
#endif // QT_CONFIG(tooltip)
self.label_2.setText(QCoreApplication.translate("Wizard", u"Default Apps", None))
self.default_apps.setText("")
#if QT_CONFIG(tooltip)
self.label_3.setToolTip(QCoreApplication.translate("Wizard", u"Path where the downloaded files are stored. Defaults to ~/Desktop/SemapFiles", None))
#endif // QT_CONFIG(tooltip)
self.label_3.setText(QCoreApplication.translate("Wizard", u"Save Path", None))
self.save_path.setPlaceholderText(QCoreApplication.translate("Wizard", u"~/Desktop/SemapFiles", None))
self.btn_save_path_select.setText(QCoreApplication.translate("Wizard", u"...", None))
# retranslateUi

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

692
src/ui/untitled.ui Normal file
View File

@@ -0,0 +1,692 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1280</width>
<height>720</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<widget class="QWidget" name="verticalLayoutWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1271</width>
<height>671</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<attribute name="title">
<string>Tab 1</string>
</attribute>
<widget class="QWidget" name="horizontalLayoutWidget_2">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1261</width>
<height>161</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="load_app">
<property name="toolTip">
<string>Load the Semesterapparate from the database</string>
</property>
<property name="text">
<string>App. aufrufen</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="create_new_app">
<property name="text">
<string>neu. App anlegen</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="0" column="1">
<widget class="QTableWidget" name="tableWidget_apparate">
<column>
<property name="text">
<string>AppNr</string>
</property>
</column>
<column>
<property name="text">
<string>App Name</string>
</property>
</column>
<column>
<property name="text">
<string>Professor</string>
</property>
</column>
<column>
<property name="text">
<string>Dauerapparat</string>
</property>
</column>
</widget>
</item>
<item row="2" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_3"/>
</item>
<item row="1" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_4"/>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="Line" name="line">
<property name="geometry">
<rect>
<x>0</x>
<y>160</y>
<width>1261</width>
<height>21</height>
</rect>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
<widget class="QWidget" name="gridLayoutWidget_2">
<property name="geometry">
<rect>
<x>0</x>
<y>180</y>
<width>1261</width>
<height>461</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="2" column="0">
<widget class="QTableWidget" name="tableWidget_apparat_media">
<column>
<property name="text">
<string>Buchtitel</string>
</property>
</column>
<column>
<property name="text">
<string>Autor</string>
</property>
</column>
<column>
<property name="text">
<string>Auflage</string>
</property>
</column>
<column>
<property name="text">
<string>Signatur</string>
</property>
</column>
</widget>
</item>
<item row="1" column="0">
<widget class="QGroupBox" name="app_group_box">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="title">
<string>Apparatsdetails</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<property name="checkable">
<bool>false</bool>
</property>
<widget class="QTableWidget" name="dokument_list">
<property name="geometry">
<rect>
<x>820</x>
<y>20</y>
<width>256</width>
<height>192</height>
</rect>
</property>
<column>
<property name="text">
<string>Dokumentname</string>
</property>
</column>
<column>
<property name="text">
<string>Typ</string>
</property>
</column>
</widget>
<widget class="QFrame" name="frame">
<property name="geometry">
<rect>
<x>10</x>
<y>30</y>
<width>731</width>
<height>151</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QComboBox" name="drpdwn_prof_title">
<property name="geometry">
<rect>
<x>110</x>
<y>50</y>
<width>69</width>
<height>22</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="label_5">
<property name="geometry">
<rect>
<x>250</x>
<y>20</y>
<width>91</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Apparatsname</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit">
<property name="geometry">
<rect>
<x>110</x>
<y>80</y>
<width>121</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="placeholderText">
<string>Nachname, Vorname</string>
</property>
</widget>
<widget class="QRadioButton" name="sem_winter">
<property name="geometry">
<rect>
<x>340</x>
<y>50</y>
<width>82</width>
<height>17</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Winter</string>
</property>
</widget>
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
<x>10</x>
<y>80</y>
<width>71</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Prof. Name</string>
</property>
</widget>
<widget class="QComboBox" name="drpdwn_app_nr">
<property name="geometry">
<rect>
<x>110</x>
<y>20</y>
<width>69</width>
<height>22</height>
</rect>
</property>
</widget>
<widget class="QLineEdit" name="app_name">
<property name="geometry">
<rect>
<x>340</x>
<y>20</y>
<width>113</width>
<height>20</height>
</rect>
</property>
</widget>
<widget class="QRadioButton" name="sem_sommer">
<property name="geometry">
<rect>
<x>340</x>
<y>70</y>
<width>82</width>
<height>17</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Sommer</string>
</property>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>10</x>
<y>50</y>
<width>61</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Prof. Titel</string>
</property>
</widget>
<widget class="QLabel" name="label_6">
<property name="geometry">
<rect>
<x>270</x>
<y>60</y>
<width>51</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Semester</string>
</property>
</widget>
<widget class="QLineEdit" name="sem_year">
<property name="geometry">
<rect>
<x>410</x>
<y>60</y>
<width>113</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="placeholderText">
<string>2023</string>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>101</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Apparatsnummer</string>
</property>
</widget>
<widget class="QPushButton" name="btn_apparat_save">
<property name="geometry">
<rect>
<x>260</x>
<y>120</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Speichern</string>
</property>
</widget>
<widget class="QPushButton" name="btn_apparat_apply">
<property name="geometry">
<rect>
<x>350</x>
<y>120</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Aktualisieren</string>
</property>
</widget>
<widget class="QCheckBox" name="checkBox">
<property name="geometry">
<rect>
<x>340</x>
<y>90</y>
<width>101</width>
<height>17</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Dauerapparat</string>
</property>
</widget>
</widget>
<widget class="QPushButton" name="btn_add_document">
<property name="geometry">
<rect>
<x>1100</x>
<y>40</y>
<width>131</width>
<height>25</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Dokument hinzufügen</string>
</property>
</widget>
<widget class="QPushButton" name="btn_open_document">
<property name="geometry">
<rect>
<x>1100</x>
<y>80</y>
<width>131</width>
<height>25</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Dokument öffnen</string>
</property>
</widget>
<widget class="QToolButton" name="toolButton">
<property name="geometry">
<rect>
<x>1110</x>
<y>110</y>
<width>25</width>
<height>19</height>
</rect>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
<widget class="QLabel" name="label_7">
<property name="geometry">
<rect>
<x>20</x>
<y>200</y>
<width>47</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Suche</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit_2">
<property name="geometry">
<rect>
<x>80</x>
<y>200</y>
<width>211</width>
<height>20</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>9</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="placeholderText">
<string>Buch oder Signatur</string>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>0</x>
<y>180</y>
<width>1259</width>
<height>18</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Medienliste</string>
</property>
</widget>
</widget>
</item>
</layout>
</widget>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Tab 2</string>
</attribute>
</widget>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1280</width>
<height>21</height>
</rect>
</property>
<widget class="QMenu" name="menuDatei">
<property name="title">
<string>Datei</string>
</property>
</widget>
<widget class="QMenu" name="menuEinstellungen">
<property name="title">
<string>Einstellungen</string>
</property>
</widget>
<addaction name="menuDatei"/>
<addaction name="menuEinstellungen"/>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>

476
src/ui/untitled_ui.py Normal file
View File

@@ -0,0 +1,476 @@
# -*- coding: utf-8 -*-
################################################################################
# Form generated from reading UI file 'untitled.ui'
##
# Created by: Qt User Interface Compiler version 6.5.2
##
# WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
from PySide6.QtCore import (
QCoreApplication,
QDate,
QDateTime,
QLocale,
QMetaObject,
QObject,
QPoint,
QRect,
QSize,
Qt,
QTime,
QUrl,
)
from PySide6.QtGui import (
QAction,
QBrush,
QColor,
QConicalGradient,
QCursor,
QFont,
QFontDatabase,
QGradient,
QIcon,
QImage,
QKeySequence,
QLinearGradient,
QPainter,
QPalette,
QPixmap,
QRadialGradient,
QTransform,
)
from PySide6.QtWidgets import (
QApplication,
QCheckBox,
QComboBox,
QFormLayout,
QFrame,
QGridLayout,
QGroupBox,
QHBoxLayout,
QHeaderView,
QLabel,
QLineEdit,
QMainWindow,
QMenu,
QMenuBar,
QPushButton,
QRadioButton,
QSizePolicy,
QSpacerItem,
QStatusBar,
QTableWidget,
QTableWidgetItem,
QTabWidget,
QToolButton,
QVBoxLayout,
QWidget,
)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
if not MainWindow.objectName():
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1280, 720)
sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
self.centralwidget = QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
sizePolicy1 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
sizePolicy1.setHorizontalStretch(0)
sizePolicy1.setVerticalStretch(0)
sizePolicy1.setHeightForWidth(
self.centralwidget.sizePolicy().hasHeightForWidth()
)
self.centralwidget.setSizePolicy(sizePolicy1)
self.verticalLayoutWidget = QWidget(self.centralwidget)
self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
self.verticalLayoutWidget.setGeometry(QRect(0, 0, 1271, 671))
self.verticalLayout = QVBoxLayout(self.verticalLayoutWidget)
self.verticalLayout.setObjectName("verticalLayout")
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout = QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.gridLayout = QGridLayout()
self.gridLayout.setObjectName("gridLayout")
self.tabWidget = QTabWidget(self.verticalLayoutWidget)
self.tabWidget.setObjectName("tabWidget")
self.tab = QWidget()
self.tab.setObjectName("tab")
sizePolicy2 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)
sizePolicy2.setHorizontalStretch(0)
sizePolicy2.setVerticalStretch(0)
sizePolicy2.setHeightForWidth(self.tab.sizePolicy().hasHeightForWidth())
self.tab.setSizePolicy(sizePolicy2)
self.horizontalLayoutWidget_2 = QWidget(self.tab)
self.horizontalLayoutWidget_2.setObjectName("horizontalLayoutWidget_2")
self.horizontalLayoutWidget_2.setGeometry(QRect(0, 0, 1261, 161))
self.horizontalLayout_2 = QHBoxLayout(self.horizontalLayoutWidget_2)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
self.formLayout = QFormLayout()
self.formLayout.setObjectName("formLayout")
self.verticalLayout_2 = QVBoxLayout()
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.verticalSpacer = QSpacerItem(
20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding
)
self.verticalLayout_2.addItem(self.verticalSpacer)
self.load_app = QPushButton(self.horizontalLayoutWidget_2)
self.load_app.setObjectName("load_app")
self.verticalLayout_2.addWidget(self.load_app)
self.create_new_app = QPushButton(self.horizontalLayoutWidget_2)
self.create_new_app.setObjectName("create_new_app")
self.verticalLayout_2.addWidget(self.create_new_app)
self.verticalSpacer_2 = QSpacerItem(
20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding
)
self.verticalLayout_2.addItem(self.verticalSpacer_2)
self.formLayout.setLayout(0, QFormLayout.LabelRole, self.verticalLayout_2)
self.tableWidget_apparate = QTableWidget(self.horizontalLayoutWidget_2)
if self.tableWidget_apparate.columnCount() < 4:
self.tableWidget_apparate.setColumnCount(4)
__qtablewidgetitem = QTableWidgetItem()
self.tableWidget_apparate.setHorizontalHeaderItem(0, __qtablewidgetitem)
__qtablewidgetitem1 = QTableWidgetItem()
self.tableWidget_apparate.setHorizontalHeaderItem(1, __qtablewidgetitem1)
__qtablewidgetitem2 = QTableWidgetItem()
self.tableWidget_apparate.setHorizontalHeaderItem(2, __qtablewidgetitem2)
__qtablewidgetitem3 = QTableWidgetItem()
self.tableWidget_apparate.setHorizontalHeaderItem(3, __qtablewidgetitem3)
self.tableWidget_apparate.setObjectName("tableWidget_apparate")
self.formLayout.setWidget(0, QFormLayout.FieldRole, self.tableWidget_apparate)
self.horizontalLayout_3 = QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
self.formLayout.setLayout(2, QFormLayout.LabelRole, self.horizontalLayout_3)
self.horizontalLayout_4 = QHBoxLayout()
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
self.formLayout.setLayout(1, QFormLayout.FieldRole, self.horizontalLayout_4)
self.horizontalLayout_2.addLayout(self.formLayout)
self.line = QFrame(self.tab)
self.line.setObjectName("line")
self.line.setGeometry(QRect(0, 160, 1261, 21))
self.line.setFrameShape(QFrame.HLine)
self.line.setFrameShadow(QFrame.Sunken)
self.gridLayoutWidget_2 = QWidget(self.tab)
self.gridLayoutWidget_2.setObjectName("gridLayoutWidget_2")
self.gridLayoutWidget_2.setGeometry(QRect(0, 180, 1261, 461))
self.gridLayout_2 = QGridLayout(self.gridLayoutWidget_2)
self.gridLayout_2.setObjectName("gridLayout_2")
self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
self.tableWidget_apparat_media = QTableWidget(self.gridLayoutWidget_2)
if self.tableWidget_apparat_media.columnCount() < 4:
self.tableWidget_apparat_media.setColumnCount(4)
__qtablewidgetitem4 = QTableWidgetItem()
self.tableWidget_apparat_media.setHorizontalHeaderItem(0, __qtablewidgetitem4)
__qtablewidgetitem5 = QTableWidgetItem()
self.tableWidget_apparat_media.setHorizontalHeaderItem(1, __qtablewidgetitem5)
__qtablewidgetitem6 = QTableWidgetItem()
self.tableWidget_apparat_media.setHorizontalHeaderItem(2, __qtablewidgetitem6)
__qtablewidgetitem7 = QTableWidgetItem()
self.tableWidget_apparat_media.setHorizontalHeaderItem(3, __qtablewidgetitem7)
self.tableWidget_apparat_media.setObjectName("tableWidget_apparat_media")
self.gridLayout_2.addWidget(self.tableWidget_apparat_media, 2, 0, 1, 1)
self.app_group_box = QGroupBox(self.gridLayoutWidget_2)
self.app_group_box.setObjectName("app_group_box")
sizePolicy3 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding)
sizePolicy3.setHorizontalStretch(0)
sizePolicy3.setVerticalStretch(0)
sizePolicy3.setHeightForWidth(
self.app_group_box.sizePolicy().hasHeightForWidth()
)
self.app_group_box.setSizePolicy(sizePolicy3)
font = QFont()
font.setPointSize(12)
font.setBold(True)
self.app_group_box.setFont(font)
self.app_group_box.setAlignment(
Qt.AlignLeading | Qt.AlignLeft | Qt.AlignVCenter
)
self.app_group_box.setCheckable(False)
self.dokument_list = QTableWidget(self.app_group_box)
if self.dokument_list.columnCount() < 2:
self.dokument_list.setColumnCount(2)
__qtablewidgetitem8 = QTableWidgetItem()
self.dokument_list.setHorizontalHeaderItem(0, __qtablewidgetitem8)
__qtablewidgetitem9 = QTableWidgetItem()
self.dokument_list.setHorizontalHeaderItem(1, __qtablewidgetitem9)
self.dokument_list.setObjectName("dokument_list")
self.dokument_list.setGeometry(QRect(820, 20, 256, 192))
self.frame = QFrame(self.app_group_box)
self.frame.setObjectName("frame")
self.frame.setGeometry(QRect(10, 30, 731, 151))
sizePolicy1.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth())
self.frame.setSizePolicy(sizePolicy1)
self.frame.setFrameShape(QFrame.StyledPanel)
self.frame.setFrameShadow(QFrame.Raised)
self.drpdwn_prof_title = QComboBox(self.frame)
self.drpdwn_prof_title.setObjectName("drpdwn_prof_title")
self.drpdwn_prof_title.setGeometry(QRect(110, 50, 69, 22))
self.label_5 = QLabel(self.frame)
self.label_5.setObjectName("label_5")
self.label_5.setGeometry(QRect(250, 20, 91, 21))
font1 = QFont()
font1.setPointSize(9)
font1.setBold(False)
self.label_5.setFont(font1)
self.lineEdit = QLineEdit(self.frame)
self.lineEdit.setObjectName("lineEdit")
self.lineEdit.setGeometry(QRect(110, 80, 121, 20))
self.lineEdit.setFont(font1)
self.sem_winter = QRadioButton(self.frame)
self.sem_winter.setObjectName("sem_winter")
self.sem_winter.setGeometry(QRect(340, 50, 82, 17))
self.sem_winter.setFont(font1)
self.label_4 = QLabel(self.frame)
self.label_4.setObjectName("label_4")
self.label_4.setGeometry(QRect(10, 80, 71, 21))
self.label_4.setFont(font1)
self.drpdwn_app_nr = QComboBox(self.frame)
self.drpdwn_app_nr.setObjectName("drpdwn_app_nr")
self.drpdwn_app_nr.setGeometry(QRect(110, 20, 69, 22))
self.app_name = QLineEdit(self.frame)
self.app_name.setObjectName("app_name")
self.app_name.setGeometry(QRect(340, 20, 113, 20))
self.sem_sommer = QRadioButton(self.frame)
self.sem_sommer.setObjectName("sem_sommer")
self.sem_sommer.setGeometry(QRect(340, 70, 82, 17))
self.sem_sommer.setFont(font1)
self.label_3 = QLabel(self.frame)
self.label_3.setObjectName("label_3")
self.label_3.setGeometry(QRect(10, 50, 61, 20))
self.label_3.setFont(font1)
self.label_6 = QLabel(self.frame)
self.label_6.setObjectName("label_6")
self.label_6.setGeometry(QRect(270, 60, 51, 21))
self.label_6.setFont(font1)
self.sem_year = QLineEdit(self.frame)
self.sem_year.setObjectName("sem_year")
self.sem_year.setGeometry(QRect(410, 60, 113, 20))
self.sem_year.setFont(font1)
self.label_2 = QLabel(self.frame)
self.label_2.setObjectName("label_2")
self.label_2.setGeometry(QRect(10, 20, 101, 21))
self.label_2.setFont(font1)
self.btn_apparat_save = QPushButton(self.frame)
self.btn_apparat_save.setObjectName("btn_apparat_save")
self.btn_apparat_save.setGeometry(QRect(260, 120, 75, 23))
self.btn_apparat_save.setFont(font1)
self.btn_apparat_apply = QPushButton(self.frame)
self.btn_apparat_apply.setObjectName("btn_apparat_apply")
self.btn_apparat_apply.setGeometry(QRect(350, 120, 75, 23))
self.btn_apparat_apply.setFont(font1)
self.checkBox = QCheckBox(self.frame)
self.checkBox.setObjectName("checkBox")
self.checkBox.setGeometry(QRect(340, 90, 101, 17))
self.checkBox.setFont(font1)
self.btn_add_document = QPushButton(self.app_group_box)
self.btn_add_document.setObjectName("btn_add_document")
self.btn_add_document.setGeometry(QRect(1100, 40, 131, 25))
self.btn_add_document.setFont(font1)
self.btn_open_document = QPushButton(self.app_group_box)
self.btn_open_document.setObjectName("btn_open_document")
self.btn_open_document.setGeometry(QRect(1100, 80, 131, 25))
self.btn_open_document.setFont(font1)
self.toolButton = QToolButton(self.app_group_box)
self.toolButton.setObjectName("toolButton")
self.toolButton.setGeometry(QRect(1110, 110, 25, 19))
self.label_7 = QLabel(self.app_group_box)
self.label_7.setObjectName("label_7")
self.label_7.setGeometry(QRect(20, 200, 47, 21))
self.label_7.setFont(font1)
self.lineEdit_2 = QLineEdit(self.app_group_box)
self.lineEdit_2.setObjectName("lineEdit_2")
self.lineEdit_2.setGeometry(QRect(80, 200, 211, 20))
self.lineEdit_2.setFont(font1)
self.label = QLabel(self.app_group_box)
self.label.setObjectName("label")
self.label.setGeometry(QRect(0, 180, 1259, 18))
font2 = QFont()
font2.setPointSize(11)
font2.setBold(True)
self.label.setFont(font2)
self.gridLayout_2.addWidget(self.app_group_box, 1, 0, 1, 1)
self.tabWidget.addTab(self.tab, "")
self.tab_2 = QWidget()
self.tab_2.setObjectName("tab_2")
self.tabWidget.addTab(self.tab_2, "")
self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 1)
self.horizontalLayout.addLayout(self.gridLayout)
self.verticalLayout.addLayout(self.horizontalLayout)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QMenuBar(MainWindow)
self.menubar.setObjectName("menubar")
self.menubar.setGeometry(QRect(0, 0, 1280, 21))
self.menuDatei = QMenu(self.menubar)
self.menuDatei.setObjectName("menuDatei")
self.menuEinstellungen = QMenu(self.menubar)
self.menuEinstellungen.setObjectName("menuEinstellungen")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.menubar.addAction(self.menuDatei.menuAction())
self.menubar.addAction(self.menuEinstellungen.menuAction())
self.retranslateUi(MainWindow)
self.tabWidget.setCurrentIndex(0)
QMetaObject.connectSlotsByName(MainWindow)
# setupUi
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(
QCoreApplication.translate("MainWindow", "MainWindow", None)
)
# if QT_CONFIG(tooltip)
self.load_app.setToolTip(
QCoreApplication.translate(
"MainWindow", "Load the Semesterapparate from the database", None
)
)
# endif // QT_CONFIG(tooltip)
self.load_app.setText(
QCoreApplication.translate("MainWindow", "App. aufrufen", None)
)
self.create_new_app.setText(
QCoreApplication.translate("MainWindow", "neu. App anlegen", None)
)
___qtablewidgetitem = self.tableWidget_apparate.horizontalHeaderItem(0)
___qtablewidgetitem.setText(
QCoreApplication.translate("MainWindow", "AppNr", None)
)
___qtablewidgetitem1 = self.tableWidget_apparate.horizontalHeaderItem(1)
___qtablewidgetitem1.setText(
QCoreApplication.translate("MainWindow", "App Name", None)
)
___qtablewidgetitem2 = self.tableWidget_apparate.horizontalHeaderItem(2)
___qtablewidgetitem2.setText(
QCoreApplication.translate("MainWindow", "Professor", None)
)
___qtablewidgetitem3 = self.tableWidget_apparate.horizontalHeaderItem(3)
___qtablewidgetitem3.setText(
QCoreApplication.translate("MainWindow", "Dauerapparat", None)
)
___qtablewidgetitem4 = self.tableWidget_apparat_media.horizontalHeaderItem(0)
___qtablewidgetitem4.setText(
QCoreApplication.translate("MainWindow", "Buchtitel", None)
)
___qtablewidgetitem5 = self.tableWidget_apparat_media.horizontalHeaderItem(1)
___qtablewidgetitem5.setText(
QCoreApplication.translate("MainWindow", "Autor", None)
)
___qtablewidgetitem6 = self.tableWidget_apparat_media.horizontalHeaderItem(2)
___qtablewidgetitem6.setText(
QCoreApplication.translate("MainWindow", "Auflage", None)
)
___qtablewidgetitem7 = self.tableWidget_apparat_media.horizontalHeaderItem(3)
___qtablewidgetitem7.setText(
QCoreApplication.translate("MainWindow", "Signatur", None)
)
self.app_group_box.setTitle(
QCoreApplication.translate("MainWindow", "Apparatsdetails", None)
)
___qtablewidgetitem8 = self.dokument_list.horizontalHeaderItem(0)
___qtablewidgetitem8.setText(
QCoreApplication.translate("MainWindow", "Dokumentname", None)
)
___qtablewidgetitem9 = self.dokument_list.horizontalHeaderItem(1)
___qtablewidgetitem9.setText(
QCoreApplication.translate("MainWindow", "Typ", None)
)
self.label_5.setText(
QCoreApplication.translate("MainWindow", "Apparatsname", None)
)
self.lineEdit.setPlaceholderText(
QCoreApplication.translate("MainWindow", "Nachname, Vorname", None)
)
self.sem_winter.setText(
QCoreApplication.translate("MainWindow", "Winter", None)
)
self.label_4.setText(
QCoreApplication.translate("MainWindow", "Prof. Name", None)
)
self.sem_sommer.setText(
QCoreApplication.translate("MainWindow", "Sommer", None)
)
self.label_3.setText(
QCoreApplication.translate("MainWindow", "Prof. Titel", None)
)
self.label_6.setText(QCoreApplication.translate("MainWindow", "Semester", None))
self.sem_year.setPlaceholderText(
QCoreApplication.translate("MainWindow", "2023", None)
)
self.label_2.setText(
QCoreApplication.translate("MainWindow", "Apparatsnummer", None)
)
self.btn_apparat_save.setText(
QCoreApplication.translate("MainWindow", "Speichern", None)
)
self.btn_apparat_apply.setText(
QCoreApplication.translate("MainWindow", "Aktualisieren", None)
)
self.checkBox.setText(
QCoreApplication.translate("MainWindow", "Dauerapparat", None)
)
self.btn_add_document.setText(
QCoreApplication.translate("MainWindow", "Dokument hinzuf\u00fcgen", None)
)
self.btn_open_document.setText(
QCoreApplication.translate("MainWindow", "Dokument \u00f6ffnen", None)
)
self.toolButton.setText(QCoreApplication.translate("MainWindow", "...", None))
self.label_7.setText(QCoreApplication.translate("MainWindow", "Suche", None))
self.lineEdit_2.setPlaceholderText(
QCoreApplication.translate("MainWindow", "Buch oder Signatur", None)
)
self.label.setText(
QCoreApplication.translate("MainWindow", "Medienliste", None)
)
self.tabWidget.setTabText(
self.tabWidget.indexOf(self.tab),
QCoreApplication.translate("MainWindow", "Tab 1", None),
)
self.tabWidget.setTabText(
self.tabWidget.indexOf(self.tab_2),
QCoreApplication.translate("MainWindow", "Tab 2", None),
)
self.menuDatei.setTitle(QCoreApplication.translate("MainWindow", "Datei", None))
self.menuEinstellungen.setTitle(
QCoreApplication.translate("MainWindow", "Einstellungen", None)
)
# retranslateUi

View File

@@ -0,0 +1,67 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\Semesterapparate\ui\widgets\message_widget.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.backend.database import Database
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(295, 110)
self.label = QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(10, 0, 47, 21))
self.label.setObjectName("label")
self.lineEdit = QtWidgets.QLineEdit(Form)
self.lineEdit.setEnabled(True)
self.lineEdit.setGeometry(QtCore.QRect(60, 0, 41, 20))
self.lineEdit.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.lineEdit.setReadOnly(True)
self.lineEdit.setObjectName("lineEdit")
self.label_2 = QtWidgets.QLabel(Form)
self.label_2.setGeometry(QtCore.QRect(10, 20, 51, 21))
self.label_2.setObjectName("label_2")
self.textEdit = QtWidgets.QTextEdit(Form)
self.textEdit.setGeometry(QtCore.QRect(10, 40, 281, 66))
self.textEdit.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.textEdit.setInputMethodHints(QtCore.Qt.InputMethodHint.ImhNone)
self.textEdit.setReadOnly(True)
self.textEdit.setObjectName("textEdit")
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(210, 10, 75, 23))
self.pushButton.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.pushButton.setObjectName("pushButton")
self.hidden_id = QtWidgets.QLabel(Form)
self.hidden_id.setGeometry(QtCore.QRect(140, 10, 47, 13))
self.hidden_id.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.hidden_id.setObjectName("hidden_id")
self.hidden_id.hide()
self.delete = False
self.pushButton.clicked.connect(self.delete_message)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
Form.setTabOrder(self.lineEdit, self.textEdit)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.label.setText(_translate("Form", "Apparat:"))
self.label_2.setText(_translate("Form", "Nachricht:"))
self.pushButton.setText(_translate("Form", "Löschen"))
self.hidden_id.setText(_translate("Form", "TextLabel"))
def set_message(self, message: str, apparat: int, app_id: int):
self.textEdit.setText(message)
self.lineEdit.setText(str(apparat) if apparat else "Alle")
self.hidden_id.setText(str(app_id))
def delete_message(self):
db = Database()
print("deleting message")
db.delete_message(self.hidden_id.text())

View File

@@ -0,0 +1,149 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\Semesterapparate\ui\widgets\progress_overview_widget.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
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(300, 751)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.Fixed, QtWidgets.QSizePolicy.Policy.Fixed
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(Form.sizePolicy().hasHeightForWidth())
Form.setSizePolicy(sizePolicy)
Form.setMaximumSize(QtCore.QSize(300, 751))
self.group_software = QtWidgets.QGroupBox(Form)
self.group_software.setEnabled(True)
self.group_software.setGeometry(QtCore.QRect(10, 10, 281, 211))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.group_software.setFont(font)
self.group_software.setStatusTip("")
self.group_software.setFlat(False)
self.group_software.setCheckable(False)
self.group_software.setChecked(False)
self.group_software.setObjectName("group_software")
self.checkBox = QtWidgets.QCheckBox(self.group_software)
self.checkBox.setGeometry(QtCore.QRect(10, 20, 241, 41))
font = QtGui.QFont()
font.setPointSize(8)
font.setBold(False)
font.setWeight(50)
self.checkBox.setFont(font)
self.checkBox.setObjectName("checkBox")
self.checkBox_2 = QtWidgets.QCheckBox(self.group_software)
self.checkBox_2.setGeometry(QtCore.QRect(10, 50, 241, 41))
font = QtGui.QFont()
font.setPointSize(8)
font.setBold(False)
font.setWeight(50)
self.checkBox_2.setFont(font)
self.checkBox_2.setObjectName("checkBox_2")
self.checkBox_3 = QtWidgets.QCheckBox(self.group_software)
self.checkBox_3.setGeometry(QtCore.QRect(10, 130, 241, 41))
font = QtGui.QFont()
font.setPointSize(8)
font.setBold(False)
font.setWeight(50)
self.checkBox_3.setFont(font)
self.checkBox_3.setObjectName("checkBox_3")
self.groupBox_2 = QtWidgets.QGroupBox(Form)
self.groupBox_2.setGeometry(QtCore.QRect(10, 220, 281, 251))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setItalic(False)
font.setUnderline(False)
font.setWeight(75)
font.setKerning(True)
font.setStyleStrategy(QtGui.QFont.StyleStrategy.PreferDefault)
self.groupBox_2.setFont(font)
self.groupBox_2.setObjectName("groupBox_2")
self.checkBox_4 = QtWidgets.QCheckBox(self.groupBox_2)
self.checkBox_4.setGeometry(QtCore.QRect(10, 20, 241, 41))
font = QtGui.QFont()
font.setPointSize(8)
font.setBold(False)
font.setWeight(50)
self.checkBox_4.setFont(font)
self.checkBox_4.setObjectName("checkBox_4")
self.checkBox_5 = QtWidgets.QCheckBox(self.groupBox_2)
self.checkBox_5.setGeometry(QtCore.QRect(10, 50, 241, 41))
font = QtGui.QFont()
font.setPointSize(8)
font.setBold(False)
font.setWeight(50)
self.checkBox_5.setFont(font)
self.checkBox_5.setObjectName("checkBox_5")
self.checkBox_6 = QtWidgets.QCheckBox(self.groupBox_2)
self.checkBox_6.setGeometry(QtCore.QRect(10, 80, 161, 41))
font = QtGui.QFont()
font.setPointSize(8)
font.setBold(False)
font.setWeight(50)
self.checkBox_6.setFont(font)
self.checkBox_6.setObjectName("checkBox_6")
self.pushButton = QtWidgets.QPushButton(self.groupBox_2)
self.pushButton.setGeometry(QtCore.QRect(160, 90, 101, 23))
font = QtGui.QFont()
font.setPointSize(8)
font.setBold(False)
font.setWeight(50)
self.pushButton.setFont(font)
self.pushButton.setStatusTip("")
self.pushButton.setWhatsThis("")
self.pushButton.setAccessibleDescription("")
self.pushButton.setAutoFillBackground(False)
icon = QtGui.QIcon()
icon.addPixmap(
QtGui.QPixmap(
"c:\\Users\\aky547\\GitHub\\Semesterapparate\\ui\\widgets\\../icons/information.png"
),
QtGui.QIcon.Mode.Normal,
QtGui.QIcon.State.Off,
)
self.pushButton.setIcon(icon)
self.pushButton.setCheckable(False)
self.pushButton.setChecked(False)
self.pushButton.setObjectName("pushButton")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.group_software.setToolTip(
_translate(
"Form",
"Hier klicken, um die aDIS Abfrage in die Zwischenablage zu kopieren",
)
)
self.group_software.setTitle(_translate("Form", "Software"))
self.checkBox.setText(_translate("Form", "Apparatsdaten eingegeben"))
self.checkBox_2.setText(_translate("Form", "Medien hinzugefügt / importiert"))
self.checkBox_3.setText(
_translate("Form", "Prof-ID und Apparat-ID eingetragen")
)
self.groupBox_2.setTitle(_translate("Form", "aDIS"))
self.checkBox_4.setText(_translate("Form", "Medien geprüft"))
self.checkBox_5.setText(_translate("Form", "Medien bearbeitet"))
self.checkBox_6.setText(_translate("Form", "Apparat angelegt"))
self.pushButton.setToolTip(
_translate(
"Form",
"Hier klicken, um die aDIS Abfrage in die Zwischenablage zu kopieren",
)
)
self.pushButton.setText(_translate("Form", " aDIS Abfrage"))

View File

@@ -0,0 +1,5 @@
__all__ = ["filepicker"]
from .collapse import StatusWidget
from .filepicker import FilePicker
from .graph import GraphWidget
from .Ui_message_widget import Ui_Form as Message_Widget

View File

@@ -0,0 +1,76 @@
# import pysignal pyslot
from PyQt6.QtCore import pyqtSignal
from PyQt6.QtWidgets import (
QApplication,
QTreeWidget,
QTreeWidgetItem,
QVBoxLayout,
QWidget,
)
class StatusWidget(QWidget):
person_double_clicked = pyqtSignal(str,str, int)
def __init__(self, data, header_label: str):
super(StatusWidget, self).__init__()
self.tree_widget = QTreeWidget()
self.tree_widget.setHeaderLabels([header_label])
self.populate_tree(data)
self.header = header_label
layout = QVBoxLayout()
layout.addWidget(self.tree_widget)
self.setLayout(layout)
self.tree_widget.itemDoubleClicked.connect(self.on_item_double_clicked)
def on_item_double_clicked(self, item: QTreeWidgetItem, column: int):
parent_depth = 0
parent = item.parent()
while parent:
parent_depth += 1
parent = parent.parent()
print(parent_depth)
# Emit the person_double_clicked signal with the name of the person and the parent depth
self.person_double_clicked.emit(self.header,item.text(column), parent_depth)
def populate_tree(self, data):
if data == {}:
return
def __listcount(dictlist: dict[dict[str:list]]):
ret = 0
for _, value in dictlist.items():
for _, value2 in value.items():
ret += len(value2)
return ret
listitems = __listcount(data)
for action, items in data.items():
action_item = QTreeWidgetItem(
self.tree_widget, [f"{action} ({str(listitems)})"]
)
for person, entries in items.items():
person_item = QTreeWidgetItem(
action_item, [f"{person} ({str(len(entries))})"]
)
for entry in entries:
entry_item = QTreeWidgetItem(person_item, [entry])
# Make the person entry collapsible
person_item.setExpanded(False)
# Make the action entry collapsible
action_item.setExpanded(True)
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
data = {"test": {"test2": ["test3", "test4"]}}
widget = StatusWidget(data, "test")
widget.show()
#detect emit signal
widget.person_double_clicked.connect(lambda x: print(x))
sys.exit(app.exec())

View File

@@ -0,0 +1,15 @@
from PyQt6 import QtCore, QtGui, QtWidgets
class CollapsibleWidget(object):
pass
from PyQt6 import QtCore, QtGui, QtWidgets
class CollapsibleWidget(object):
from PyQt6 import QtCore, QtGui, QtWidgets
class CollapsibleWidget(object):

View File

@@ -0,0 +1,29 @@
from PyQt6.QtWidgets import QFileDialog, QApplication
from PyQt6.QtCore import QSettings
import sys
class FilePicker:
def __init__(self):
self.settings = QSettings("PH-Freiburg", "SAP")
self.last_path = self.settings.value("last_path", "/")
self.multi_select = True
def pick_files(self):
filepicker = QFileDialog()
filepicker.setFileMode(QFileDialog.FileMode.ExistingFiles)
filepicker.setDirectory(self.last_path)
filepicker.setOption(QFileDialog.Option.DontUseNativeDialog, True)
#enable multi select
filepicker.setOption(QFileDialog.Option.DontUseCustomDirectoryIcons, True)
files, _ = filepicker.getOpenFileNames(caption='Open file', directory=self.last_path)
if files:
self.last_path = files[0]
self.settings.setValue("last_path", self.last_path)
return files
if __name__ == '__main__':
app = QApplication(sys.argv)
picker = FilePicker()
files = picker.pick_files()
print(files)

49
src/ui/widgets/graph.py Normal file
View File

@@ -0,0 +1,49 @@
import matplotlib
matplotlib.use("QtAgg")
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar
from matplotlib.figure import Figure
from PyQt6 import QtCore, QtWidgets
class graph(FigureCanvas):
def __init__(self, parent=None, width=5, height=4, dpi=100):
fig = Figure(figsize=(width, height), dpi=dpi)
self.axes = fig.add_subplot(111)
self.canvas = FigureCanvas(fig)
super().__init__(fig)
# display graph with multiple lines
class GraphWidget(QtWidgets.QWidget):
def __init__(self, parent=None, data=None, legend_labels=None):
super().__init__()
self.graph = graph(self, width=7, height=4.5, dpi=100)
self.graph.axes.plot(data["x"], data["y"], "r", data["x"], data["y2"], "b")
self.toolbar = NavigationToolbar(self.graph, self)
# set legend
self.graph.axes.legend(legend_labels, loc="upper left")
# set the layout
layout = QtWidgets.QVBoxLayout()
layout.addWidget(self.toolbar)
layout.addWidget(self.graph)
self.setLayout(layout)
# def set_area(self, top=1, bottom= 0.07, left=0.1, right=0.994,hspace=0.2,wspace=0.2):
# self.graph.
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
data = {
"x": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
"y": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
"y2": [10, 9, 8, 7, 6, 5, 4, 3, 2, 1],
}
widget = GraphWidget(data=data, legend_labels=["+", "-"])
widget.show()
sys.exit(app.exec())

View File

@@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>295</width>
<height>110</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>10</x>
<y>0</y>
<width>47</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>Apparat:</string>
</property>
</widget>
<widget class="QLineEdit" name="lineEdit">
<property name="enabled">
<bool>true</bool>
</property>
<property name="geometry">
<rect>
<x>60</x>
<y>0</y>
<width>41</width>
<height>20</height>
</rect>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>51</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>Nachricht:</string>
</property>
</widget>
<widget class="QTextEdit" name="textEdit">
<property name="geometry">
<rect>
<x>10</x>
<y>40</y>
<width>281</width>
<height>66</height>
</rect>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="inputMethodHints">
<set>Qt::ImhNone</set>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>210</x>
<y>10</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="text">
<string>Löschen</string>
</property>
</widget>
<widget class="QLabel" name="hidden_id">
<property name="geometry">
<rect>
<x>140</x>
<y>10</y>
<width>47</width>
<height>13</height>
</rect>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</widget>
<tabstops>
<tabstop>lineEdit</tabstop>
<tabstop>textEdit</tabstop>
</tabstops>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,258 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>300</width>
<height>751</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>300</width>
<height>751</height>
</size>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QGroupBox" name="group_software">
<property name="enabled">
<bool>true</bool>
</property>
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>281</width>
<height>211</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="toolTip">
<string>Hier klicken, um die aDIS Abfrage in die Zwischenablage zu kopieren</string>
</property>
<property name="statusTip">
<string/>
</property>
<property name="title">
<string>Software</string>
</property>
<property name="flat">
<bool>false</bool>
</property>
<property name="checkable">
<bool>false</bool>
</property>
<property name="checked">
<bool>false</bool>
</property>
<widget class="QCheckBox" name="checkBox">
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>241</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>8</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Apparatsdaten eingegeben</string>
</property>
</widget>
<widget class="QCheckBox" name="checkBox_2">
<property name="geometry">
<rect>
<x>10</x>
<y>50</y>
<width>241</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>8</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Medien hinzugefügt / importiert</string>
</property>
</widget>
<widget class="QCheckBox" name="checkBox_3">
<property name="geometry">
<rect>
<x>10</x>
<y>130</y>
<width>241</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>8</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Prof-ID und Apparat-ID eingetragen</string>
</property>
</widget>
</widget>
<widget class="QGroupBox" name="groupBox_2">
<property name="geometry">
<rect>
<x>10</x>
<y>220</y>
<width>281</width>
<height>251</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>75</weight>
<italic>false</italic>
<bold>true</bold>
<underline>false</underline>
<stylestrategy>PreferDefault</stylestrategy>
<kerning>true</kerning>
</font>
</property>
<property name="title">
<string>aDIS</string>
</property>
<widget class="QCheckBox" name="checkBox_4">
<property name="geometry">
<rect>
<x>10</x>
<y>20</y>
<width>241</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>8</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Medien geprüft</string>
</property>
</widget>
<widget class="QCheckBox" name="checkBox_5">
<property name="geometry">
<rect>
<x>10</x>
<y>50</y>
<width>241</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>8</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Medien bearbeitet</string>
</property>
</widget>
<widget class="QCheckBox" name="checkBox_6">
<property name="geometry">
<rect>
<x>10</x>
<y>80</y>
<width>161</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>8</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="text">
<string>Apparat angelegt</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>160</x>
<y>90</y>
<width>101</width>
<height>23</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>8</pointsize>
<weight>50</weight>
<bold>false</bold>
</font>
</property>
<property name="toolTip">
<string>Hier klicken, um die aDIS Abfrage in die Zwischenablage zu kopieren</string>
</property>
<property name="statusTip">
<string/>
</property>
<property name="whatsThis">
<string/>
</property>
<property name="accessibleDescription">
<string/>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="text">
<string> aDIS Abfrage</string>
</property>
<property name="icon">
<iconset>
<normaloff>../icons/information.png</normaloff>../icons/information.png</iconset>
</property>
<property name="checkable">
<bool>false</bool>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</widget>
</widget>
<resources/>
<connections/>
</ui>

View File

@@ -0,0 +1,16 @@
from PyQt6 import QtCore, QtGui, QtWidgets
from Ui_progress_overview_widget import Ui_Form
class Progress_view(Ui_Form):
def __init__(self, MainWindow):
super().__init__()
self.setupUi(MainWindow)
self.retranslateUi(MainWindow)
self.checkBox_3.setDisabled(True)
self.pushButton.clicked.connect(self.pushButton_clicked)
def pushButton_clicked(self):
# copies text to clipboard
clipboard = QtWidgets.QApplication.clipboard()
clipboard.setText("")