screen: add basic history
This commit is contained in:
parent
34780bdf5e
commit
a771667a54
|
@ -23,6 +23,7 @@ class Screen:
|
||||||
self.command_line = None
|
self.command_line = None
|
||||||
self.status_data = ("", 0)
|
self.status_data = ("", 0)
|
||||||
self.current_url = ""
|
self.current_url = ""
|
||||||
|
self.history = []
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def h(self):
|
def h(self):
|
||||||
|
@ -86,6 +87,8 @@ class Screen:
|
||||||
elif char == ord("l"):
|
elif char == ord("l"):
|
||||||
if self.page.scroll_right(self.w):
|
if self.page.scroll_right(self.w):
|
||||||
self.refresh_page()
|
self.refresh_page()
|
||||||
|
elif char == ord("H"):
|
||||||
|
self.go_back()
|
||||||
elif curses.ascii.isdigit(char):
|
elif curses.ascii.isdigit(char):
|
||||||
self.handle_digit_input(char)
|
self.handle_digit_input(char)
|
||||||
elif char == curses.KEY_MOUSE:
|
elif char == curses.KEY_MOUSE:
|
||||||
|
@ -189,6 +192,8 @@ class Screen:
|
||||||
|
|
||||||
if response.code == 20:
|
if response.code == 20:
|
||||||
self.load_page(response.content)
|
self.load_page(response.content)
|
||||||
|
if self.current_url:
|
||||||
|
self.history.append(self.current_url)
|
||||||
self.current_url = url
|
self.current_url = url
|
||||||
self.set_status(url)
|
self.set_status(url)
|
||||||
elif response.generic_code == 30 and response.meta:
|
elif response.generic_code == 30 and response.meta:
|
||||||
|
@ -350,3 +355,8 @@ class Screen:
|
||||||
self.screen.clear()
|
self.screen.clear()
|
||||||
self.screen.refresh()
|
self.screen.refresh()
|
||||||
self.refresh_windows()
|
self.refresh_windows()
|
||||||
|
|
||||||
|
def go_back(self):
|
||||||
|
"""Go back in history if possible."""
|
||||||
|
if self.history:
|
||||||
|
self.open_gemini_url(self.history.pop())
|
||||||
|
|
Reference in a new issue