feat: create config class to replace use of config file in application

This commit is contained in:
WorldTeacher
2024-10-29 16:07:30 +01:00
parent 2137799f9b
commit f3eed7486d
13 changed files with 224 additions and 111 deletions

View File

@@ -1,11 +1,9 @@
from omegaconf import OmegaConf
from PyQt6 import QtCore, QtGui, QtWidgets
from src import Icon
from src import Icon, settings
from .dialog_sources.Ui_settings import Ui_Dialog as _settings
config = OmegaConf.load("config.yaml")
base = """'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style
@@ -61,18 +59,18 @@ class Settings(QtWidgets.QDialog, _settings):
self.buttonBox.accepted.connect(self.save)
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.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.db_name.setText(settings.database.name)
self.db_path.setText(settings.database.path)
self.save_path.setText(settings.save_path)
self.smtp_address.setText(settings.mail.smtp_server)
self.smtp_port.setText(str(settings.mail.port))
self.sender_email.setText(settings.mail.sender)
self.mail_username.setText(settings.mail.user_name)
self.password.setText(settings.mail.password)
self.use_username_smtp_login.setChecked(
config.mail.use_user_name if config.mail.use_user_name else False
settings.mail.use_user_name if settings.mail.use_user_name else False
)
self.editSignature.setHtml(config.mail.signature)
self.editSignature.setHtml(settings.mail.signature)
def setCurrentFont(self):
font = self.fontComboBox.currentFont()
@@ -148,22 +146,28 @@ class Settings(QtWidgets.QDialog, _settings):
signature = signature
else:
signature = ""
config.database.name = self.db_name.text()
config.database.path = self.db_path.text()
config.save_path = self.save_path.text()
config.mail.smtp_server = self.smtp_address.text()
config.mail.port = port
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 = signature
return config
settings.set_database_attr("name", self.db_name.text())
settings.set_database_attr("path", self.db_path.text())
settings.save_path = self.save_path.text()
settings.set_mail_attr("smtp_server", self.smtp_address.text())
settings.set_mail_attr("port", port)
settings.set_mail_attr("sender", self.sender_email.text())
settings.set_mail_attr("user_name", self.mail_username.text())
settings.set_mail_attr("password", self.password.text())
settings.set_mail_attr(
"use_user_name", self.use_username_smtp_login.isChecked()
)
settings.set_mail_attr("signature", signature)
print("Settings:")
print(settings)
return settings
def save(self):
config = self.return_data()
OmegaConf.save(config, "config.yaml")
print(config.mail)
print("Saving config")
print(config)
config.save()
self.accept()