From 00f1ff9f8a1f853ca1a009a9382b00ae644bfdb8 Mon Sep 17 00:00:00 2001 From: Matt Singleton Date: Mon, 1 Feb 2021 09:31:55 -0600 Subject: checkpoint --- browser.py | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) (limited to 'browser.py') 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 = '

{} {}

'.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/')) -- cgit v1.2.3