summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2021-01-13 12:34:47 +0100
committerFlorian Bruhin <me@the-compiler.org>2021-01-13 20:27:21 +0100
commit1707607f294222a25ee066008b9cc42ae9756378 (patch)
treeb49c1672b4ba440eb832bd6a2262ad709deea0a6
parent0afe7989f8febfecc8b7a48d8c834350c4a62569 (diff)
downloadqutebrowser-1707607f294222a25ee066008b9cc42ae9756378.tar.gz
qutebrowser-1707607f294222a25ee066008b9cc42ae9756378.zip
dataclasses: Fix typing around undo
See #6023
-rw-r--r--qutebrowser/mainwindow/tabbedbrowser.py8
-rw-r--r--qutebrowser/mainwindow/windowundo.py6
2 files changed, 9 insertions, 5 deletions
diff --git a/qutebrowser/mainwindow/tabbedbrowser.py b/qutebrowser/mainwindow/tabbedbrowser.py
index 68e4de5ff..cc52bffcf 100644
--- a/qutebrowser/mainwindow/tabbedbrowser.py
+++ b/qutebrowser/mainwindow/tabbedbrowser.py
@@ -45,13 +45,16 @@ class _UndoEntry:
"""Information needed for :undo."""
url: QUrl
- history: bytes # FIXME
+ history: bytes
index: int
pinned: bool
created_at: datetime.datetime = dataclasses.field(
default_factory=datetime.datetime.now)
+UndoStackType = MutableSequence[MutableSequence[_UndoEntry]]
+
+
class TabDeque:
"""Class which manages the 'last visited' tab stack.
@@ -222,8 +225,7 @@ class TabbedBrowser(QWidget):
# This init is never used, it is immediately thrown away in the next
# line.
- self.undo_stack: MutableSequence[MutableSequence[_UndoEntry]] = (
- collections.deque())
+ self.undo_stack: UndoStackType = collections.deque()
self._update_stack_size()
self._filter = signalfilter.SignalFilter(win_id, self)
self._now_focused = None
diff --git a/qutebrowser/mainwindow/windowundo.py b/qutebrowser/mainwindow/windowundo.py
index 07e4dc7d0..4d4e13f6a 100644
--- a/qutebrowser/mainwindow/windowundo.py
+++ b/qutebrowser/mainwindow/windowundo.py
@@ -21,13 +21,15 @@
import collections
import dataclasses
-from typing import Any, MutableSequence, cast
+from typing import Any, MutableSequence, cast, TYPE_CHECKING
from PyQt5.QtCore import QObject, QByteArray
from qutebrowser.config import config
from qutebrowser.mainwindow import mainwindow
from qutebrowser.misc import objects
+if TYPE_CHECKING:
+ from qutebrowser.mainwindow import tabbedbrowser
instance = cast('WindowUndoManager', None)
@@ -39,7 +41,7 @@ class _WindowUndoEntry:
"""Information needed for :undo -w."""
geometry: QByteArray
- tab_stack: Any # FIXME
+ tab_stack: 'tabbedbrowser.UndoStackType'
class WindowUndoManager(QObject):