Make stuff run again
This commit is contained in:
parent
d3eaeaac91
commit
1ca80fec8e
@ -397,17 +397,17 @@ class QuteBrowser(QApplication):
|
||||
self.config.changed.connect(obj.on_config_changed)
|
||||
|
||||
# statusbar
|
||||
tabs.currentChanged.connect(status.prog.current_changed)
|
||||
tabs.currentChanged.connect(status.prog.on_tab_changed)
|
||||
tabs.cur_progress.connect(status.prog.setValue)
|
||||
tabs.cur_load_finished.connect(status.prog.hide)
|
||||
tabs.cur_load_started.connect(status.prog.on_load_started)
|
||||
|
||||
tabs.currentChanged.connect(status.percentage.current_changed)
|
||||
tabs.currentChanged.connect(status.percentage.on_tab_changed)
|
||||
tabs.cur_scroll_perc_changed.connect(status.percentage.set_perc)
|
||||
|
||||
tabs.cur_statusbar_message.connect(status.txt.on_statusbar_message)
|
||||
|
||||
tabs.currentChanged.connect(status.url.current_changed)
|
||||
tabs.currentChanged.connect(status.url.on_tab_changed)
|
||||
tabs.cur_url_changed.connect(status.url.set_url)
|
||||
tabs.cur_link_hovered.connect(status.url.set_hover_url)
|
||||
|
||||
|
@ -45,3 +45,9 @@ class Percentage(TextBase):
|
||||
self.setText('[bot]')
|
||||
else:
|
||||
self.setText('[{:2}%]'.format(y))
|
||||
|
||||
@pyqtSlot(int)
|
||||
def on_tab_changed(self, idx):
|
||||
"""Update scroll position when tab changed."""
|
||||
tab = self.sender().widget(idx)
|
||||
self.set_perc(*tab.scroll_pos)
|
||||
|
@ -20,6 +20,7 @@
|
||||
from PyQt5.QtCore import pyqtSlot
|
||||
from PyQt5.QtWidgets import QProgressBar, QSizePolicy
|
||||
|
||||
from qutebrowser.widgets.webview import LoadStatus
|
||||
from qutebrowser.config.style import set_register_stylesheet
|
||||
|
||||
|
||||
@ -57,3 +58,12 @@ class Progress(QProgressBar):
|
||||
"""Clear old error and show progress, used as slot to loadStarted."""
|
||||
self.setValue(0)
|
||||
self.show()
|
||||
|
||||
@pyqtSlot(int)
|
||||
def on_tab_changed(self, idx):
|
||||
tab = self.sender().widget(idx)
|
||||
self.setValue(tab.progress)
|
||||
if tab.load_status == LoadStatus.loading:
|
||||
self.show()
|
||||
else:
|
||||
self.hide()
|
||||
|
@ -19,6 +19,7 @@
|
||||
|
||||
from PyQt5.QtCore import pyqtSlot, pyqtProperty, Qt
|
||||
|
||||
from qutebrowser.widgets.webview import LoadStatus
|
||||
from qutebrowser.widgets.statusbar._textbase import TextBase
|
||||
from qutebrowser.config.style import set_register_stylesheet, get_stylesheet
|
||||
from qutebrowser.utils.url import urlstring
|
||||
@ -140,3 +141,14 @@ class Url(TextBase):
|
||||
self.urltype = self._old_urltype
|
||||
self._old_url = None
|
||||
self._old_urltype = None
|
||||
|
||||
@pyqtSlot(int)
|
||||
def on_tab_changed(self, idx):
|
||||
"""Update URL if the tab changed."""
|
||||
tab = self.sender().widget(idx)
|
||||
self.setText(urlstring(tab.url()))
|
||||
status = LoadStatus[tab.load_status]
|
||||
if status in ['success', 'error', 'warn']:
|
||||
self.urltype = status
|
||||
else:
|
||||
self.urltype = 'normal'
|
||||
|
@ -59,7 +59,7 @@ class WebView(QWebView):
|
||||
Accessed via load_status property.
|
||||
_has_ssl_errors: Whether SSL errors occured during loading.
|
||||
_zoom: A NeighborList with the zoom levels.
|
||||
_scroll_pos: The old scroll position.
|
||||
_old_scroll_pos: The old scroll position.
|
||||
_shutdown_callback: Callback to be called after shutdown.
|
||||
_open_target: Where to open the next tab ("normal", "tab", "bgtab")
|
||||
_force_open_target: Override for _open_target.
|
||||
@ -82,7 +82,8 @@ class WebView(QWebView):
|
||||
super().__init__(parent)
|
||||
self._load_status = LoadStatus.none
|
||||
self.tabbedbrowser = parent
|
||||
self._scroll_pos = (-1, -1)
|
||||
self.scroll_pos = (-1, -1)
|
||||
self._old_scroll_pos = (-1, -1)
|
||||
self._shutdown_callback = None
|
||||
self._open_target = Target.normal
|
||||
self._force_open_target = None
|
||||
@ -90,9 +91,6 @@ class WebView(QWebView):
|
||||
self._zoom = None
|
||||
self._init_neighborlist()
|
||||
self.progress = 0
|
||||
self.loadProgress.connect(lambda p: setattr(self, 'progress', p))
|
||||
self.page_.networkAccessManager().sslErrors.connect(
|
||||
lambda *args: setattr(self, '_has_ssl_errors', True))
|
||||
self.page_ = BrowserPage(self)
|
||||
self.setPage(self.page_)
|
||||
self.hintmanager = HintManager(self)
|
||||
@ -103,6 +101,9 @@ class WebView(QWebView):
|
||||
self.linkClicked.connect(self.on_link_clicked)
|
||||
self.page_.mainFrame().loadStarted.connect(self.on_load_started)
|
||||
self.loadFinished.connect(self.on_load_finished)
|
||||
self.loadProgress.connect(lambda p: setattr(self, 'progress', p))
|
||||
self.page_.networkAccessManager().sslErrors.connect(
|
||||
lambda *args: setattr(self, '_has_ssl_errors', True))
|
||||
# FIXME find some way to hide scrollbars without setScrollBarPolicy
|
||||
|
||||
@property
|
||||
@ -374,11 +375,11 @@ class WebView(QWebView):
|
||||
def on_load_finished(self, ok):
|
||||
"""Handle auto-insert-mode after loading finished."""
|
||||
if ok and not self._has_ssl_errors:
|
||||
self.urltype = 'success'
|
||||
self.load_status = LoadStatus.success
|
||||
elif ok:
|
||||
self.urltype = 'warn'
|
||||
self.load_status = LoadStatus.warn
|
||||
else:
|
||||
self.urltype = 'error'
|
||||
self.load_status = LoadStatus.error
|
||||
if not config.get('input', 'auto-insert-mode'):
|
||||
return
|
||||
if modeman.instance().mode == 'insert' or not ok:
|
||||
@ -449,8 +450,8 @@ class WebView(QWebView):
|
||||
frame = self.page_.mainFrame()
|
||||
new_pos = (frame.scrollBarValue(Qt.Horizontal),
|
||||
frame.scrollBarValue(Qt.Vertical))
|
||||
if self._scroll_pos != new_pos:
|
||||
self._scroll_pos = new_pos
|
||||
if self._old_scroll_pos != new_pos:
|
||||
self._old_scroll_pos = new_pos
|
||||
logging.debug("Updating scroll position")
|
||||
m = (frame.scrollBarMaximum(Qt.Horizontal),
|
||||
frame.scrollBarMaximum(Qt.Vertical))
|
||||
|
Loading…
Reference in New Issue
Block a user