This commit is contained in:
Christopher T. Johnson
2025-02-25 10:14:44 -05:00
parent d46281fda7
commit 49de6b1f35
6 changed files with 49 additions and 36 deletions

View File

@@ -175,6 +175,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
writeGeometry(self)
super().closeEvent(event)
return
@Slot(QModelIndex) # type: ignore
def rowClicked(self, index: QModelIndex) -> None:
if not index.isValid():

View File

@@ -1,6 +1,5 @@
from datetime import date
from PySide6.QtCore import QSettings
from pony.orm import ( # type: ignore[import-untyped]
Database,
LongStr,
@@ -10,9 +9,11 @@ from pony.orm import ( # type: ignore[import-untyped]
Set,
set_sql_debug,
)
from PySide6.QtCore import QSettings
db = Database()
class Cases(db.Entity): # type: ignore[name-defined]
case_id = PrimaryKey(int, auto=True)
docket_id = Required(str)
@@ -49,15 +50,15 @@ class History(db.Entity): # type: ignore[name-defined]
def updateDatabase(settings: QSettings) -> None:
set_sql_debug(True)
engine = settings.value('engine')
if engine not in ['QMYSQL', 'MARIADB']:
engine = settings.value("engine")
if engine not in ["QMYSQL", "MARIADB"]:
raise Exception(f"Unknown database engine: {engine}")
db.bind(
provider="mysql",
user=settings.value('user'),
host=settings.value('hostname'),
database=settings.value('databasename'),
password=settings.value('password'),
user=settings.value("user"),
host=settings.value("hostname"),
database=settings.value("databasename"),
password=settings.value("password"),
)
db.generate_mapping(create_tables=True)
db.disconnect()

View File

@@ -1,6 +1,13 @@
from typing import NoReturn, cast
from PySide6.QtCore import QByteArray, QCoreApplication, QObject, QRect, QSettings, Signal
from PySide6.QtCore import (
QByteArray,
QCoreApplication,
QObject,
QRect,
QSettings,
Signal,
)
from PySide6.QtGui import QColor, QFont
from PySide6.QtSql import QSqlQuery
from PySide6.QtWidgets import QStyleOptionViewItem, QWidget
@@ -29,23 +36,26 @@ class QStyleOptionViewItemInit(QStyleOptionViewItem):
font: QFont
text: str
def openSettings(group:str|None = None) -> QSettings:
def openSettings(group: str | None = None) -> QSettings:
settings = QSettings("Troglodite Services", "SCOTUS Watch")
if group is not None:
settings.beginGroup(group)
return settings
def readGeometry(widget:QWidget) -> None:
def readGeometry(widget: QWidget) -> None:
settings = openSettings(widget.objectName())
geometry = settings.value('geometry', QByteArray())
geometry = settings.value("geometry", QByteArray())
assert isinstance(geometry, QByteArray)
if not geometry.isEmpty():
widget.restoreGeometry(geometry)
settings.endGroup()
return
def writeGeometry(widget: QWidget) -> None:
settings = openSettings(widget.objectName())
settings.setValue('geometry', widget.saveGeometry())
settings.setValue("geometry", widget.saveGeometry())
settings.endGroup()
return

View File

@@ -83,7 +83,7 @@ class PDFViewer(QDialog, Ui_pdfViewer):
def __init__(self, parent: QWidget | None) -> None:
super(PDFViewer, self).__init__(parent)
self.setupUi(self)
self.setObjectName('PDFViewer')
self.setObjectName("PDFViewer")
readGeometry(self)
print(self.objectName())
self.zoomSelector = ZoomSelector(self)

View File

@@ -25,20 +25,20 @@ from MainWindow import MainWindow
def main() -> int:
#
app = QApplication(sys.argv)
settings = openSettings('database')
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)
return 2
updateDatabase(settings)
db = QSqlDatabase.addDatabase("QMYSQL")
db.setHostName(settings.value("hostname"))
portStr = cast(str, settings.value('port', '3306'))
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.setDatabaseName(settings.value("databasename", "scotus")) # type: ignore
db.setUserName(settings.value("user", "scotus")) # type: ignore
db.setPassword(settings.value("password"))
settings.endGroup()
db.open()

View File

@@ -1,20 +1,21 @@
from PySide6.QtCore import Slot, Qt
from PySide6.QtCore import Qt, Slot
from PySide6.QtGui import QPalette
from PySide6.QtWidgets import QDialog, QStatusBar, QVBoxLayout, QWidget
from lib.utils import openSettings
from ui.dbSetup import Ui_setupDialog
class setupDialog(QDialog,Ui_setupDialog):
def __init__(self, parent: QWidget | None = None):
super(setupDialog,self).__init__(parent)
class setupDialog(QDialog, Ui_setupDialog):
def __init__(self, parent: QWidget | None = None) -> None:
super(setupDialog, self).__init__(parent)
self.setupUi(self)
self.sqliteEdit.setEnabled(False)
layout = self.layout()
assert isinstance(layout, QVBoxLayout)
self.statusBar = QStatusBar(self)
self.statusBar.setObjectName('statusBar')
self.statusBar.setObjectName("statusBar")
where = layout.indexOf(self.buttonBox)
layout.insertWidget(where, self.statusBar)
self.pwEdit.editingFinished.connect(self.pwDone)
@@ -22,7 +23,7 @@ class setupDialog(QDialog,Ui_setupDialog):
return
@Slot()
def pwDone(self):
def pwDone(self) -> None:
pw = self.pwEdit.text()
confirm = self.pwConfirmEdit.text()
@@ -38,28 +39,28 @@ class setupDialog(QDialog,Ui_setupDialog):
return
@Slot(int) # type: ignore
def done(self, r:int) -> None:
def done(self, r: int) -> None:
if r == QDialog.DialogCode.Rejected:
super(setupDialog,self).done(r)
super(setupDialog, self).done(r)
return
self.pwDone()
if not self.pwGood:
return
super(setupDialog,self).done(r)
super(setupDialog, self).done(r)
return
@Slot()
def accept(self) -> None:
settings=openSettings('database')
settings.setValue('hostname', self.hostEdit.text())
settings.setValue('databasename', self.dbEdit.text())
settings.setValue('user',self.userEdit.text())
settings.setValue('password', self.pwEdit.text())
settings.setValue('port', self.portEdit.text())
settings = openSettings("database")
settings.setValue("hostname", self.hostEdit.text())
settings.setValue("databasename", self.dbEdit.text())
settings.setValue("user", self.userEdit.text())
settings.setValue("password", self.pwEdit.text())
settings.setValue("port", self.portEdit.text())
if self.comboBox.currentIndex() == 0:
settings.setValue('engine', 'QMYSQL')
settings.setValue("engine", "QMYSQL")
elif self.comboBox.currentIndex() == 1:
settings.setValue('engine', 'QSQLITE')
settings.setValue("engine", "QSQLITE")
# Other types: QDB2, QIBASE, QOCI, QODBC, QPSQL, QMIMER
else:
print("Bad Database Type")