Files
scotus-watch/scotus-pull.py
Christopher T. Johnson d46281fda7 Add a new dialog to get database settings. Fixes: #5
Added a new dialog for database settings.
Updated dbConfig to use QSettings.
2025-02-25 09:56:53 -05:00

53 lines
1.3 KiB
Python
Executable File

#!venv/bin/python3
import faulthandler
import sys
from typing import cast
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()
from MainWindow import MainWindow
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()
window = MainWindow()
assert isinstance(window, QMainWindow)
return app.exec()
if __name__ == "__main__":
sys.exit(main())