53 lines
1.3 KiB
Python
Executable File
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())
|