Mercurial > racoon
diff browser.py @ 0:661e6ef8f8e4 draft default tip
Initial commit
| author | Radomir Dopieralski <sheep-devel@sheep.art.pl> |
|---|---|
| date | Sat, 14 Jan 2017 13:22:10 +0100 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browser.py Sat Jan 14 13:22:10 2017 +0100 @@ -0,0 +1,52 @@ +import loader, view + +class Browser: + def __init__(self, window): + self.win = window + self.loader = loader.Loader() + self.view = view.View(self) + + self.current_url = '' + self.base_url = '' + self.history = [] + + def set_current_url(self, url): + self.current_url = url + self.loader.base_url = url + self.win.set_location(url) + + def open_url(self, link): + self.win.start_loading(link) + if link: + print 'opened %s' % link + f = self.loader.open_uri(link) + print 'fetching headers' + headers = f.info() + mime = headers.getheader('Content-type').split(';')[0] + print mime + print repr(headers.__dict__) + new_url = f.geturl() + self.history.append(self.current_url) + self.set_current_url(new_url) + self.loader.queue_clear() + self.loader.load_uri(self.view.open_stream(mime), link, f) + self.loader.queue_load() + else: + self.document.clear() + self.win.finish_loading() + + def history_back(self): + url = self.history.pop() + if url: + self.open_url(url) + + def load_url(self, uri, stream): + self.loader.queue_add_uri(stream, uri) + + def set_title(self, title): + self.title = title + self.win.set_title(title) + + def set_base_url(self, base_url): + self.base_url = self.loader.resolve_uri(base_url, self.base_url) +
