pull/6/head
dvkt 5 years ago
parent d7052a2b3d
commit 0afb254e5a

@ -39,6 +39,7 @@ enum Action {
Up,
Down,
Back,
Forward,
Open,
Quit,
}
@ -67,20 +68,29 @@ impl App {
}
}
fn forward(&mut self) {
if self.pos < self.history.len() - 1 {
self.pos += 1;
}
}
fn load(&mut self, host: &str, port: &str, selector: &str) {
let mut page = self.fetch(host, port, selector);
page.parse_links();
if self.history.len() > 0 {
self.pos = self.history.len() - 1;
self.pos += 1;
self.history.insert(self.pos, page.url.to_string());
} else {
self.history.push(page.url.to_string());
self.pos = 0;
}
self.history.push(page.url.to_string());
self.pages.insert(page.url.to_string(), page);
}
fn render(&self) {
if let Some(url) = self.history.get(self.pos) {
if let Some(page) = self.pages.get(url) {
print!("\x1B[2J\x1B[H{}", page.draw());
print!("\x1B[2J\x1B[H{}", page.draw()); // clear
}
}
}
@ -95,6 +105,7 @@ impl App {
Action::Up => page.cursor_up(),
Action::Down => page.cursor_down(),
Action::Back => self.back(),
Action::Forward => self.forward(),
Action::Open => {
if page.link > 0 && page.link - 1 < page.links.len() {
let link = &page.links[page.link - 1];
@ -297,7 +308,7 @@ fn read_input() -> Action {
Key::Down | Key::Ctrl('n') => return Action::Down,
Key::Ctrl(c) => print!("Ctrl-{}", c),
Key::Left => return Action::Back,
Key::Right => print!("<right>"),
Key::Right => return Action::Forward,
Key::Backspace | Key::Delete => {
input.pop();
}

Loading…
Cancel
Save