update settings to reflect latest changes
This commit is contained in:
@@ -1,48 +1,158 @@
|
||||
from omegaconf import OmegaConf
|
||||
from PyQt6 import QtWidgets
|
||||
|
||||
from .dialog_sources.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
|
||||
from omegaconf import OmegaConf
|
||||
from PyQt6 import QtCore, QtGui, QtWidgets
|
||||
|
||||
from .dialog_sources.Ui_settings import Ui_Dialog as _settings
|
||||
|
||||
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(QtWidgets.QDialog, _settings):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
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.load_config()
|
||||
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.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):
|
||||
# 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(filter="Ordner auswählen")
|
||||
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 debug_mode(self):
|
||||
print(self.editSignature.toHtml())
|
||||
|
||||
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.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
|
||||
|
||||
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())
|
||||
|
||||
Reference in New Issue
Block a user