Add a new dialog to get database settings. Fixes: #5

Added a new dialog for database settings.
Updated dbConfig to use QSettings.
This commit is contained in:
Christopher T. Johnson
2025-02-25 09:56:53 -05:00
parent 9a60a5adb5
commit d46281fda7
5 changed files with 507 additions and 17 deletions

View File

@@ -1,16 +1,21 @@
#!venv/bin/python3
import faulthandler
import sys
from typing import cast
from PySide6.QtCore import QSettings
from PySide6.QtCore import QFile
from PySide6.QtSql import (
QSqlDatabase,
)
from PySide6.QtWidgets import (
QApplication,
QDialog,
QMainWindow,
)
from lib.dbConfig import updateDatabase
from lib.utils import openSettings
from setupDialog import setupDialog
faulthandler.enable()
@@ -21,16 +26,25 @@ def main() -> int:
#
app = QApplication(sys.argv)
settings = openSettings('database')
file = QFile(settings.fileName())
if not file.exists():
result = setupDialog().exec()
if result == QDialog.DialogCode.Rejected:
print(f"We require database credentials")
return(2)
updateDatabase(settings)
db = QSqlDatabase.addDatabase("QMYSQL")
db.setHostName(settings.value("hostname"))
portStr = cast(str, settings.value('port', '3306'))
db.setPort(int(portStr))
db.setDatabaseName(settings.value("databasename","scotus")) # type: ignore
db.setUserName(settings.value("user","scotus")) # type: ignore
db.setPassword(settings.value("password"))
settings.endGroup()
db.open()
import lib.dbConfig
window = MainWindow()
assert isinstance(window, QMainWindow)
return app.exec()