From 363f3d7ea74a5b22b20ba8fa608b3067215a2754 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Tue, 14 Jun 2016 15:15:45 +0200 Subject: [PATCH] Replace scroll_pos by scroll_pos_px()/_perc() --- qutebrowser/browser/tab.py | 6 ++++-- qutebrowser/browser/webengine/webenginetab.py | 8 +++++--- qutebrowser/browser/webkit/webkittab.py | 8 +++++--- qutebrowser/mainwindow/statusbar/percentage.py | 2 +- qutebrowser/mainwindow/tabwidget.py | 2 +- qutebrowser/misc/sessions.py | 6 +++--- 6 files changed, 19 insertions(+), 13 deletions(-) diff --git a/qutebrowser/browser/tab.py b/qutebrowser/browser/tab.py index 418d0ee50..08fa0d340 100644 --- a/qutebrowser/browser/tab.py +++ b/qutebrowser/browser/tab.py @@ -150,8 +150,10 @@ class AbstractTab(QWidget): def load_status(self): raise NotImplementedError - @property - def scroll_pos(self): + def scroll_pos_perc(self): + raise NotImplementedError + + def scroll_pos_px(self): raise NotImplementedError def openurl(self, url): diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index 685558be3..2750b1aea 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -86,9 +86,11 @@ class WebEngineViewTab(tab.AbstractTab): def load_status(self): return usertypes.LoadStatus.success - @property - def scroll_pos(self): - return (0, 0) + def scroll_pos_perc(self): + return (0, 0) # FIXME + + def scroll_pos_px(self): + return self._widget.page().scrollPosition() def set_zoom_factor(self, factor): self._widget.setZoomFactor(factor) diff --git a/qutebrowser/browser/webkit/webkittab.py b/qutebrowser/browser/webkit/webkittab.py index 40521f4ee..9c82f0ae8 100644 --- a/qutebrowser/browser/webkit/webkittab.py +++ b/qutebrowser/browser/webkit/webkittab.py @@ -63,7 +63,7 @@ class WebViewHistory(tab.AbstractHistory): if 'zoom' in cur_data: self.tab.zoom_perc(cur_data['zoom'] * 100) if ('scroll-pos' in cur_data and - self.tab.scroll_position() == QPoint(0, 0)): + self.tab.scroll_pos_px() == QPoint(0, 0)): QTimer.singleShot(0, functools.partial( self.tab.scroll, cur_data['scroll-pos'])) @@ -92,10 +92,12 @@ class WebViewTab(tab.AbstractTab): def load_status(self): return self._widget.load_status - @property - def scroll_pos(self): + def scroll_pos_perc(self): return self._widget.scroll_pos + def scroll_pos_px(self): + return self._widget.page().mainFrame().scrollPosition() + def dump_async(self, callback=None, *, plain=False): frame = self._widget.page().mainFrame() if plain: diff --git a/qutebrowser/mainwindow/statusbar/percentage.py b/qutebrowser/mainwindow/statusbar/percentage.py index ccc1f1ecf..dc52f7bfa 100644 --- a/qutebrowser/mainwindow/statusbar/percentage.py +++ b/qutebrowser/mainwindow/statusbar/percentage.py @@ -52,4 +52,4 @@ class Percentage(textbase.TextBase): @pyqtSlot(webview.WebView) def on_tab_changed(self, tab): """Update scroll position when tab changed.""" - self.set_perc(*tab.scroll_pos) + self.set_perc(*tab.scroll_pos_perc()) diff --git a/qutebrowser/mainwindow/tabwidget.py b/qutebrowser/mainwindow/tabwidget.py index 706bc8982..d14e823e4 100644 --- a/qutebrowser/mainwindow/tabwidget.py +++ b/qutebrowser/mainwindow/tabwidget.py @@ -127,7 +127,7 @@ class TabWidget(QTabWidget): except qtutils.QtValueError: fields['host'] = '' - y = widget.scroll_pos[1] + y = widget.scroll_pos_perc()[1] if y <= 0: scroll_pos = 'top' elif y >= 100: diff --git a/qutebrowser/misc/sessions.py b/qutebrowser/misc/sessions.py index 66bcf7b9f..5e2bbec68 100644 --- a/qutebrowser/misc/sessions.py +++ b/qutebrowser/misc/sessions.py @@ -165,15 +165,15 @@ class SessionManager(QObject): user_data = item.userData() if tab.history.current_idx() == idx: - pos = tab.scroll_pos + pos = tab.scroll_pos_px() item_data['zoom'] = tab.zoom_factor() - item_data['scroll-pos'] = {'x': pos[0], 'y': pos[1]} + item_data['scroll-pos'] = {'x': pos.x(), 'y': pos.y()} elif user_data is not None: if 'zoom' in user_data: item_data['zoom'] = user_data['zoom'] if 'scroll-pos' in user_data: pos = user_data['scroll-pos'] - item_data['scroll-pos'] = {'x': pos[0], 'y': pos[1]} + item_data['scroll-pos'] = {'x': pos.x(), 'y': pos.y()} data['history'].append(item_data) return data