summaryrefslogtreecommitdiff
path: root/browser.py
diff options
context:
space:
mode:
Diffstat (limited to 'browser.py')
-rwxr-xr-xbrowser.py36
1 files changed, 28 insertions, 8 deletions
diff --git a/browser.py b/browser.py
index 625f4b1..cda35de 100755
--- a/browser.py
+++ b/browser.py
@@ -2,7 +2,7 @@
import sys
-from PySide2 import QtCore, QtWidgets
+from PySide2 import QtCore, QtWidgets, QtGui
import gemini
@@ -28,13 +28,26 @@ class GViewport(QtWidgets.QTextBrowser):
def loadResource(self, type_, url):
gem = gemini.get(url.toString())
+ print(gem['body'])
if 'body' in gem:
html = gemini.gem2html(gem['body'])
else:
html = '<h1>{} {}</h1>'.format(gem['status'], gem['meta'])
- self.resourceLoadedStatus.emit('{status} {meta}'.format(status=gem['status'], meta=gem['meta']))
+ self.resourceLoadedStatus.emit(
+ '{status} {meta}'.format(status=gem['status'], meta=gem['meta'])
+ )
return html
+ def setSource(self, url, type_=None):
+ """
+ send all unsupported urls to the OS
+ """
+ if url.scheme() == 'gemini':
+ if type_ is None:
+ return super().setSource(url)
+ return super().setSource(url, type_)
+ return QtGui.QDesktopServices().openUrl(url)
+
def setRawSource(self):
return self.setSource(QtCore.QUrl(self.address_bar.text()))
@@ -50,12 +63,10 @@ class GBrowser(QtWidgets.QMainWindow):
def __init__(self):
QtWidgets.QMainWindow.__init__(self)
- self.init_ui()
- def init_ui(self):
- request_status = QtWidgets.QLabel()
- self.statusBar().addWidget(request_status)
+ ## Create widgets
+ # Navigation Toolbar
back = QtWidgets.QPushButton("back")
forward = QtWidgets.QPushButton("forward")
address = GUrlBar()
@@ -64,8 +75,17 @@ class GBrowser(QtWidgets.QMainWindow):
toolbar.addWidget(back)
toolbar.addWidget(forward)
toolbar.addWidget(address)
+ self.addToolBar(toolbar)
+
+ # Main Viewport
browser = GViewport(address)
+ self.setCentralWidget(browser)
+ # Status Bar
+ request_status = QtWidgets.QLabel()
+ self.statusBar().addWidget(request_status)
+
+ # Connect signals
back.clicked.connect(browser.backward)
forward.clicked.connect(browser.forward)
browser.sourceChanged.connect(address.setUrl)
@@ -73,8 +93,8 @@ class GBrowser(QtWidgets.QMainWindow):
browser.hoverUrlChanged.connect(self.set_status_url)
browser.resourceLoadedStatus.connect(request_status.setText)
- self.addToolBar(toolbar)
- self.setCentralWidget(browser)
+ #
+ browser.document().setDefaultStyleSheet(open('style.css').read())
browser.setSource(QtCore.QUrl('gemini://gemini.circumlunar.space/'))