new settings class

This commit is contained in:
WorldTeacher
2024-09-11 15:39:06 +02:00
parent a72d76b94e
commit 95d3de6490
4 changed files with 110 additions and 44 deletions

View File

@@ -20,6 +20,11 @@ class Settings(QtWidgets.QDialog, Ui_Dialog):
self.database_path.textChanged.connect(self.enableButtonBox)
self.database_name.textChanged.connect(self.enableButtonBox)
self.database_name.textChanged.connect(self.enableButtonBox)
self.delete_inactive_user_duration.textChanged.connect(self.enableButtonBox)
self.report_path.textChanged.connect(self.enableButtonBox)
self.report_day.currentIndexChanged.connect(self.enableButtonBox)
self.check_generate_report.stateChanged.connect(self.enableButtonBox)
# buttonbox
self.buttonBox.accepted.connect(self.saveSettings)
@@ -41,6 +46,10 @@ class Settings(QtWidgets.QDialog, Ui_Dialog):
)
self.btn_select_database_path.clicked.connect(self.selectDatabasePath)
self.btn_select_database_name.clicked.connect(self.selectDatabaseName)
self.btn_select_report_path.clicked.connect(self.selectReportPath)
#variables
self.settingschanged = False
def enableButtonBox(self):
self.buttonBox.button(QtWidgets.QDialogButtonBox.StandardButton.Ok).setEnabled(
@@ -63,6 +72,18 @@ class Settings(QtWidgets.QDialog, Ui_Dialog):
self.buttonBox.button(QtWidgets.QDialogButtonBox.StandardButton.Ok).setEnabled(
True
)
def selectReportPath(self):
reportPath = QtWidgets.QFileDialog.getExistingDirectory(
self, "Select Report Path", self.originalSettings.report.path
)
self.report_path.setText(reportPath)
self.buttonBox.button(
QtWidgets.QDialogButtonBox.StandardButton.Discard
).setEnabled(True)
self.buttonBox.button(QtWidgets.QDialogButtonBox.StandardButton.Ok).setEnabled(
True
)
def selectDatabasePath(self):
databasePath = QtWidgets.QFileDialog.getExistingDirectory(
@@ -97,18 +118,26 @@ class Settings(QtWidgets.QDialog, Ui_Dialog):
# save settings to config file
institution_name = self.institution_name.text()
default_loan_duration = int(self.default_loan_duration.text())
delete_inactive_users = int(self.delete_inactive_user_duration.text())
database_backupLocation = self.database_backupLocation.text()
database_path = self.database_path.text()
database_name = self.database_name.text()
report_day = self.report_day.currentIndex()
report_generate = self.check_generate_report.isChecked()
report_path = self.report_path.text()
# overwrite the original settings
self.originalSettings.institution_name = institution_name
self.originalSettings.default_loan_duration = default_loan_duration
self.originalSettings.loan_duration = default_loan_duration
self.originalSettings.database.backupLocation = database_backupLocation
self.originalSettings.database.path = database_path
self.originalSettings.database.name = database_name
self.originalSettings.delete_inactive_user_duration = delete_inactive_users
self.originalSettings.report.report_day = report_day
self.originalSettings.report.path = report_path
self.originalSettings.report.generate_report = report_generate
# save the new settings
OmegaConf.save(self.originalSettings, "config/settings.yaml")
config.save()
self.settingschanged = True
self.close()
def DiscardSettings(self):
@@ -117,14 +146,20 @@ class Settings(QtWidgets.QDialog, Ui_Dialog):
def loadSettings(self):
self.institution_name.setText(self.originalSettings.institution_name)
self.default_loan_duration.setText(
str(self.originalSettings.default_loan_duration)
self.default_loan_duration.setValue(
int(self.originalSettings.loan_duration)
)
self.delete_inactive_user_duration.setValue(
int(self.originalSettings.delete_inactive_user_duration)
)
self.database_backupLocation.setText(
self.originalSettings.database.backupLocation
)
self.database_path.setText(self.originalSettings.database.path)
self.database_name.setText(self.originalSettings.database.name)
self.report_day.setCurrentIndex(self.originalSettings.report.report_day -1)
self.check_generate_report.setChecked(self.originalSettings.report.generate_report)
self.report_path.setText(self.originalSettings.report.path)
pass