Linting
This commit is contained in:
@@ -1,14 +1,43 @@
|
|||||||
from typing import Any, Self, cast
|
from typing import Any, Self, cast
|
||||||
from PySide6.QtCore import QDate, QEvent, QModelIndex, QObject, QPersistentModelIndex, QPoint, QRect, QSize, Signal, Qt, Slot
|
|
||||||
from PySide6.QtGui import QColor, QFont, QPainter, QTextDocument, QTextDocumentFragment
|
from PySide6.QtCore import (
|
||||||
|
QDate,
|
||||||
|
QEvent,
|
||||||
|
QModelIndex,
|
||||||
|
QObject,
|
||||||
|
QPersistentModelIndex,
|
||||||
|
QPoint,
|
||||||
|
QRect,
|
||||||
|
QSize,
|
||||||
|
Qt,
|
||||||
|
Signal,
|
||||||
|
Slot,
|
||||||
|
)
|
||||||
|
from PySide6.QtGui import (
|
||||||
|
QColor,
|
||||||
|
QFont,
|
||||||
|
QPainter,
|
||||||
|
QTextDocument,
|
||||||
|
QTextDocumentFragment,
|
||||||
|
)
|
||||||
from PySide6.QtSql import QSqlTableModel
|
from PySide6.QtSql import QSqlTableModel
|
||||||
from PySide6.QtWidgets import QAbstractItemView, QHeaderView, QMainWindow, QStyle, QStyleOptionViewItem, QStyledItemDelegate, QTableView, QWidget
|
from PySide6.QtWidgets import (
|
||||||
|
QAbstractItemView,
|
||||||
|
QHeaderView,
|
||||||
|
QMainWindow,
|
||||||
|
QStyle,
|
||||||
|
QStyledItemDelegate,
|
||||||
|
QStyleOptionViewItem,
|
||||||
|
QTableView,
|
||||||
|
QWidget,
|
||||||
|
)
|
||||||
|
|
||||||
from docketModel import docketModel
|
from docketModel import docketModel
|
||||||
from dockettableview import documentDelegate
|
from dockettableview import documentDelegate
|
||||||
from ui.MainWindow import Ui_MainWindow
|
from ui.MainWindow import Ui_MainWindow
|
||||||
from workers import loadCases, updateThread
|
from workers import loadCases, updateThread
|
||||||
|
|
||||||
|
|
||||||
class QStyleOptionViewItemInit(QStyleOptionViewItem):
|
class QStyleOptionViewItemInit(QStyleOptionViewItem):
|
||||||
backgroundBrush: QColor
|
backgroundBrush: QColor
|
||||||
rect: QRect
|
rect: QRect
|
||||||
@@ -16,6 +45,7 @@ class QStyleOptionViewItemInit(QStyleOptionViewItem):
|
|||||||
font: QFont
|
font: QFont
|
||||||
text: str
|
text: str
|
||||||
|
|
||||||
|
|
||||||
class dateDelegate(QStyledItemDelegate):
|
class dateDelegate(QStyledItemDelegate):
|
||||||
def displayText(self, value: QDate, _: Any) -> str:
|
def displayText(self, value: QDate, _: Any) -> str:
|
||||||
return value.toString("MMMM d, yyyy")
|
return value.toString("MMMM d, yyyy")
|
||||||
@@ -49,7 +79,6 @@ class activeDelegate(QStyledItemDelegate):
|
|||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class MainWindow(QMainWindow, Ui_MainWindow):
|
class MainWindow(QMainWindow, Ui_MainWindow):
|
||||||
show_entries = Signal(int)
|
show_entries = Signal(int)
|
||||||
|
|
||||||
@@ -58,9 +87,9 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
super(MainWindow, self).__init__()
|
super(MainWindow, self).__init__()
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
#self.loadThread = loadCases()
|
# self.loadThread = loadCases()
|
||||||
#self.loadThread.finished.connect(self.updateDone)
|
# self.loadThread.finished.connect(self.updateDone)
|
||||||
#self.loadThread.start()
|
# self.loadThread.start()
|
||||||
|
|
||||||
model = QSqlTableModel()
|
model = QSqlTableModel()
|
||||||
model.setTable("cases")
|
model.setTable("cases")
|
||||||
@@ -105,7 +134,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||||||
1, QHeaderView.ResizeMode.Stretch
|
1, QHeaderView.ResizeMode.Stretch
|
||||||
)
|
)
|
||||||
self.docketView.resizeRowsToContents()
|
self.docketView.resizeRowsToContents()
|
||||||
#self.docketView.setItemDelegateForColumn(1, documentDelegate())
|
# self.docketView.setItemDelegateForColumn(1, documentDelegate())
|
||||||
return
|
return
|
||||||
|
|
||||||
@Slot(QModelIndex) # type: ignore
|
@Slot(QModelIndex) # type: ignore
|
||||||
@@ -135,12 +164,13 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||||||
self.updateThread.start()
|
self.updateThread.start()
|
||||||
return
|
return
|
||||||
|
|
||||||
@Slot()
|
@Slot(QPoint) # type: ignore
|
||||||
def clickedEvent(self, pos:QPoint) -> None:
|
def clickedEvent(self, pos: QPoint) -> None:
|
||||||
print(pos)
|
print(pos)
|
||||||
viewport = self.docketView.viewport()
|
viewport = self.docketView.viewport()
|
||||||
print(viewport,viewport.children())
|
print(viewport, viewport.children())
|
||||||
return
|
return
|
||||||
|
|
||||||
@Slot()
|
@Slot()
|
||||||
def updateDone(self) -> None:
|
def updateDone(self) -> None:
|
||||||
self.updateThread = None
|
self.updateThread = None
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ class docketModel(QAbstractTableModel):
|
|||||||
return
|
return
|
||||||
self.newCase(case_id)
|
self.newCase(case_id)
|
||||||
return
|
return
|
||||||
|
|
||||||
def newCase(self, case_id: int) -> None:
|
def newCase(self, case_id: int) -> None:
|
||||||
self.beginResetModel()
|
self.beginResetModel()
|
||||||
self.entries = []
|
self.entries = []
|
||||||
@@ -48,7 +48,9 @@ class docketModel(QAbstractTableModel):
|
|||||||
query_error(q2)
|
query_error(q2)
|
||||||
row = []
|
row = []
|
||||||
while q2.next():
|
while q2.next():
|
||||||
row.append(f'<a href="{q2.value("url")}">{q2.value("name")}</a>')
|
row.append(
|
||||||
|
f'<a href="{q2.value("url")}">{q2.value("name")}</a>'
|
||||||
|
)
|
||||||
if len(row) > 0:
|
if len(row) > 0:
|
||||||
self.entries.append([None, " ".join(row)])
|
self.entries.append([None, " ".join(row)])
|
||||||
self.endResetModel()
|
self.endResetModel()
|
||||||
|
|||||||
@@ -1,10 +1,49 @@
|
|||||||
from typing import cast
|
from typing import Any, cast
|
||||||
from PySide6.QtCore import QAbstractItemModel, QDir, QEvent, QFile, QModelIndex, QObject, QPersistentModelIndex, QPoint, QRect, QSize, QUrl, Signal, Qt, Slot
|
|
||||||
from PySide6.QtGui import QColor, QFont, QMouseEvent, QPainter, QPalette, QShowEvent, QTextDocument
|
from PySide6.QtCore import (
|
||||||
from PySide6.QtWidgets import QApplication, QSizePolicy, QStyle, QStyleOptionViewItem, QStyledItemDelegate, QTableView, QTextEdit, QWidget
|
QAbstractItemModel,
|
||||||
from PySide6.QtNetwork import QNetworkAccessManager, QNetworkReply, QNetworkRequest
|
QDir,
|
||||||
|
QEvent,
|
||||||
|
QFile,
|
||||||
|
QModelIndex,
|
||||||
|
QObject,
|
||||||
|
QPersistentModelIndex,
|
||||||
|
QPoint,
|
||||||
|
QRect,
|
||||||
|
QSize,
|
||||||
|
Qt,
|
||||||
|
QUrl,
|
||||||
|
Signal,
|
||||||
|
Slot,
|
||||||
|
)
|
||||||
|
from PySide6.QtGui import (
|
||||||
|
QColor,
|
||||||
|
QFont,
|
||||||
|
QMouseEvent,
|
||||||
|
QPainter,
|
||||||
|
QPalette,
|
||||||
|
QShowEvent,
|
||||||
|
QTextDocument,
|
||||||
|
)
|
||||||
|
from PySide6.QtNetwork import (
|
||||||
|
QNetworkAccessManager,
|
||||||
|
QNetworkReply,
|
||||||
|
QNetworkRequest,
|
||||||
|
)
|
||||||
|
from PySide6.QtWidgets import (
|
||||||
|
QApplication,
|
||||||
|
QSizePolicy,
|
||||||
|
QStyle,
|
||||||
|
QStyledItemDelegate,
|
||||||
|
QStyleOptionViewItem,
|
||||||
|
QTableView,
|
||||||
|
QTextEdit,
|
||||||
|
QWidget,
|
||||||
|
)
|
||||||
|
|
||||||
from pdfView import PDFViewer
|
from pdfView import PDFViewer
|
||||||
|
|
||||||
|
|
||||||
class QStyleOptionViewItemInit(QStyleOptionViewItem):
|
class QStyleOptionViewItemInit(QStyleOptionViewItem):
|
||||||
backgroundBrush: QColor
|
backgroundBrush: QColor
|
||||||
rect: QRect
|
rect: QRect
|
||||||
@@ -12,6 +51,7 @@ class QStyleOptionViewItemInit(QStyleOptionViewItem):
|
|||||||
font: QFont
|
font: QFont
|
||||||
text: str
|
text: str
|
||||||
|
|
||||||
|
|
||||||
class documentDelegate(QStyledItemDelegate):
|
class documentDelegate(QStyledItemDelegate):
|
||||||
def initStyleOption(
|
def initStyleOption(
|
||||||
self,
|
self,
|
||||||
@@ -71,14 +111,14 @@ class docketEntry(QTextEdit):
|
|||||||
print(f"self.size(): {self.size()}")
|
print(f"self.size(): {self.size()}")
|
||||||
if anchor:
|
if anchor:
|
||||||
print(f"Anchors away: {anchor}")
|
print(f"Anchors away: {anchor}")
|
||||||
obj = self
|
obj = cast(QObject, self)
|
||||||
while not isinstance(obj, docketTableView) and obj is not None:
|
while not isinstance(obj, docketTableView) and obj is not None:
|
||||||
obj = obj.parent()
|
obj = obj.parent()
|
||||||
assert obj is not None
|
assert obj is not None
|
||||||
index = obj.indexAt(obj.mapFromGlobal(self.mapToGlobal(e.pos())))
|
index = obj.indexAt(obj.mapFromGlobal(self.mapToGlobal(e.pos())))
|
||||||
obj.anchorSignal.emit(index, anchor)
|
obj.anchorSignal.emit(index, anchor)
|
||||||
return
|
return
|
||||||
|
|
||||||
def sizeHint(self) -> QSize:
|
def sizeHint(self) -> QSize:
|
||||||
size = self.size()
|
size = self.size()
|
||||||
doc = QTextDocument()
|
doc = QTextDocument()
|
||||||
@@ -94,21 +134,22 @@ class docketTableView(QTableView):
|
|||||||
clickedEvent = Signal(QPoint)
|
clickedEvent = Signal(QPoint)
|
||||||
anchorSignal = Signal(QModelIndex, str)
|
anchorSignal = Signal(QModelIndex, str)
|
||||||
|
|
||||||
def __init__(self, parent: QWidget|None = None) -> None:
|
def __init__(self, parent: QWidget | None = None) -> None:
|
||||||
super(docketTableView,self).__init__(parent)
|
super(docketTableView, self).__init__(parent)
|
||||||
self.anchorSignal.connect(self.doAnchor)
|
self.anchorSignal.connect(self.doAnchor)
|
||||||
self.manager.finished.connect(self.getDone)
|
self.manager.finished.connect(self.getDone)
|
||||||
return
|
return
|
||||||
|
|
||||||
def setModel(self, model: QAbstractItemModel | None) -> None:
|
def setModel(self, model: QAbstractItemModel | None) -> None:
|
||||||
assert model is not None
|
assert model is not None
|
||||||
super().setModel(model)
|
super().setModel(model)
|
||||||
self.model().modelReset.connect(self.modelReset)
|
self.model().modelReset.connect(self.modelReset)
|
||||||
print("Setting Model")
|
print("Setting Model")
|
||||||
return
|
return
|
||||||
@Slot(QNetworkReply) # type: ignore
|
|
||||||
def getDone(self, reply:QNetworkReply) -> None:
|
@Slot(QNetworkReply) # type: ignore
|
||||||
dest = QFile('.'+reply.url().path())
|
def getDone(self, reply: QNetworkReply) -> None:
|
||||||
|
dest = QFile("." + reply.url().path())
|
||||||
dest.open(QFile.OpenModeFlag.WriteOnly)
|
dest.open(QFile.OpenModeFlag.WriteOnly)
|
||||||
dest.write(reply.readAll())
|
dest.write(reply.readAll())
|
||||||
dest.close()
|
dest.close()
|
||||||
@@ -117,33 +158,34 @@ class docketTableView(QTableView):
|
|||||||
self.pdf.load_pdf(dest)
|
self.pdf.load_pdf(dest)
|
||||||
self.pdf.show()
|
self.pdf.show()
|
||||||
return
|
return
|
||||||
|
|
||||||
@Slot(QModelIndex, str) # type: ignore
|
@Slot(QModelIndex, str) # type: ignore
|
||||||
def doAnchor(self, index: QModelIndex, anchor: str) -> None:
|
def doAnchor(self, index: QModelIndex, anchor: str) -> None:
|
||||||
url = QUrl(anchor)
|
url = QUrl(anchor)
|
||||||
print(f"{index.row()}, {index.column()} -> {url.path()}")
|
print(f"{index.row()}, {index.column()} -> {url.path()}")
|
||||||
dirs = url.path().split('/')
|
dirs = url.path().split("/")
|
||||||
dirs.pop()
|
dirs.pop()
|
||||||
dirs.pop(0)
|
dirs.pop(0)
|
||||||
currentDir = QDir()
|
currentDir = QDir()
|
||||||
path = '/'.join(dirs)
|
path = "/".join(dirs)
|
||||||
currentDir.mkpath(path)
|
currentDir.mkpath(path)
|
||||||
if QDir('.'+url.path()).exists():
|
if QDir("." + url.path()).exists():
|
||||||
file = QFile('.'+url.path())
|
file = QFile("." + url.path())
|
||||||
self.pdf = PDFViewer(self)
|
self.pdf = PDFViewer(self)
|
||||||
self.pdf.load_pdf(file)
|
self.pdf.load_pdf(file)
|
||||||
self.pdf.show()
|
self.pdf.show()
|
||||||
else:
|
else:
|
||||||
self.manager.get(QNetworkRequest(url))
|
self.manager.get(QNetworkRequest(url))
|
||||||
return
|
return
|
||||||
|
|
||||||
def modelReset(self) -> None:
|
def modelReset(self) -> None:
|
||||||
model = self.model()
|
model = self.model()
|
||||||
red = QPalette()
|
red = QPalette()
|
||||||
red.setColor(QPalette.ColorRole.Base, Qt.GlobalColor.red)
|
red.setColor(QPalette.ColorRole.Base, Qt.GlobalColor.red)
|
||||||
for row in range(0, model.rowCount()):
|
for row in range(0, model.rowCount()):
|
||||||
index = model.index(row,1)
|
index = model.index(row, 1)
|
||||||
widget = docketEntry()
|
widget = docketEntry()
|
||||||
widget.setHtml(model.data(index,Qt.ItemDataRole.DisplayRole))
|
widget.setHtml(model.data(index, Qt.ItemDataRole.DisplayRole))
|
||||||
widget.setAutoFillBackground(False)
|
widget.setAutoFillBackground(False)
|
||||||
widget.setReadOnly(True)
|
widget.setReadOnly(True)
|
||||||
widget.setPalette(red)
|
widget.setPalette(red)
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
from PySide6.QtCore import QFile
|
from PySide6.QtCore import QFile
|
||||||
from PySide6.QtWidgets import QDialog, QVBoxLayout, QWidget
|
|
||||||
from PySide6.QtPdfWidgets import QPdfView
|
|
||||||
from PySide6.QtPdf import QPdfDocument
|
from PySide6.QtPdf import QPdfDocument
|
||||||
|
from PySide6.QtPdfWidgets import QPdfView
|
||||||
|
from PySide6.QtWidgets import QDialog, QVBoxLayout, QWidget
|
||||||
|
|
||||||
|
|
||||||
class PDFViewer(QDialog):
|
class PDFViewer(QDialog):
|
||||||
pdf_view: QPdfView
|
pdf_view: QPdfView
|
||||||
pdf_document: QPdfDocument
|
pdf_document: QPdfDocument
|
||||||
|
|
||||||
def __init__(self, parent: QWidget) -> None:
|
def __init__(self, parent: QWidget) -> None:
|
||||||
super(PDFViewer, self).__init__(parent)
|
super(PDFViewer, self).__init__(parent)
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ from PySide6.QtWidgets import (
|
|||||||
|
|
||||||
from MainWindow import MainWindow
|
from MainWindow import MainWindow
|
||||||
|
|
||||||
|
|
||||||
def main() -> int:
|
def main() -> int:
|
||||||
#
|
#
|
||||||
app = QApplication(sys.argv)
|
app = QApplication(sys.argv)
|
||||||
|
|||||||
Reference in New Issue
Block a user