update settings to reflect latest changes

This commit is contained in:
WorldTeacher
2024-05-28 10:43:20 +02:00
parent 271f9a3309
commit 4774f103e2
3 changed files with 805 additions and 376 deletions

View File

@@ -1,22 +1,19 @@
# Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\Semesterapparate\ui\dialogs\settings.ui' # Form implementation generated from reading ui file 'c:\Users\aky547\GitHub\SemesterapparatsManager\src\ui\dialogs\dialog_sources\settings.ui'
# #
# Created by: PyQt6 UI code generator 6.3.1 # Created by: PyQt6 UI code generator 6.6.1
# #
# WARNING: Any manual changes made to this file will be lost when pyuic6 is # 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. # run again. Do not edit this file unless you know what you are doing.
from omegaconf import OmegaConf from PyQt6 import QtCore, QtGui, QtWidgets
from PyQt6 import QtCore, QtWidgets
config = OmegaConf.load("config.yaml")
class Ui_Dialog(object): class Ui_Dialog(object):
def setupUi(self, Dialog): def setupUi(self, Dialog):
Dialog.setObjectName("Dialog") Dialog.setObjectName("Dialog")
Dialog.resize(743, 576) Dialog.resize(743, 576)
self.buttonBox = QtWidgets.QDialogButtonBox(Dialog) self.buttonBox = QtWidgets.QDialogButtonBox(parent=Dialog)
self.buttonBox.setGeometry(QtCore.QRect(120, 540, 621, 32)) self.buttonBox.setGeometry(QtCore.QRect(120, 540, 621, 32))
self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal) self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
self.buttonBox.setStandardButtons( self.buttonBox.setStandardButtons(
@@ -24,58 +21,40 @@ class Ui_Dialog(object):
| QtWidgets.QDialogButtonBox.StandardButton.Ok | QtWidgets.QDialogButtonBox.StandardButton.Ok
) )
self.buttonBox.setObjectName("buttonBox") self.buttonBox.setObjectName("buttonBox")
self.frame = QtWidgets.QFrame(Dialog) self.frame = QtWidgets.QFrame(parent=Dialog)
self.frame.setGeometry(QtCore.QRect(0, 0, 741, 541)) self.frame.setGeometry(QtCore.QRect(0, 0, 741, 541))
self.frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel) self.frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
self.frame.setFrameShadow(QtWidgets.QFrame.Shadow.Raised) self.frame.setFrameShadow(QtWidgets.QFrame.Shadow.Raised)
self.frame.setObjectName("frame") self.frame.setObjectName("frame")
self.label = QtWidgets.QLabel(self.frame) self.label_2 = QtWidgets.QLabel(parent=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.setGeometry(QtCore.QRect(10, 20, 161, 21))
self.label_2.setObjectName("label_2") self.label_2.setObjectName("label_2")
self.os_apps = QtWidgets.QCheckBox(self.frame) self.formLayoutWidget = QtWidgets.QWidget(parent=self.frame)
self.os_apps.setGeometry(QtCore.QRect(410, 110, 161, 17)) self.formLayoutWidget.setGeometry(QtCore.QRect(10, 40, 361, 491))
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.formLayoutWidget.setObjectName("formLayoutWidget")
self.gridLayout = QtWidgets.QGridLayout(self.formLayoutWidget) self.gridLayout = QtWidgets.QGridLayout(self.formLayoutWidget)
self.gridLayout.setContentsMargins(0, 0, 0, 0) self.gridLayout.setContentsMargins(0, 0, 0, 0)
self.gridLayout.setObjectName("gridLayout") self.gridLayout.setObjectName("gridLayout")
self.label_3 = QtWidgets.QLabel(self.formLayoutWidget) self.tb_select_db = QtWidgets.QToolButton(parent=self.formLayoutWidget)
self.label_3.setObjectName("label_3") self.tb_select_db.setObjectName("tb_select_db")
self.gridLayout.addWidget(self.label_3, 0, 0, 1, 1) self.gridLayout.addWidget(self.tb_select_db, 0, 2, 1, 1)
self.label_5 = QtWidgets.QLabel(self.formLayoutWidget) self.db_path = QtWidgets.QLineEdit(parent=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.setEnabled(False)
self.db_path.setObjectName("db_path") self.db_path.setObjectName("db_path")
self.gridLayout.addWidget(self.db_path, 1, 1, 1, 1) self.gridLayout.addWidget(self.db_path, 1, 1, 1, 1)
self.save_path = QtWidgets.QLineEdit(self.formLayoutWidget) self.label_3 = QtWidgets.QLabel(parent=self.formLayoutWidget)
self.save_path.setObjectName("save_path") self.label_3.setObjectName("label_3")
self.gridLayout.addWidget(self.save_path, 2, 1, 1, 1) self.gridLayout.addWidget(self.label_3, 0, 0, 1, 1)
self.label_4 = QtWidgets.QLabel(self.formLayoutWidget) self.db_name = QtWidgets.QLineEdit(parent=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.db_name.setObjectName("db_name")
self.gridLayout.addWidget(self.db_name, 0, 1, 1, 1) self.gridLayout.addWidget(self.db_name, 0, 1, 1, 1)
self.tb_set_save_path = QtWidgets.QToolButton(self.formLayoutWidget) self.label_4 = QtWidgets.QLabel(parent=self.formLayoutWidget)
self.label_4.setObjectName("label_4")
self.gridLayout.addWidget(self.label_4, 1, 0, 1, 1)
self.save_path = QtWidgets.QLineEdit(parent=self.formLayoutWidget)
self.save_path.setObjectName("save_path")
self.gridLayout.addWidget(self.save_path, 2, 1, 1, 1)
self.tb_set_save_path = QtWidgets.QToolButton(parent=self.formLayoutWidget)
self.tb_set_save_path.setObjectName("tb_set_save_path") self.tb_set_save_path.setObjectName("tb_set_save_path")
self.gridLayout.addWidget(self.tb_set_save_path, 2, 2, 1, 1) self.gridLayout.addWidget(self.tb_set_save_path, 2, 2, 1, 1)
spacerItem = QtWidgets.QSpacerItem( spacerItem = QtWidgets.QSpacerItem(
@@ -85,60 +64,173 @@ class Ui_Dialog(object):
QtWidgets.QSizePolicy.Policy.Expanding, QtWidgets.QSizePolicy.Policy.Expanding,
) )
self.gridLayout.addItem(spacerItem, 3, 1, 1, 1) self.gridLayout.addItem(spacerItem, 3, 1, 1, 1)
self.tb_select_db = QtWidgets.QToolButton(self.formLayoutWidget) self.label_5 = QtWidgets.QLabel(parent=self.formLayoutWidget)
self.tb_select_db.setObjectName("tb_select_db") self.label_5.setObjectName("label_5")
self.gridLayout.addWidget(self.tb_select_db, 0, 2, 1, 1) self.gridLayout.addWidget(self.label_5, 2, 0, 1, 1)
self.scrollArea = QtWidgets.QScrollArea(self.frame) self.email_settings = QtWidgets.QTabWidget(parent=self.frame)
self.scrollArea.setGeometry(QtCore.QRect(400, 130, 331, 411)) self.email_settings.setGeometry(QtCore.QRect(390, 40, 341, 491))
self.scrollArea.setWidgetResizable(True) self.email_settings.setObjectName("email_settings")
self.scrollArea.setObjectName("scrollArea") self.email_settingsPage1_2 = QtWidgets.QWidget()
self.scrollAreaWidgetContents = QtWidgets.QWidget() self.email_settingsPage1_2.setObjectName("email_settingsPage1_2")
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 329, 409)) self.formLayoutWidget_2 = QtWidgets.QWidget(parent=self.email_settingsPage1_2)
self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents") self.formLayoutWidget_2.setGeometry(QtCore.QRect(10, 30, 321, 381))
self.treeWidget = QtWidgets.QTreeWidget(self.scrollAreaWidgetContents) self.formLayoutWidget_2.setObjectName("formLayoutWidget_2")
self.treeWidget.setGeometry(QtCore.QRect(0, 0, 331, 411)) self.gridLayout_2 = QtWidgets.QGridLayout(self.formLayoutWidget_2)
self.treeWidget.setObjectName("treeWidget") self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
self.treeWidget.setContextMenuPolicy( self.gridLayout_2.setObjectName("gridLayout_2")
QtCore.Qt.ContextMenuPolicy.ActionsContextMenu self.smtp_address = QtWidgets.QLineEdit(parent=self.formLayoutWidget_2)
self.smtp_address.setClearButtonEnabled(True)
self.smtp_address.setObjectName("smtp_address")
self.gridLayout_2.addWidget(self.smtp_address, 0, 1, 1, 1)
self.label_8 = QtWidgets.QLabel(parent=self.formLayoutWidget_2)
self.label_8.setObjectName("label_8")
self.gridLayout_2.addWidget(self.label_8, 3, 0, 1, 1)
self.use_username_smtp_login = QtWidgets.QCheckBox(
parent=self.formLayoutWidget_2
) )
self.scrollArea.setWidget(self.scrollAreaWidgetContents) self.use_username_smtp_login.setTristate(False)
self.use_username_smtp_login.setObjectName("use_username_smtp_login")
self.gridLayout_2.addWidget(self.use_username_smtp_login, 4, 1, 1, 1)
self.mail_username = QtWidgets.QLineEdit(parent=self.formLayoutWidget_2)
self.mail_username.setClearButtonEnabled(True)
self.mail_username.setObjectName("mail_username")
self.gridLayout_2.addWidget(self.mail_username, 3, 1, 1, 1)
self.smtp_port = QtWidgets.QLineEdit(parent=self.formLayoutWidget_2)
self.smtp_port.setInputMethodHints(
QtCore.Qt.InputMethodHint.ImhDigitsOnly
| QtCore.Qt.InputMethodHint.ImhPreferNumbers
)
self.smtp_port.setClearButtonEnabled(True)
self.smtp_port.setObjectName("smtp_port")
self.gridLayout_2.addWidget(self.smtp_port, 1, 1, 1, 1)
self.label_10 = QtWidgets.QLabel(parent=self.formLayoutWidget_2)
self.label_10.setObjectName("label_10")
self.gridLayout_2.addWidget(self.label_10, 5, 0, 1, 1)
self.label_7 = QtWidgets.QLabel(parent=self.formLayoutWidget_2)
self.label_7.setObjectName("label_7")
self.gridLayout_2.addWidget(self.label_7, 2, 0, 1, 1)
self.label_9 = QtWidgets.QLabel(parent=self.formLayoutWidget_2)
self.label_9.setText("")
self.label_9.setObjectName("label_9")
self.gridLayout_2.addWidget(self.label_9, 6, 0, 1, 1)
self.sender_email = QtWidgets.QLineEdit(parent=self.formLayoutWidget_2)
self.sender_email.setInputMethodHints(
QtCore.Qt.InputMethodHint.ImhEmailCharactersOnly
)
self.sender_email.setClearButtonEnabled(True)
self.sender_email.setObjectName("sender_email")
self.gridLayout_2.addWidget(self.sender_email, 2, 1, 1, 1)
self.label = QtWidgets.QLabel(parent=self.formLayoutWidget_2)
self.label.setObjectName("label")
self.gridLayout_2.addWidget(self.label, 0, 0, 1, 1)
self.password = QtWidgets.QLineEdit(parent=self.formLayoutWidget_2)
self.password.setInputMethodHints(
QtCore.Qt.InputMethodHint.ImhHiddenText
| QtCore.Qt.InputMethodHint.ImhSensitiveData
)
self.password.setClearButtonEnabled(True)
self.password.setObjectName("password")
self.gridLayout_2.addWidget(self.password, 5, 1, 1, 1)
self.label_6 = QtWidgets.QLabel(parent=self.formLayoutWidget_2)
self.label_6.setObjectName("label_6")
self.gridLayout_2.addWidget(self.label_6, 1, 0, 1, 1)
self.togglePassword = QtWidgets.QPushButton(parent=self.formLayoutWidget_2)
self.togglePassword.setText("")
self.togglePassword.setObjectName("togglePassword")
self.gridLayout_2.addWidget(self.togglePassword, 5, 2, 1, 1)
self.email_settings.addTab(self.email_settingsPage1_2, "")
self.email_settingsPage2_2 = QtWidgets.QWidget()
self.email_settingsPage2_2.setObjectName("email_settingsPage2_2")
self.verticalLayoutWidget = QtWidgets.QWidget(parent=self.email_settingsPage2_2)
self.verticalLayoutWidget.setGeometry(QtCore.QRect(0, 0, 333, 71))
self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setObjectName("verticalLayout")
self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
spacerItem1 = QtWidgets.QSpacerItem(
40,
20,
QtWidgets.QSizePolicy.Policy.Expanding,
QtWidgets.QSizePolicy.Policy.Minimum,
)
self.horizontalLayout_3.addItem(spacerItem1)
self.bold = QtWidgets.QPushButton(parent=self.verticalLayoutWidget)
self.bold.setCheckable(True)
self.bold.setObjectName("bold")
self.horizontalLayout_3.addWidget(self.bold)
self.italic = QtWidgets.QPushButton(parent=self.verticalLayoutWidget)
self.italic.setCheckable(True)
self.italic.setObjectName("italic")
self.horizontalLayout_3.addWidget(self.italic)
self.underscore = QtWidgets.QPushButton(parent=self.verticalLayoutWidget)
self.underscore.setCheckable(True)
self.underscore.setObjectName("underscore")
self.horizontalLayout_3.addWidget(self.underscore)
spacerItem2 = QtWidgets.QSpacerItem(
40,
20,
QtWidgets.QSizePolicy.Policy.Expanding,
QtWidgets.QSizePolicy.Policy.Minimum,
)
self.horizontalLayout_3.addItem(spacerItem2)
self.verticalLayout.addLayout(self.horizontalLayout_3)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.fontComboBox = QtWidgets.QFontComboBox(parent=self.verticalLayoutWidget)
self.fontComboBox.setObjectName("fontComboBox")
self.horizontalLayout.addWidget(self.fontComboBox)
self.font_size = QtWidgets.QComboBox(parent=self.verticalLayoutWidget)
self.font_size.setObjectName("font_size")
self.font_size.addItem("")
self.font_size.addItem("")
self.font_size.addItem("")
self.font_size.addItem("")
self.font_size.addItem("")
self.font_size.addItem("")
self.font_size.addItem("")
self.font_size.addItem("")
self.font_size.addItem("")
self.font_size.addItem("")
self.font_size.addItem("")
self.font_size.addItem("")
self.font_size.addItem("")
self.font_size.addItem("")
self.font_size.addItem("")
self.horizontalLayout.addWidget(self.font_size)
spacerItem3 = QtWidgets.QSpacerItem(
40,
20,
QtWidgets.QSizePolicy.Policy.Expanding,
QtWidgets.QSizePolicy.Policy.Minimum,
)
self.horizontalLayout.addItem(spacerItem3)
self.verticalLayout.addLayout(self.horizontalLayout)
self.editSignature = QtWidgets.QTextEdit(parent=self.email_settingsPage2_2)
self.editSignature.setGeometry(QtCore.QRect(10, 80, 321, 301))
self.editSignature.setObjectName("editSignature")
self.debug = QtWidgets.QPushButton(parent=self.email_settingsPage2_2)
self.debug.setGeometry(QtCore.QRect(30, 430, 75, 24))
self.debug.setObjectName("debug")
self.email_settings.addTab(self.email_settingsPage2_2, "")
self.label_3.setBuddy(self.db_name) self.label_3.setBuddy(self.db_name)
self.label_5.setBuddy(self.save_path)
self.label_4.setBuddy(self.db_path) self.label_4.setBuddy(self.db_path)
self.tb_select_db.clicked.connect(self.select_db) self.label_5.setBuddy(self.save_path)
self.tb_set_save_path.clicked.connect(self.set_save_path)
self.retranslateUi(Dialog) self.retranslateUi(Dialog)
self.email_settings.setCurrentIndex(0)
self.buttonBox.accepted.connect(Dialog.accept) # type: ignore self.buttonBox.accepted.connect(Dialog.accept) # type: ignore
self.buttonBox.rejected.connect(Dialog.reject) # type: ignore self.buttonBox.rejected.connect(Dialog.reject) # type: ignore
QtCore.QMetaObject.connectSlotsByName(Dialog) QtCore.QMetaObject.connectSlotsByName(Dialog)
Dialog.setTabOrder(self.db_name, self.db_path) Dialog.setTabOrder(self.db_name, self.db_path)
Dialog.setTabOrder(self.db_path, self.save_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): def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate _translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog")) 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.label_2.setText(_translate("Dialog", "Allgemeine Einstellungen"))
self.os_apps.setToolTip( self.tb_select_db.setText(_translate("Dialog", "..."))
_translate(
"Dialog",
"Verwendet im Betriebssystem festgelegte Anwendungen um Dateien zu öffnen",
)
)
self.os_apps.setText(_translate("Dialog", "Standard-Apps verwenden"))
self.label_3.setToolTip( self.label_3.setToolTip(
_translate( _translate(
"Dialog", "Dialog",
@@ -146,57 +238,57 @@ class Ui_Dialog(object):
) )
) )
self.label_3.setText(_translate("Dialog", "Datenbankname")) self.label_3.setText(_translate("Dialog", "Datenbankname"))
self.db_name.setText(_translate("Dialog", "sap.db"))
self.label_4.setText(_translate("Dialog", "Datenbankpfad"))
self.tb_set_save_path.setText(_translate("Dialog", "..."))
self.label_5.setToolTip( self.label_5.setToolTip(
_translate( _translate(
"Dialog", "Dialog",
"Pfad, an dem heruntergeladene Dateien gespeichert werden sollen", "Pfad, an dem heruntergeladene Dateien gespeichert werden sollen",
) )
) )
self.label_5.setText(_translate("Dialog", "Speicherpfad")) self.label_5.setText(_translate("Dialog", "Temporäre Dateien"))
self.label_4.setText(_translate("Dialog", "Datenbankpfad")) self.label_8.setText(_translate("Dialog", "Nutzername"))
self.db_name.setText(_translate("Dialog", "sap.db")) self.use_username_smtp_login.setStatusTip(
self.tb_set_save_path.setText(_translate("Dialog", "...")) _translate(
self.tb_select_db.setText(_translate("Dialog", "...")) "Dialog",
self.load_config() "Anklicken, wenn Nutzername benötigt wird, um sich beim Server anzumelden",
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): self.use_username_smtp_login.setText(
# open file dialog, limit to .db files _translate("Dialog", "Nutzername zum\n" " Anmelden verwenden")
file_dialog = QtWidgets.QFileDialog() )
file_dialog.setFileMode(QtWidgets.QFileDialog.FileMode.Directory) self.mail_username.setStatusTip(
file_dialog.setViewMode(QtWidgets.QFileDialog.ViewMode.Detail) _translate("Dialog", "Kürzel, von der Hochschule vergeben, bsp: Aky547")
if file_dialog.exec(): )
self.save_path.setText(file_dialog.selectedFiles()[0]) self.label_10.setText(_translate("Dialog", "Passwort"))
self.label_7.setText(_translate("Dialog", "Sender-eMail"))
def return_data(self): self.label.setText(_translate("Dialog", "SMTP-Server"))
config.database.name = self.db_name.text() self.label_6.setText(_translate("Dialog", "Port"))
config.database.path = self.db_path.text() self.email_settings.setTabText(
config.save_path = self.save_path.text() self.email_settings.indexOf(self.email_settingsPage1_2),
config.default_apps = self.os_apps.isChecked() _translate("Dialog", "Allgemeines"),
return config )
self.bold.setText(_translate("Dialog", "Fett"))
self.italic.setText(_translate("Dialog", "Kursiv"))
self.underscore.setText(_translate("Dialog", "Unterstrichen"))
self.font_size.setItemText(0, _translate("Dialog", "8"))
self.font_size.setItemText(1, _translate("Dialog", "9"))
self.font_size.setItemText(2, _translate("Dialog", "11"))
self.font_size.setItemText(3, _translate("Dialog", "12"))
self.font_size.setItemText(4, _translate("Dialog", "14"))
self.font_size.setItemText(5, _translate("Dialog", "16"))
self.font_size.setItemText(6, _translate("Dialog", "18"))
self.font_size.setItemText(7, _translate("Dialog", "20"))
self.font_size.setItemText(8, _translate("Dialog", "22"))
self.font_size.setItemText(9, _translate("Dialog", "24"))
self.font_size.setItemText(10, _translate("Dialog", "26"))
self.font_size.setItemText(11, _translate("Dialog", "28"))
self.font_size.setItemText(12, _translate("Dialog", "36"))
self.font_size.setItemText(13, _translate("Dialog", "48"))
self.font_size.setItemText(14, _translate("Dialog", "72"))
self.debug.setText(_translate("Dialog", "PushButton"))
self.email_settings.setTabText(
self.email_settings.indexOf(self.email_settingsPage2_2),
_translate("Dialog", "Signatur"),
)

View File

@@ -44,64 +44,6 @@
<property name="frameShadow"> <property name="frameShadow">
<enum>QFrame::Raised</enum> <enum>QFrame::Raised</enum>
</property> </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"> <widget class="QLabel" name="label_2">
<property name="geometry"> <property name="geometry">
<rect> <rect>
@@ -115,32 +57,30 @@ p, li { white-space: pre-wrap; }
<string>Allgemeine Einstellungen</string> <string>Allgemeine Einstellungen</string>
</property> </property>
</widget> </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"> <widget class="QWidget" name="formLayoutWidget">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>10</x> <x>10</x>
<y>50</y> <y>40</y>
<width>361</width> <width>361</width>
<height>491</height> <height>491</height>
</rect> </rect>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="0" column="2">
<widget class="QToolButton" name="tb_select_db">
<property name="text">
<string>...</string>
</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="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="label_3"> <widget class="QLabel" name="label_3">
<property name="toolTip"> <property name="toolTip">
@@ -154,29 +94,13 @@ p, li { white-space: pre-wrap; }
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="0"> <item row="0" column="1">
<widget class="QLabel" name="label_5"> <widget class="QLineEdit" name="db_name">
<property name="toolTip">
<string>Pfad, an dem heruntergeladene Dateien gespeichert werden sollen</string>
</property>
<property name="text"> <property name="text">
<string>Speicherpfad</string> <string>sap.db</string>
</property>
<property name="buddy">
<cstring>save_path</cstring>
</property> </property>
</widget> </widget>
</item> </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"> <item row="1" column="0">
<widget class="QLabel" name="label_4"> <widget class="QLabel" name="label_4">
<property name="text"> <property name="text">
@@ -187,12 +111,8 @@ p, li { white-space: pre-wrap; }
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="1"> <item row="2" column="1">
<widget class="QLineEdit" name="db_name"> <widget class="QLineEdit" name="save_path"/>
<property name="text">
<string>sap.db</string>
</property>
</widget>
</item> </item>
<item row="2" column="2"> <item row="2" column="2">
<widget class="QToolButton" name="tb_set_save_path"> <widget class="QToolButton" name="tb_set_save_path">
@@ -214,47 +134,356 @@ p, li { white-space: pre-wrap; }
</property> </property>
</spacer> </spacer>
</item> </item>
<item row="0" column="2"> <item row="2" column="0">
<widget class="QToolButton" name="tb_select_db"> <widget class="QLabel" name="label_5">
<property name="toolTip">
<string>Pfad, an dem heruntergeladene Dateien gespeichert werden sollen</string>
</property>
<property name="text"> <property name="text">
<string>...</string> <string>Temporäre Dateien</string>
</property>
<property name="buddy">
<cstring>save_path</cstring>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QScrollArea" name="scrollArea"> <widget class="QTabWidget" name="email_settings">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>400</x> <x>390</x>
<y>130</y> <y>40</y>
<width>331</width> <width>341</width>
<height>381</height> <height>491</height>
</rect> </rect>
</property> </property>
<property name="widgetResizable"> <property name="currentIndex">
<bool>true</bool> <number>0</number>
</property> </property>
<widget class="QWidget" name="scrollAreaWidgetContents"> <widget class="QWidget" name="email_settingsPage1_2" native="true">
<property name="geometry"> <attribute name="title">
<rect> <string>Allgemeines</string>
<x>0</x> </attribute>
<y>0</y> <widget class="QWidget" name="formLayoutWidget_2">
<width>329</width> <property name="geometry">
<height>379</height> <rect>
</rect> <x>10</x>
</property> <y>30</y>
<widget class="QTreeWidget" name="treeWidget"> <width>321</width>
<height>381</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="1">
<widget class="QLineEdit" name="smtp_address">
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>Nutzername</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QCheckBox" name="use_username_smtp_login">
<property name="statusTip">
<string>Anklicken, wenn Nutzername benötigt wird, um sich beim Server anzumelden</string>
</property>
<property name="text">
<string>Nutzername zum
Anmelden verwenden</string>
</property>
<property name="tristate">
<bool>false</bool>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="mail_username">
<property name="statusTip">
<string>Kürzel, von der Hochschule vergeben, bsp: Aky547</string>
</property>
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="smtp_port">
<property name="inputMethodHints">
<set>Qt::ImhDigitsOnly|Qt::ImhPreferNumbers</set>
</property>
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_10">
<property name="text">
<string>Passwort</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Sender-eMail</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="label_9">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="sender_email">
<property name="inputMethodHints">
<set>Qt::ImhEmailCharactersOnly</set>
</property>
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>SMTP-Server</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLineEdit" name="password">
<property name="inputMethodHints">
<set>Qt::ImhHiddenText|Qt::ImhSensitiveData</set>
</property>
<property name="clearButtonEnabled">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Port</string>
</property>
</widget>
</item>
<item row="5" column="2">
<widget class="QPushButton" name="togglePassword">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
<widget class="QWidget" name="email_settingsPage2_2" native="true">
<attribute name="title">
<string>Signatur</string>
</attribute>
<widget class="QWidget" name="verticalLayoutWidget">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>331</width> <width>333</width>
<height>381</height> <height>71</height>
</rect> </rect>
</property> </property>
<property name="contextMenuPolicy"> <layout class="QVBoxLayout" name="verticalLayout">
<enum>Qt::ActionsContextMenu</enum> <item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<spacer name="horizontalSpacer_3">
<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>
<widget class="QPushButton" name="bold">
<property name="text">
<string>Fett</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="italic">
<property name="text">
<string>Kursiv</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="underscore">
<property name="text">
<string>Unterstrichen</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<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>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QFontComboBox" name="fontComboBox"/>
</item>
<item>
<widget class="QComboBox" name="font_size">
<item>
<property name="text">
<string>8</string>
</property>
</item>
<item>
<property name="text">
<string>9</string>
</property>
</item>
<item>
<property name="text">
<string>11</string>
</property>
</item>
<item>
<property name="text">
<string>12</string>
</property>
</item>
<item>
<property name="text">
<string>14</string>
</property>
</item>
<item>
<property name="text">
<string>16</string>
</property>
</item>
<item>
<property name="text">
<string>18</string>
</property>
</item>
<item>
<property name="text">
<string>20</string>
</property>
</item>
<item>
<property name="text">
<string>22</string>
</property>
</item>
<item>
<property name="text">
<string>24</string>
</property>
</item>
<item>
<property name="text">
<string>26</string>
</property>
</item>
<item>
<property name="text">
<string>28</string>
</property>
</item>
<item>
<property name="text">
<string>36</string>
</property>
</item>
<item>
<property name="text">
<string>48</string>
</property>
</item>
<item>
<property name="text">
<string>72</string>
</property>
</item>
</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>
</item>
</layout>
</widget>
<widget class="QTextEdit" name="editSignature">
<property name="geometry">
<rect>
<x>10</x>
<y>80</y>
<width>321</width>
<height>301</height>
</rect>
</property>
</widget>
<widget class="QPushButton" name="debug">
<property name="geometry">
<rect>
<x>30</x>
<y>430</y>
<width>75</width>
<height>24</height>
</rect>
</property>
<property name="text">
<string>PushButton</string>
</property> </property>
</widget> </widget>
</widget> </widget>
@@ -265,8 +494,6 @@ p, li { white-space: pre-wrap; }
<tabstop>db_name</tabstop> <tabstop>db_name</tabstop>
<tabstop>db_path</tabstop> <tabstop>db_path</tabstop>
<tabstop>save_path</tabstop> <tabstop>save_path</tabstop>
<tabstop>os_apps</tabstop>
<tabstop>textBrowser</tabstop>
</tabstops> </tabstops>
<resources> <resources>
<include location="../resources.qrc"/> <include location="../resources.qrc"/>

View File

@@ -1,23 +1,110 @@
from omegaconf import OmegaConf from omegaconf import OmegaConf
from PyQt6 import QtWidgets from PyQt6 import QtCore, QtGui, QtWidgets
from .dialog_sources.Ui_settings import Ui_Dialog as _settings from .dialog_sources.Ui_settings import Ui_Dialog as _settings
config = OmegaConf.load("config.yaml") config = OmegaConf.load("config.yaml")
_style = "<span style={style}>"
_style_editable = "<span style={style}>{text}</span>"
_italic = " font-style:italic;"
_bold = " font-weight:700;"
_underscore = " text-decoration: underline;"
_text_start = "<span>"
_text_end = "</span>"
class Settings(_settings): class Settings(QtWidgets.QDialog, _settings):
def __init__(self): def __init__(self):
super().__init__() super().__init__()
self.setupUi(self) self.setupUi(self)
self.password.setEchoMode(QtWidgets.QLineEdit.EchoMode.Password)
self.editSignature.setAcceptRichText(True)
self.editSignature.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus)
self.bold.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.italic.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.underscore.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.font_size.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.fontComboBox.setFocusPolicy(QtCore.Qt.FocusPolicy.NoFocus)
self.font_size.setCurrentText("9")
# add button to toggle password visibility
self.showPassword = True
self.togglePassword.clicked.connect(self.toggle_password)
self.tb_select_db.clicked.connect(self.select_db)
self.tb_set_save_path.clicked.connect(self.set_save_path)
self.bold.clicked.connect(self.setFontBold)
self.italic.clicked.connect(self.setTextFontItalic)
self.underscore.clicked.connect(self.setTextFontUnderline)
self.font_size.currentTextChanged.connect(self.setFontSize)
self.fontComboBox.currentFontChanged.connect(self.setCurrentFont)
self.debug.clicked.connect(self.debug_mode)
self.toggle_password()
self.retranslateUi(self) self.retranslateUi(self)
self.load_config() self.load_config()
self.buttonBox.accepted.connect(self.save)
def load_config(self): def load_config(self):
self.db_name.setText(config.database.name) self.db_name.setText(config.database.name)
self.db_path.setText(config.database.path) self.db_path.setText(config.database.path)
self.save_path.setText(config.save_path) self.save_path.setText(config.save_path)
self.os_apps.setChecked(config.default_apps) self.smtp_address.setText(config.mail.smtp_server)
self.smtp_port.setText(str(config.mail.port))
self.sender_email.setText(config.mail.sender)
self.mail_username.setText(config.mail.user_name)
self.password.setText(config.mail.password)
self.use_username_smtp_login.setChecked(config.mail.use_user_name)
self.editSignature.setHtml(config.mail.signature)
def setCurrentFont(self):
font = self.fontComboBox.currentFont()
font.setPointSize(int(self.font_size.currentText()))
self.editSignature.setFont(font)
def setFontSize(self):
size = self.font_size.currentText()
self.editSignature.setFontPointSize(int(size))
def toggle_password(self):
self.togglePassword.setIconSize(QtCore.QSize(16, 16))
on_icon = QtGui.QIcon()
off_icon = QtGui.QIcon()
on_icon.addPixmap(
QtGui.QPixmap("icons/visibility_on.svg"),
QtGui.QIcon.Mode.Normal,
QtGui.QIcon.State.On,
)
off_icon.addPixmap(
QtGui.QPixmap("icons/visibility_off.svg"),
QtGui.QIcon.Mode.Normal,
QtGui.QIcon.State.On,
)
if self.showPassword is False:
self.password.setEchoMode(QtWidgets.QLineEdit.EchoMode.Normal)
self.togglePassword.setIcon(off_icon)
self.showPassword = True
else:
self.password.setEchoMode(QtWidgets.QLineEdit.EchoMode.Password)
self.togglePassword.setIcon(on_icon)
self.showPassword = False
def setFontBold(self):
if self.bold.isChecked():
self.editSignature.setFontWeight(QtGui.QFont.Weight.Bold)
else:
self.editSignature.setFontWeight(QtGui.QFont.Weight.Normal)
def setTextFontItalic(self):
if self.italic.isChecked():
self.editSignature.setFontItalic(True)
else:
self.editSignature.setFontItalic(False)
def setTextFontUnderline(self):
if self.underscore.isChecked():
self.editSignature.setFontUnderline(True)
else:
self.editSignature.setFontUnderline(False)
def select_db(self): def select_db(self):
# open file dialog, limit to .db files # open file dialog, limit to .db files
@@ -33,16 +120,39 @@ class Settings(_settings):
def set_save_path(self): def set_save_path(self):
# open file dialog, limit to .db files # open file dialog, limit to .db files
file_dialog = QtWidgets.QFileDialog() file_dialog = QtWidgets.QFileDialog(filter="Ordner auswählen")
file_dialog.setFileMode(QtWidgets.QFileDialog.FileMode.Directory) file_dialog.setFileMode(QtWidgets.QFileDialog.FileMode.Directory)
file_dialog.setViewMode(QtWidgets.QFileDialog.ViewMode.Detail) file_dialog.setViewMode(QtWidgets.QFileDialog.ViewMode.Detail)
if file_dialog.exec(): if file_dialog.exec():
self.save_path.setText(file_dialog.selectedFiles()[0]) self.save_path.setText(file_dialog.selectedFiles()[0])
def debug_mode(self):
print(self.editSignature.toHtml())
def return_data(self): def return_data(self):
config.database.name = self.db_name.text() config.database.name = self.db_name.text()
config.database.path = self.db_path.text() config.database.path = self.db_path.text()
config.save_path = self.save_path.text() config.save_path = self.save_path.text()
config.default_apps = self.os_apps.isChecked() config.mail.smtp_server = self.smtp_address.text()
config.mail.port = int(self.smtp_port.text())
config.mail.sender = self.sender_email.text()
config.mail.user_name = self.mail_username.text()
config.mail.password = self.password.text()
config.mail.use_user_name = self.use_username_smtp_login.isChecked()
config.mail.signature = self.editSignature.toHtml()
return config return config
def save(self):
config = self.return_data()
OmegaConf.save(config, "config.yaml")
self.accept()
def launch_settings():
import sys
app = QtWidgets.QApplication(sys.argv)
window = Settings()
window.show()
sys.exit(app.exec())