Move zoom commands to components/
This commit is contained in:
parent
da505c84c6
commit
ba03e9394a
@ -77,7 +77,7 @@ from qutebrowser.utils import (log, version, message, utils, urlutils, objreg,
|
||||
usertypes, standarddir, error, qtutils)
|
||||
# pylint: disable=unused-import
|
||||
# We import those to run the cmdutils.register decorators.
|
||||
from qutebrowser.components import scrollcommands, caretcommands
|
||||
from qutebrowser.components import scrollcommands, caretcommands, zoomcommands
|
||||
from qutebrowser.mainwindow.statusbar import command
|
||||
from qutebrowser.misc import utilcmds
|
||||
# pylint: enable=unused-import
|
||||
|
@ -793,73 +793,6 @@ class CommandDispatcher:
|
||||
modeman.leave(self._win_id, KeyMode.caret, "yank selected",
|
||||
maybe=True)
|
||||
|
||||
@cmdutils.register(instance='command-dispatcher', scope='window')
|
||||
@cmdutils.argument('count', value=cmdutils.Value.count)
|
||||
def zoom_in(self, count=1, quiet=False):
|
||||
"""Increase the zoom level for the current tab.
|
||||
|
||||
Args:
|
||||
count: How many steps to zoom in.
|
||||
quiet: Don't show a zoom level message.
|
||||
"""
|
||||
tab = self._current_widget()
|
||||
try:
|
||||
perc = tab.zoom.apply_offset(count)
|
||||
except ValueError as e:
|
||||
raise cmdutils.CommandError(e)
|
||||
if not quiet:
|
||||
message.info("Zoom level: {}%".format(int(perc)), replace=True)
|
||||
|
||||
@cmdutils.register(instance='command-dispatcher', scope='window')
|
||||
@cmdutils.argument('count', value=cmdutils.Value.count)
|
||||
def zoom_out(self, count=1, quiet=False):
|
||||
"""Decrease the zoom level for the current tab.
|
||||
|
||||
Args:
|
||||
count: How many steps to zoom out.
|
||||
quiet: Don't show a zoom level message.
|
||||
"""
|
||||
tab = self._current_widget()
|
||||
try:
|
||||
perc = tab.zoom.apply_offset(-count)
|
||||
except ValueError as e:
|
||||
raise cmdutils.CommandError(e)
|
||||
if not quiet:
|
||||
message.info("Zoom level: {}%".format(int(perc)), replace=True)
|
||||
|
||||
@cmdutils.register(instance='command-dispatcher', scope='window')
|
||||
@cmdutils.argument('count', value=cmdutils.Value.count)
|
||||
def zoom(self, zoom=None, count=None, quiet=False):
|
||||
"""Set the zoom level for the current tab.
|
||||
|
||||
The zoom can be given as argument or as [count]. If neither is
|
||||
given, the zoom is set to the default zoom. If both are given,
|
||||
use [count].
|
||||
|
||||
Args:
|
||||
zoom: The zoom percentage to set.
|
||||
count: The zoom percentage to set.
|
||||
quiet: Don't show a zoom level message.
|
||||
"""
|
||||
if zoom is not None:
|
||||
try:
|
||||
zoom = int(zoom.rstrip('%'))
|
||||
except ValueError:
|
||||
raise cmdutils.CommandError("zoom: Invalid int value {}"
|
||||
.format(zoom))
|
||||
|
||||
level = count if count is not None else zoom
|
||||
if level is None:
|
||||
level = config.val.zoom.default
|
||||
tab = self._current_widget()
|
||||
|
||||
try:
|
||||
tab.zoom.set_factor(float(level) / 100)
|
||||
except ValueError:
|
||||
raise cmdutils.CommandError("Can't zoom {}%!".format(level))
|
||||
if not quiet:
|
||||
message.info("Zoom level: {}%".format(int(level)), replace=True)
|
||||
|
||||
@cmdutils.register(instance='command-dispatcher', scope='window')
|
||||
def tab_only(self, prev=False, next_=False, force=False):
|
||||
"""Close all tabs except for the current one.
|
||||
|
92
qutebrowser/components/zoomcommands.py
Normal file
92
qutebrowser/components/zoomcommands.py
Normal file
@ -0,0 +1,92 @@
|
||||
# vim: ft=python fileencoding=utf-8 sts=4 sw=4 et:
|
||||
|
||||
# Copyright 2018 Florian Bruhin (The Compiler) <mail@qutebrowser.org>
|
||||
#
|
||||
# This file is part of qutebrowser.
|
||||
#
|
||||
# qutebrowser is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# qutebrowser is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with qutebrowser. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
"""Zooming-related commands."""
|
||||
|
||||
from qutebrowser.api import cmdutils, apitypes, message, config
|
||||
|
||||
|
||||
@cmdutils.register()
|
||||
@cmdutils.argument('tab', value=cmdutils.Value.tab)
|
||||
@cmdutils.argument('count', value=cmdutils.Value.count)
|
||||
def zoom_in(tab: apitypes.Tab, count=1, quiet=False):
|
||||
"""Increase the zoom level for the current tab.
|
||||
|
||||
Args:
|
||||
count: How many steps to zoom in.
|
||||
quiet: Don't show a zoom level message.
|
||||
"""
|
||||
try:
|
||||
perc = tab.zoom.apply_offset(count)
|
||||
except ValueError as e:
|
||||
raise cmdutils.CommandError(e)
|
||||
if not quiet:
|
||||
message.info("Zoom level: {}%".format(int(perc)), replace=True)
|
||||
|
||||
|
||||
@cmdutils.register()
|
||||
@cmdutils.argument('tab', value=cmdutils.Value.tab)
|
||||
@cmdutils.argument('count', value=cmdutils.Value.count)
|
||||
def zoom_out(tab: apitypes.Tab, count=1, quiet=False):
|
||||
"""Decrease the zoom level for the current tab.
|
||||
|
||||
Args:
|
||||
count: How many steps to zoom out.
|
||||
quiet: Don't show a zoom level message.
|
||||
"""
|
||||
try:
|
||||
perc = tab.zoom.apply_offset(-count)
|
||||
except ValueError as e:
|
||||
raise cmdutils.CommandError(e)
|
||||
if not quiet:
|
||||
message.info("Zoom level: {}%".format(int(perc)), replace=True)
|
||||
|
||||
|
||||
@cmdutils.register()
|
||||
@cmdutils.argument('tab', value=cmdutils.Value.tab)
|
||||
@cmdutils.argument('count', value=cmdutils.Value.count)
|
||||
def zoom(tab: apitypes.Tab, zoom=None, count=None, quiet=False):
|
||||
"""Set the zoom level for the current tab.
|
||||
|
||||
The zoom can be given as argument or as [count]. If neither is
|
||||
given, the zoom is set to the default zoom. If both are given,
|
||||
use [count].
|
||||
|
||||
Args:
|
||||
zoom: The zoom percentage to set.
|
||||
count: The zoom percentage to set.
|
||||
quiet: Don't show a zoom level message.
|
||||
"""
|
||||
if zoom is not None:
|
||||
try:
|
||||
zoom = int(zoom.rstrip('%'))
|
||||
except ValueError:
|
||||
raise cmdutils.CommandError("zoom: Invalid int value {}"
|
||||
.format(zoom))
|
||||
|
||||
level = count if count is not None else zoom
|
||||
if level is None:
|
||||
level = config.val.zoom.default
|
||||
|
||||
try:
|
||||
tab.zoom.set_factor(float(level) / 100)
|
||||
except ValueError:
|
||||
raise cmdutils.CommandError("Can't zoom {}%!".format(level))
|
||||
if not quiet:
|
||||
message.info("Zoom level: {}%".format(int(level)), replace=True)
|
Loading…
Reference in New Issue
Block a user