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
This commit is contained in:
parent
214641301c
commit
878fa26247
@ -557,6 +557,21 @@ class WebKitTab(browsertab.AbstractTab):
|
|||||||
def set_html(self, html, base_url):
|
def set_html(self, html, base_url):
|
||||||
self._widget.setHtml(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):
|
def _connect_signals(self):
|
||||||
view = self._widget
|
view = self._widget
|
||||||
page = view.page()
|
page = view.page()
|
||||||
@ -570,15 +585,5 @@ class WebKitTab(browsertab.AbstractTab):
|
|||||||
view.urlChanged.connect(self._on_url_changed)
|
view.urlChanged.connect(self._on_url_changed)
|
||||||
view.shutting_down.connect(self.shutting_down)
|
view.shutting_down.connect(self.shutting_down)
|
||||||
page.networkAccessManager().sslErrors.connect(self._on_ssl_errors)
|
page.networkAccessManager().sslErrors.connect(self._on_ssl_errors)
|
||||||
|
frame.loadFinished.connect(self._on_frame_load_finished)
|
||||||
# Make sure we emit an appropriate status when loading finished. While
|
view.iconChanged.connect(self._on_webkit_icon_changed)
|
||||||
# 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()))
|
|
||||||
|
Loading…
Reference in New Issue
Block a user