@@ -1,15 +1,18 @@
|
||||
from typing import Any, cast
|
||||
|
||||
from PySide6.QtCore import (
|
||||
QByteArray,
|
||||
QDate,
|
||||
QModelIndex,
|
||||
QPersistentModelIndex,
|
||||
QPoint,
|
||||
QSettings,
|
||||
Qt,
|
||||
Signal,
|
||||
Slot,
|
||||
)
|
||||
from PySide6.QtGui import (
|
||||
QCloseEvent,
|
||||
QColor,
|
||||
)
|
||||
from PySide6.QtSql import QSqlTableModel
|
||||
@@ -22,7 +25,7 @@ from PySide6.QtWidgets import (
|
||||
)
|
||||
|
||||
from docketModel import docketModel
|
||||
from lib.utils import QStyleOptionViewItemInit
|
||||
from lib.utils import QStyleOptionViewItemInit, readGeometry, writeGeometry
|
||||
from ui.MainWindow import Ui_MainWindow
|
||||
from workers import updateThread
|
||||
|
||||
@@ -118,6 +121,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
def __init__(self) -> None:
|
||||
super(MainWindow, self).__init__()
|
||||
self.setupUi(self)
|
||||
readGeometry(self)
|
||||
|
||||
model = casesModel()
|
||||
model.setTable("cases")
|
||||
@@ -167,6 +171,10 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
||||
)
|
||||
return
|
||||
|
||||
def closeEvent(self, event: QCloseEvent) -> None:
|
||||
writeGeometry(self)
|
||||
super().closeEvent(event)
|
||||
return
|
||||
@Slot(QModelIndex) # type: ignore
|
||||
def rowClicked(self, index: QModelIndex) -> None:
|
||||
if not index.isValid():
|
||||
|
||||
23
lib/utils.py
23
lib/utils.py
@@ -1,6 +1,6 @@
|
||||
from typing import NoReturn, cast
|
||||
|
||||
from PySide6.QtCore import QCoreApplication, QObject, QRect, 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
|
||||
@@ -28,3 +28,24 @@ class QStyleOptionViewItemInit(QStyleOptionViewItem):
|
||||
widget: QWidget
|
||||
font: QFont
|
||||
text: str
|
||||
|
||||
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:
|
||||
settings = openSettings(widget.objectName())
|
||||
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.endGroup()
|
||||
return
|
||||
|
||||
11
pdfView.py
11
pdfView.py
@@ -1,10 +1,12 @@
|
||||
import math
|
||||
|
||||
from PySide6.QtCore import QFile, QModelIndex, QPoint, Signal, Slot
|
||||
from PySide6.QtGui import QCloseEvent
|
||||
from PySide6.QtPdf import QPdfBookmarkModel, QPdfDocument
|
||||
from PySide6.QtPdfWidgets import QPdfView
|
||||
from PySide6.QtWidgets import QComboBox, QDialog, QMenuBar, QSpinBox, QWidget
|
||||
|
||||
from lib.utils import readGeometry, writeGeometry
|
||||
from ui.pdfViewer import Ui_pdfViewer
|
||||
|
||||
ZOOM_MULTIPLIER = math.sqrt(2.0)
|
||||
@@ -81,7 +83,9 @@ class PDFViewer(QDialog, Ui_pdfViewer):
|
||||
def __init__(self, parent: QWidget | None) -> None:
|
||||
super(PDFViewer, self).__init__(parent)
|
||||
self.setupUi(self)
|
||||
|
||||
self.setObjectName('PDFViewer')
|
||||
readGeometry(self)
|
||||
print(self.objectName())
|
||||
self.zoomSelector = ZoomSelector(self)
|
||||
self.pageSelector = QSpinBox(self)
|
||||
self.document = QPdfDocument(self)
|
||||
@@ -113,6 +117,11 @@ class PDFViewer(QDialog, Ui_pdfViewer):
|
||||
)
|
||||
return
|
||||
|
||||
def closeEvent(self, event: QCloseEvent) -> None:
|
||||
writeGeometry(self)
|
||||
super().closeEvent(event)
|
||||
return
|
||||
|
||||
@Slot(QFile) # type: ignore
|
||||
def open(self, file: QFile) -> None:
|
||||
# assert file.exists()
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
import faulthandler
|
||||
import sys
|
||||
|
||||
from PySide6.QtCore import QSettings
|
||||
from PySide6.QtSql import (
|
||||
QSqlDatabase,
|
||||
)
|
||||
@@ -9,6 +10,8 @@ from PySide6.QtWidgets import (
|
||||
QApplication,
|
||||
)
|
||||
|
||||
from lib.utils import openSettings
|
||||
|
||||
faulthandler.enable()
|
||||
|
||||
from MainWindow import MainWindow
|
||||
@@ -17,11 +20,13 @@ from MainWindow import MainWindow
|
||||
def main() -> int:
|
||||
#
|
||||
app = QApplication(sys.argv)
|
||||
settings = openSettings('database')
|
||||
db = QSqlDatabase.addDatabase("QMYSQL")
|
||||
db.setHostName("ceph5")
|
||||
db.setDatabaseName("scotus")
|
||||
db.setUserName("scotus")
|
||||
db.setPassword("lechOtvirf8Om/")
|
||||
db.setHostName(settings.value("hostname"))
|
||||
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
|
||||
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
#+AUTHOR: Christopher T. Johnson
|
||||
#+STARTUP: indent
|
||||
#+OPTIONS: num:nil toc:nil
|
||||
Reference in New Issue
Block a user