summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <git@the-compiler.org>2016-07-26 12:55:40 +0200
committerFlorian Bruhin <git@the-compiler.org>2016-07-26 12:55:40 +0200
commit878fa262477b368efdfedad2102a65ee5cd64343 (patch)
tree4d726dfe6d76eb06f79d8d8206acd5eba69c073a
parent214641301c96e07854b68e9e344ab022fd0a8ea2 (diff)
downloadqutebrowser-878fa262477b368efdfedad2102a65ee5cd64343.tar.gz
qutebrowser-878fa262477b368efdfedad2102a65ee5cd64343.zip
Use real slots for QtWebKit signals
Otherwise we can get this when immediately quitting: Traceback (most recent call last): File ".../qutebrowser/browser/webkit/webkittab.py", line 580, in <lambda> not self._widget.page().error_occurred)) RuntimeError: wrapped C/C++ object of type WebView has been deleted
-rw-r--r--qutebrowser/browser/webkit/webkittab.py29
1 files changed, 17 insertions, 12 deletions
diff --git a/qutebrowser/browser/webkit/webkittab.py b/qutebrowser/browser/webkit/webkittab.py
index ef3dbdce4..e8366ffa2 100644
--- a/qutebrowser/browser/webkit/webkittab.py
+++ b/qutebrowser/browser/webkit/webkittab.py
@@ -557,6 +557,21 @@ class WebKitTab(browsertab.AbstractTab):
def set_html(self, html, base_url):
self._widget.setHtml(html, base_url)
+ @pyqtSlot()
+ def _on_frame_load_finished(self):
+ """Make sure we emit an appropriate status when loading finished.
+
+ While Qt has a bool "ok" attribute for loadFinished, it always is True
+ when using error pages... See
+ https://github.com/The-Compiler/qutebrowser/issues/84
+ """
+ self._on_load_finished(not self._widget.page().error_occurred)
+
+ @pyqtSlot()
+ def _on_webkit_icon_changed(self):
+ """Emit iconChanged with a QIcon like QWebEngineView does."""
+ self.icon_changed.emit(self._widget.icon())
+
def _connect_signals(self):
view = self._widget
page = view.page()
@@ -570,15 +585,5 @@ class WebKitTab(browsertab.AbstractTab):
view.urlChanged.connect(self._on_url_changed)
view.shutting_down.connect(self.shutting_down)
page.networkAccessManager().sslErrors.connect(self._on_ssl_errors)
-
- # Make sure we emit an appropriate status when loading finished. While
- # Qt has a bool "ok" attribute for loadFinished, it always is True when
- # using error pages...
- # See https://github.com/The-Compiler/qutebrowser/issues/84
- frame.loadFinished.connect(lambda:
- self._on_load_finished(
- not self._widget.page().error_occurred))
-
- # Emit iconChanged with a QIcon like QWebEngineView does.
- view.iconChanged.connect(lambda:
- self.icon_changed.emit(self._widget.icon()))
+ frame.loadFinished.connect(self._on_frame_load_finished)
+ view.iconChanged.connect(self._on_webkit_icon_changed)