mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-26 18:18:25 +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:
|
def __init__(self, v: View) -> None:
|
||||||
self.view = v
|
self.view = v
|
||||||
self._focusflow = None
|
self._focusflow = None
|
||||||
|
|
||||||
self.focusflow = None
|
|
||||||
if len(self.view):
|
if len(self.view):
|
||||||
self.focusflow = self.view[0]
|
self.focusflow = self.view[0]
|
||||||
v.sig_add.connect(self._sig_add)
|
v.sig_add.connect(self._sig_add)
|
||||||
@ -204,8 +202,24 @@ class Focus:
|
|||||||
if self.focusflow:
|
if self.focusflow:
|
||||||
return self.view.index(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):
|
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):
|
def _sig_remove(self, view, flow):
|
||||||
if len(view) == 0:
|
if len(view) == 0:
|
||||||
|
@ -235,6 +235,31 @@ def test_focus():
|
|||||||
assert f.index is None
|
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():
|
def test_settings():
|
||||||
v = view.View()
|
v = view.View()
|
||||||
f = tft()
|
f = tft()
|
||||||
|
Loading…
Reference in New Issue
Block a user