mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 14:02:21 -04:00
Enable strict_optional for aqt/notetypechooser, stats, switch (#3558)
* Enable strict_optional for notetypechooser * Fix mypy errors * Enable strict_optional for stats * Fix mypy errors * Enable strict_optional for switch * Fix mypy errors --------- Co-authored-by: Abdo <abdo@abdnh.net>
This commit is contained in:
parent
7f5e081014
commit
a150eda287
4 changed files with 25 additions and 8 deletions
|
@ -74,6 +74,12 @@ strict_optional = True
|
|||
strict_optional = True
|
||||
[mypy-aqt.deckoptions]
|
||||
strict_optional = True
|
||||
[mypy-aqt.notetypechooser]
|
||||
strict_optional = True
|
||||
[mypy-aqt.stats]
|
||||
strict_optional = True
|
||||
[mypy-aqt.switch]
|
||||
strict_optional = True
|
||||
[mypy-anki.scheduler.base]
|
||||
strict_optional = True
|
||||
[mypy-anki._backend.rsbridge]
|
||||
|
|
|
@ -111,6 +111,7 @@ class NotetypeChooser(QHBoxLayout):
|
|||
if not ret.name:
|
||||
return
|
||||
notetype = self.mw.col.models.by_name(ret.name)
|
||||
assert notetype is not None
|
||||
if (id := notetype["id"]) != self._selected_notetype_id:
|
||||
self.selected_notetype_id = id
|
||||
|
||||
|
@ -146,7 +147,9 @@ class NotetypeChooser(QHBoxLayout):
|
|||
func(self._selected_notetype_id)
|
||||
|
||||
def selected_notetype_name(self) -> str:
|
||||
return self.mw.col.models.get(self.selected_notetype_id)["name"]
|
||||
selected_notetype = self.mw.col.models.get(self.selected_notetype_id)
|
||||
assert selected_notetype is not None
|
||||
return selected_notetype["name"]
|
||||
|
||||
def _ensure_selected_notetype_valid(self) -> None:
|
||||
if not self.mw.col.models.get(self._selected_notetype_id):
|
||||
|
|
|
@ -61,9 +61,11 @@ class NewDeckStats(QDialog):
|
|||
b = f.buttonBox.addButton(
|
||||
tr.statistics_save_pdf(), QDialogButtonBox.ButtonRole.ActionRole
|
||||
)
|
||||
assert b is not None
|
||||
qconnect(b.clicked, self.saveImage)
|
||||
b.setAutoDefault(False)
|
||||
b = f.buttonBox.button(QDialogButtonBox.StandardButton.Close)
|
||||
assert b is not None
|
||||
b.setAutoDefault(False)
|
||||
maybeHideClose(self.form.buttonBox)
|
||||
addCloseShortcut(self)
|
||||
|
@ -78,7 +80,7 @@ class NewDeckStats(QDialog):
|
|||
def reject(self) -> None:
|
||||
self.deck_chooser.cleanup()
|
||||
self.form.web.cleanup()
|
||||
self.form.web = None
|
||||
self.form.web = None # type: ignore
|
||||
saveGeom(self, self.name)
|
||||
aqt.dialogs.markClosed("NewDeckStats")
|
||||
QDialog.reject(self)
|
||||
|
@ -115,7 +117,9 @@ class NewDeckStats(QDialog):
|
|||
# unreadable. A simple fix for now is to scroll to the top of the
|
||||
# page first.
|
||||
def after_scroll(arg: Any) -> None:
|
||||
self.form.web.page().printToPdf(path)
|
||||
form_web_page = self.form.web.page()
|
||||
assert form_web_page is not None
|
||||
form_web_page.printToPdf(path)
|
||||
tooltip(tr.statistics_saved())
|
||||
|
||||
self.form.web.evalWithCallback("window.scrollTo(0, 0);", after_scroll)
|
||||
|
@ -165,6 +169,7 @@ class DeckStats(QDialog):
|
|||
b = f.buttonBox.addButton(
|
||||
tr.statistics_save_pdf(), QDialogButtonBox.ButtonRole.ActionRole
|
||||
)
|
||||
assert b is not None
|
||||
qconnect(b.clicked, self.saveImage)
|
||||
b.setAutoDefault(False)
|
||||
qconnect(f.groups.clicked, lambda: self.changeScope("deck"))
|
||||
|
@ -182,7 +187,7 @@ class DeckStats(QDialog):
|
|||
|
||||
def reject(self) -> None:
|
||||
self.form.web.cleanup()
|
||||
self.form.web = None
|
||||
self.form.web = None # type: ignore
|
||||
saveGeom(self, self.name)
|
||||
aqt.dialogs.markClosed("DeckStats")
|
||||
QDialog.reject(self)
|
||||
|
@ -208,7 +213,9 @@ class DeckStats(QDialog):
|
|||
path = self._imagePath()
|
||||
if not path:
|
||||
return
|
||||
self.form.web.page().printToPdf(path)
|
||||
form_web_page = self.form.web.page()
|
||||
assert form_web_page is not None
|
||||
form_web_page.printToPdf(path)
|
||||
tooltip(tr.statistics_saved())
|
||||
|
||||
def changePeriod(self, n: int) -> None:
|
||||
|
|
|
@ -103,7 +103,7 @@ class Switch(QAbstractButton):
|
|||
self._position = self.end_position
|
||||
self.update()
|
||||
|
||||
def paintEvent(self, _event: QPaintEvent) -> None:
|
||||
def paintEvent(self, _event: QPaintEvent | None) -> None:
|
||||
painter = QPainter(self)
|
||||
painter.setRenderHint(QPainter.RenderHint.Antialiasing, True)
|
||||
painter.setPen(Qt.PenStyle.NoPen)
|
||||
|
@ -162,12 +162,13 @@ class Switch(QAbstractButton):
|
|||
self._current_label_rectangle(), Qt.AlignmentFlag.AlignCenter, self.label
|
||||
)
|
||||
|
||||
def mouseReleaseEvent(self, event: QMouseEvent) -> None:
|
||||
def mouseReleaseEvent(self, event: QMouseEvent | None) -> None:
|
||||
super().mouseReleaseEvent(event)
|
||||
assert event is not None
|
||||
if event.button() == Qt.MouseButton.LeftButton:
|
||||
self._animate_toggle()
|
||||
|
||||
def enterEvent(self, event: QEnterEvent) -> None:
|
||||
def enterEvent(self, event: QEnterEvent | None) -> None:
|
||||
self.setCursor(Qt.CursorShape.PointingHandCursor)
|
||||
super().enterEvent(event)
|
||||
|
||||
|
|
Loading…
Reference in a new issue