62 lines
1.5 KiB
Python
62 lines
1.5 KiB
Python
from typing import NoReturn, cast
|
|
|
|
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
|
|
|
|
translate = QCoreApplication.translate
|
|
|
|
|
|
def query_error(query: QSqlQuery) -> NoReturn:
|
|
"""Standarized query error reporter."""
|
|
print(
|
|
translate("MainWindow", "SQL Error:\n")
|
|
+ "{}\n{}\n{}:{}".format(
|
|
query.executedQuery(),
|
|
query.boundValues(),
|
|
query.lastError().type(),
|
|
query.lastError().text(),
|
|
)
|
|
)
|
|
raise Exception(translate("MainWindow", "SQL Error"))
|
|
|
|
|
|
class QStyleOptionViewItemInit(QStyleOptionViewItem):
|
|
backgroundBrush: QColor
|
|
rect: QRect
|
|
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
|