diff options
author | Florian Bruhin <git@the-compiler.org> | 2015-06-24 23:06:55 +0200 |
---|---|---|
committer | Florian Bruhin <git@the-compiler.org> | 2015-06-24 23:06:55 +0200 |
commit | 4652843b38d03521e7a46b4d00c5f2327400585c (patch) | |
tree | cac94896020a69e17b6be6888111446e8f6f5163 | |
parent | 5d490a4e22d544ff4daf13969ccf2780facdc34f (diff) | |
download | qutebrowser-4652843b38d03521e7a46b4d00c5f2327400585c.tar.gz qutebrowser-4652843b38d03521e7a46b4d00c5f2327400585c.zip |
Move command-related zoom logic out of WebView.
After f8d66f3fe1123bd2d0448ec95ce48b8030f77896 loading a session showed the
zoom percentage of all tabs.
This logic doesn't really belong into webview.py anyways, so it gets moved to
browser/commands.py here.
-rw-r--r-- | qutebrowser/browser/commands.py | 19 | ||||
-rw-r--r-- | qutebrowser/browser/webview.py | 8 |
2 files changed, 21 insertions, 6 deletions
diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py index 625ceb05f..e29350d1b 100644 --- a/qutebrowser/browser/commands.py +++ b/qutebrowser/browser/commands.py @@ -737,7 +737,11 @@ class CommandDispatcher: count: How many steps to zoom in. """ tab = self._current_widget() - tab.zoom(count) + try: + perc = tab.zoom(count) + except ValueError as e: + raise cmdexc.CommandError(e) + message.info(self._win_id, "Zoom level: {}%".format(perc)) @cmdutils.register(instance='command-dispatcher', scope='window', count='count') @@ -748,7 +752,11 @@ class CommandDispatcher: count: How many steps to zoom out. """ tab = self._current_widget() - tab.zoom(-count) + try: + perc = tab.zoom(-count) + except ValueError as e: + raise cmdexc.CommandError(e) + message.info(self._win_id, "Zoom level: {}%".format(perc)) @cmdutils.register(instance='command-dispatcher', scope='window', count='count') @@ -768,7 +776,12 @@ class CommandDispatcher: except ValueError as e: raise cmdexc.CommandError(e) tab = self._current_widget() - tab.zoom_perc(level) + + try: + tab.zoom_perc(level) + except ValueError as e: + raise cmdexc.CommandError(e) + message.info(self._win_id, "Zoom level: {}%".format(level)) @cmdutils.register(instance='command-dispatcher', scope='window') def tab_only(self, left=False, right=False): diff --git a/qutebrowser/browser/webview.py b/qutebrowser/browser/webview.py index f9c838c70..cfabee80c 100644 --- a/qutebrowser/browser/webview.py +++ b/qutebrowser/browser/webview.py @@ -33,7 +33,6 @@ from qutebrowser.config import config from qutebrowser.keyinput import modeman from qutebrowser.utils import message, log, usertypes, utils, qtutils, objreg from qutebrowser.browser import webpage, hints, webelem -from qutebrowser.commands import cmdexc LoadStatus = usertypes.enum('LoadStatus', ['none', 'success', 'error', 'warn', @@ -369,9 +368,8 @@ class WebView(QWebView): if fuzzyval: self._zoom.fuzzyval = int(perc) if perc < 0: - raise cmdexc.CommandError("Can't zoom {}%!".format(perc)) + raise ValueError("Can't zoom {}%!".format(perc)) self.setZoomFactor(float(perc) / 100) - message.info(self.win_id, "Zoom level: {}%".format(perc)) self._default_zoom_changed = True def zoom(self, offset): @@ -379,9 +377,13 @@ class WebView(QWebView): Args: offset: The offset in the zoom level list. + + Return: + The new zoom percentage. """ level = self._zoom.getitem(offset) self.zoom_perc(level, fuzzyval=False) + return level @pyqtSlot('QUrl') def on_url_changed(self, url): |