mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-29 19:08:44 +00:00
addons.view.focus: next and prev methods
This commit is contained in:
parent
32a0a7b860
commit
7ecaeb0214
@ -181,8 +181,6 @@ class Focus:
|
||||
def __init__(self, v: View) -> None:
|
||||
self.view = v
|
||||
self._focusflow = None
|
||||
|
||||
self.focusflow = None
|
||||
if len(self.view):
|
||||
self.focusflow = self.view[0]
|
||||
v.sig_add.connect(self._sig_add)
|
||||
@ -204,8 +202,24 @@ class Focus:
|
||||
if self.focusflow:
|
||||
return self.view.index(self.focusflow)
|
||||
|
||||
def next(self):
|
||||
"""
|
||||
Sets the focus to the next flow.
|
||||
"""
|
||||
if self.focusflow:
|
||||
idx = min(self.index + 1, len(self.view) - 1)
|
||||
self.focusflow = self.view[idx]
|
||||
|
||||
def prev(self):
|
||||
"""
|
||||
Sets the focus to the previous flow.
|
||||
"""
|
||||
if self.focusflow:
|
||||
idx = max(self.index - 1, 0)
|
||||
self.focusflow = self.view[idx]
|
||||
|
||||
def _nearest(self, f, v):
|
||||
return min(v.bisect(f), len(v)-1)
|
||||
return min(v.bisect(f), len(v) - 1)
|
||||
|
||||
def _sig_remove(self, view, flow):
|
||||
if len(view) == 0:
|
||||
|
@ -235,6 +235,31 @@ def test_focus():
|
||||
assert f.index is None
|
||||
|
||||
|
||||
def test_focus_nextprev():
|
||||
v = view.View()
|
||||
# Nops on an empty view
|
||||
v.focus.next()
|
||||
v.focus.prev()
|
||||
|
||||
# Nops on a single-flow view
|
||||
v.add(tft(start=0))
|
||||
assert v.focus.focusflow == v[0]
|
||||
v.focus.next()
|
||||
assert v.focus.focusflow == v[0]
|
||||
v.focus.prev()
|
||||
assert v.focus.focusflow == v[0]
|
||||
|
||||
v.add(tft(start=1))
|
||||
v.focus.next()
|
||||
assert v.focus.focusflow == v[1]
|
||||
v.focus.next()
|
||||
assert v.focus.focusflow == v[1]
|
||||
v.focus.prev()
|
||||
assert v.focus.focusflow == v[0]
|
||||
v.focus.prev()
|
||||
assert v.focus.focusflow == v[0]
|
||||
|
||||
|
||||
def test_settings():
|
||||
v = view.View()
|
||||
f = tft()
|
||||
|
Loading…
Reference in New Issue
Block a user