Always set an AnkiWebViewKind (#2782)

This commit is contained in:
Aristotelis 2023-10-28 05:18:21 +02:00 committed by GitHub
parent 1b0b4cd6bb
commit 20813eeb32
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -233,6 +233,7 @@ class AnkiWebViewKind(Enum):
When introducing a new web view, please add it to the registry below. When introducing a new web view, please add it to the registry below.
""" """
DEFAULT = "default"
MAIN = "main webview" MAIN = "main webview"
TOP_TOOLBAR = "top toolbar" TOP_TOOLBAR = "top toolbar"
BOTTOM_TOOLBAR = "bottom toolbar" BOTTOM_TOOLBAR = "bottom toolbar"
@ -254,18 +255,17 @@ class AnkiWebViewKind(Enum):
class AnkiWebView(QWebEngineView): class AnkiWebView(QWebEngineView):
allow_drops = False allow_drops = False
_kind: AnkiWebViewKind | None _kind: AnkiWebViewKind
def __init__( def __init__(
self, self,
parent: QWidget | None = None, parent: QWidget | None = None,
title: str = "default", title: str = "", # used by add-ons; in Anki code use kind instead to set title
kind: AnkiWebViewKind | None = None, kind: AnkiWebViewKind = AnkiWebViewKind.DEFAULT,
) -> None: ) -> None:
QWebEngineView.__init__(self, parent=parent) QWebEngineView.__init__(self, parent=parent)
if kind: self.set_kind(kind)
self.set_kind(kind) if title:
else:
self.set_title(title) self.set_title(title)
self._page = AnkiWebPage(self._onBridgeCmd) self._page = AnkiWebPage(self._onBridgeCmd)
# reduce flicker # reduce flicker
@ -303,7 +303,7 @@ class AnkiWebView(QWebEngineView):
self.set_title(kind.value) self.set_title(kind.value)
@property @property
def kind(self) -> AnkiWebViewKind | None: def kind(self) -> AnkiWebViewKind:
"""Used by add-ons to identify the webview kind""" """Used by add-ons to identify the webview kind"""
return self._kind return self._kind