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)
+