From 2d590c581dc673317411e53e4056e68419ddbb5d Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Tue, 14 Jun 2016 13:39:51 +0200 Subject: [PATCH] Make :reload and :stop work --- qutebrowser/browser/commands.py | 5 +---- qutebrowser/browser/tab.py | 6 ++++++ qutebrowser/browser/webengine/webenginetab.py | 13 ++++++++++++- qutebrowser/browser/webkit/webkittab.py | 11 +++++++++++ 4 files changed, 30 insertions(+), 5 deletions(-) diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py index 5c9f5a0e1..57fb3c1dd 100644 --- a/qutebrowser/browser/commands.py +++ b/qutebrowser/browser/commands.py @@ -281,10 +281,7 @@ class CommandDispatcher: """ tab = self._cntwidget(count) if tab is not None: - if force: - tab.page().triggerAction(QWebPage.ReloadAndBypassCache) - else: - tab.reload() + tab.reload(force=force) @cmdutils.register(instance='command-dispatcher', scope='window') @cmdutils.argument('count', count=True) diff --git a/qutebrowser/browser/tab.py b/qutebrowser/browser/tab.py index 6804f041c..f5f4293af 100644 --- a/qutebrowser/browser/tab.py +++ b/qutebrowser/browser/tab.py @@ -151,6 +151,12 @@ class AbstractTab(QWidget): def openurl(self, url): raise NotImplementedError + def reload(self, *, force=False): + raise NotImplementedError + + def stop(self): + raise NotImplementedError + def dump_async(self, callback=None, *, plain=False): """Dump the current page to a file ascync. diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index f0a259260..f239ce9c6 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -22,9 +22,10 @@ from PyQt5.QtCore import pyqtSlot try: - from PyQt5.QtWebEngineWidgets import QWebEngineView + from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage except ImportError: QWebEngineView = None + QWebEnginePage = None from qutebrowser.browser import tab from qutebrowser.utils import usertypes, qtutils @@ -93,6 +94,16 @@ class WebEngineViewTab(tab.AbstractTab): # TODO pass + def reload(self, *, force=False): + if force: + action = QWebEnginePage.ReloadAndBypassCache + else: + action = QWebEnginePage.Reload + self._widget.triggerPageAction(action) + + def stop(self): + self._widget.stop() + def _connect_signals(self): view = self._widget page = view.page() diff --git a/qutebrowser/browser/webkit/webkittab.py b/qutebrowser/browser/webkit/webkittab.py index 06944a8b2..9672363d8 100644 --- a/qutebrowser/browser/webkit/webkittab.py +++ b/qutebrowser/browser/webkit/webkittab.py @@ -20,6 +20,7 @@ """Wrapper over our (QtWebKit) WebView.""" from PyQt5.QtCore import pyqtSlot +from PyQt5.QtWebKitWidgets import QWebPage from qutebrowser.browser import tab from qutebrowser.browser.webkit import webview @@ -99,6 +100,16 @@ class WebViewTab(tab.AbstractTab): def shutdown(self): self._widget.shutdown() + def reload(self, *, force=False): + if force: + action = QWebPage.ReloadAndBypassCache + else: + action = QWebPage.Reload + self._widget.triggerPageAction(action) + + def stop(self): + self._widget.stop() + def _connect_signals(self): view = self._widget page = view.page()