summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <git@the-compiler.org>2015-06-24 23:06:55 +0200
committerFlorian Bruhin <git@the-compiler.org>2015-06-24 23:06:55 +0200
commit4652843b38d03521e7a46b4d00c5f2327400585c (patch)
treecac94896020a69e17b6be6888111446e8f6f5163
parent5d490a4e22d544ff4daf13969ccf2780facdc34f (diff)
downloadqutebrowser-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.py19
-rw-r--r--qutebrowser/browser/webview.py8
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):