Files
scotus-watch/lib/utils.py
Christopher T. Johnson dd9f08aa5e More linting
2025-02-25 10:17:14 -05:00

60 lines
1.5 KiB
Python

from typing import NoReturn
from PySide6.QtCore import (
QByteArray,
QCoreApplication,
QRect,
QSettings,
)
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