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)
|
usertypes, standarddir, error, qtutils)
|
||||||
# pylint: disable=unused-import
|
# pylint: disable=unused-import
|
||||||
# We import those to run the cmdutils.register decorators.
|
# 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.mainwindow.statusbar import command
|
||||||
from qutebrowser.misc import utilcmds
|
from qutebrowser.misc import utilcmds
|
||||||
# pylint: enable=unused-import
|
# pylint: enable=unused-import
|
||||||
|
@ -793,73 +793,6 @@ class CommandDispatcher:
|
|||||||
modeman.leave(self._win_id, KeyMode.caret, "yank selected",
|
modeman.leave(self._win_id, KeyMode.caret, "yank selected",
|
||||||
maybe=True)
|
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')
|
@cmdutils.register(instance='command-dispatcher', scope='window')
|
||||||
def tab_only(self, prev=False, next_=False, force=False):
|
def tab_only(self, prev=False, next_=False, force=False):
|
||||||
"""Close all tabs except for the current one.
|
"""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