Resolved conflicts for merge, regenerated asciidoc, removed whitespace

Removed whitespace
This commit is contained in:
Philip Scheel 2018-09-04 00:09:21 +02:00
parent 35c2f95a58
commit cf13c31142
20 changed files with 76 additions and 58 deletions

View File

@ -37,9 +37,11 @@ Changed
- The `app_id` is now set to `qutebrowser` for Wayland. - The `app_id` is now set to `qutebrowser` for Wayland.
- `Command` or `Cmd` can now be used (instead of `Meta`) to map the Command key - `Command` or `Cmd` can now be used (instead of `Meta`) to map the Command key
on macOS. on macOS.
- Using `:set option` now shows the value of the setting (like `:set option?`
already did).
v1.4.2 (unreleased) v1.4.2
------------------- ------
Changed Changed
~~~~~~~ ~~~~~~~
@ -65,6 +67,8 @@ Fixed
Note it still does not work on Qt 5.10 (due to a Qt bug) and Qt < 5.9.2. Note it still does not work on Qt 5.10 (due to a Qt bug) and Qt < 5.9.2.
- Repeated escaping of entries in `qute://log` when refreshing page. - Repeated escaping of entries in `qute://log` when refreshing page.
- The host blocker doesn't block 0.0.0.0 anymore. - The host blocker doesn't block 0.0.0.0 anymore.
- Crash when using :// as URL pattern.
- The `:buffer` completion now sorts tabs with indices >= 10 correctly again.
v1.4.1 v1.4.1
------ ------
@ -89,7 +93,6 @@ Fixed
- The Windows installer now uninstalls the old version before installing the - The Windows installer now uninstalls the old version before installing the
new one, fixing issues with qutebrowser not starting after installing v1.4.0 new one, fixing issues with qutebrowser not starting after installing v1.4.0
over v1.3.3. over v1.3.3.
- The `:buffer` completion now sorts tabs with indices >= 10 correctly again.
v1.4.0 v1.4.0
------ ------

View File

@ -1139,7 +1139,7 @@ Syntax: +:set [*--temp*] [*--print*] [*--pattern* 'pattern'] ['option'] ['value'
Set an option. Set an option.
If the option name ends with '?', the value of the option is shown instead. Using :set without any arguments opens a page where settings can be changed interactively. If the option name ends with '?' or no value is provided, the value of the option is shown instead. Using :set without any arguments opens a page where settings can be changed interactively.
==== positional arguments ==== positional arguments
* +'option'+: The name of the option. * +'option'+: The name of the option.

View File

@ -100,6 +100,7 @@
|<<completion.delay,completion.delay>>|Delay (in milliseconds) before updating completions after typing a character. |<<completion.delay,completion.delay>>|Delay (in milliseconds) before updating completions after typing a character.
|<<completion.height,completion.height>>|Height (in pixels or as percentage of the window) of the completion. |<<completion.height,completion.height>>|Height (in pixels or as percentage of the window) of the completion.
|<<completion.min_chars,completion.min_chars>>|Minimum amount of characters needed to update completions. |<<completion.min_chars,completion.min_chars>>|Minimum amount of characters needed to update completions.
|<<completion.open_categories,completion.open_categories>>|Which categories to show (in which order) in the :open completion.
|<<completion.quick,completion.quick>>|Move on to the next part when there's only one possible completion left. |<<completion.quick,completion.quick>>|Move on to the next part when there's only one possible completion left.
|<<completion.scrollbar.padding,completion.scrollbar.padding>>|Padding (in pixels) of the scrollbar handle in the completion window. |<<completion.scrollbar.padding,completion.scrollbar.padding>>|Padding (in pixels) of the scrollbar handle in the completion window.
|<<completion.scrollbar.width,completion.scrollbar.width>>|Width (in pixels) of the scrollbar in the completion window. |<<completion.scrollbar.width,completion.scrollbar.width>>|Width (in pixels) of the scrollbar in the completion window.
@ -268,7 +269,6 @@
|<<url.default_page,url.default_page>>|Page to open if :open -t/-b/-w is used without URL. |<<url.default_page,url.default_page>>|Page to open if :open -t/-b/-w is used without URL.
|<<url.incdec_segments,url.incdec_segments>>|URL segments where `:navigate increment/decrement` will search for a number. |<<url.incdec_segments,url.incdec_segments>>|URL segments where `:navigate increment/decrement` will search for a number.
|<<url.open_base_url,url.open_base_url>>|Open base URL of the searchengine if a searchengine shortcut is invoked without parameters. |<<url.open_base_url,url.open_base_url>>|Open base URL of the searchengine if a searchengine shortcut is invoked without parameters.
|<<url.open_categories_shown,url.open_categories_shown>>|Which categories should be shown in the :open dialogue.
|<<url.searchengines,url.searchengines>>|Search engines which can be used via the address bar. |<<url.searchengines,url.searchengines>>|Search engines which can be used via the address bar.
|<<url.start_pages,url.start_pages>>|Page(s) to open at the start. |<<url.start_pages,url.start_pages>>|Page(s) to open at the start.
|<<url.yank_ignored_parameters,url.yank_ignored_parameters>>|URL parameters to strip with `:yank url`. |<<url.yank_ignored_parameters,url.yank_ignored_parameters>>|URL parameters to strip with `:yank url`.
@ -1386,6 +1386,26 @@ Type: <<types,Int>>
Default: +pass:[1]+ Default: +pass:[1]+
[[completion.open_categories]]
=== completion.open_categories
Which categories to show (in which order) in the :open completion.
Type: <<types,FlagList>>
Valid values:
* +searchengines+
* +quickmarks+
* +bookmarks+
* +history+
Default:
- +pass:[searchengines]+
- +pass:[quickmarks]+
- +pass:[bookmarks]+
- +pass:[history]+
[[completion.quick]] [[completion.quick]]
=== completion.quick === completion.quick
Move on to the next part when there's only one possible completion left. Move on to the next part when there's only one possible completion left.
@ -3274,18 +3294,6 @@ Type: <<types,Bool>>
Default: +pass:[false]+ Default: +pass:[false]+
[[url.open_categories_shown]]
=== url.open_categories_shown
Which categories should be shown in the :open dialogue.
Type: <<types,List of Strings>>
Default
- +pass:[bookmarks]+
- +pass:[searchengines]+
- +pass:[history]+
- +pass:[quickmarks]+
[[url.searchengines]] [[url.searchengines]]
=== url.searchengines === url.searchengines
Search engines which can be used via the address bar. Search engines which can be used via the address bar.

View File

@ -1,6 +1,6 @@
# This file is automatically generated by scripts/dev/recompile_requirements.py # This file is automatically generated by scripts/dev/recompile_requirements.py
certifi==2018.8.13 certifi==2018.8.24
chardet==3.0.4 chardet==3.0.4
codecov==2.0.15 codecov==2.0.15
coverage==4.5.1 coverage==4.5.1

View File

@ -1,6 +1,6 @@
# This file is automatically generated by scripts/dev/recompile_requirements.py # This file is automatically generated by scripts/dev/recompile_requirements.py
attrs==18.1.0 attrs==18.2.0
flake8==3.5.0 flake8==3.5.0
flake8-bugbear==18.8.0 flake8-bugbear==18.8.0
flake8-builtins==1.4.1 # rq.filter: != 1.4.0 flake8-builtins==1.4.1 # rq.filter: != 1.4.0
@ -24,4 +24,4 @@ pydocstyle==2.1.1
pyflakes==2.0.0 pyflakes==2.0.0
six==1.11.0 six==1.11.0
snowballstemmer==1.2.1 snowballstemmer==1.2.1
typing==3.6.4 typing==3.6.6

View File

@ -3,6 +3,6 @@
appdirs==1.4.3 appdirs==1.4.3
packaging==17.1 packaging==17.1
pyparsing==2.2.0 pyparsing==2.2.0
setuptools==40.1.0 setuptools==40.2.0
six==1.11.0 six==1.11.0
wheel==0.31.1 wheel==0.31.1

View File

@ -2,6 +2,6 @@
altgraph==0.16.1 altgraph==0.16.1
future==0.16.0 future==0.16.0
macholib==1.10 macholib==1.11
pefile==2018.8.8 pefile==2018.8.8
PyInstaller==3.3.1 PyInstaller==3.3.1

View File

@ -1,13 +1,18 @@
# This file is automatically generated by scripts/dev/recompile_requirements.py # This file is automatically generated by scripts/dev/recompile_requirements.py
asn1crypto==0.24.0
-e git+https://github.com/PyCQA/astroid.git#egg=astroid -e git+https://github.com/PyCQA/astroid.git#egg=astroid
certifi==2018.8.13 certifi==2018.8.24
cffi==1.11.5
chardet==3.0.4 chardet==3.0.4
github3.py==1.1.0 cryptography==2.3.1
github3.py==1.2.0
idna==2.7 idna==2.7
isort==4.3.4 isort==4.3.4
jwcrypto==0.5.0
lazy-object-proxy==1.3.1 lazy-object-proxy==1.3.1
mccabe==0.6.1 mccabe==0.6.1
pycparser==2.18
-e git+https://github.com/PyCQA/pylint.git#egg=pylint -e git+https://github.com/PyCQA/pylint.git#egg=pylint
python-dateutil==2.7.3 python-dateutil==2.7.3
./scripts/dev/pylint_checkers ./scripts/dev/pylint_checkers

View File

@ -1,13 +1,18 @@
# This file is automatically generated by scripts/dev/recompile_requirements.py # This file is automatically generated by scripts/dev/recompile_requirements.py
asn1crypto==0.24.0
astroid==2.0.4 astroid==2.0.4
certifi==2018.8.13 certifi==2018.8.24
cffi==1.11.5
chardet==3.0.4 chardet==3.0.4
github3.py==1.1.0 cryptography==2.3.1
github3.py==1.2.0
idna==2.7 idna==2.7
isort==4.3.4 isort==4.3.4
jwcrypto==0.5.0
lazy-object-proxy==1.3.1 lazy-object-proxy==1.3.1
mccabe==0.6.1 mccabe==0.6.1
pycparser==2.18
pylint==2.1.1 pylint==2.1.1
python-dateutil==2.7.3 python-dateutil==2.7.3
./scripts/dev/pylint_checkers ./scripts/dev/pylint_checkers

View File

@ -1,10 +1,10 @@
# This file is automatically generated by scripts/dev/recompile_requirements.py # This file is automatically generated by scripts/dev/recompile_requirements.py
atomicwrites==1.1.5 atomicwrites==1.2.1
attrs==18.1.0 attrs==18.2.0
backports.functools-lru-cache==1.5 backports.functools-lru-cache==1.5
beautifulsoup4==4.6.3 beautifulsoup4==4.6.3
cheroot==6.4.0 cheroot==6.5.2
click==6.7 click==6.7
# colorama==0.3.9 # colorama==0.3.9
coverage==4.5.1 coverage==4.5.1
@ -13,7 +13,7 @@ fields==5.0.0
Flask==1.0.2 Flask==1.0.2
glob2==0.6 glob2==0.6
hunter==2.0.2 hunter==2.0.2
hypothesis==3.69.0 hypothesis==3.70.3
itsdangerous==0.24 itsdangerous==0.24
# Jinja2==2.10 # Jinja2==2.10
Mako==1.0.7 Mako==1.0.7
@ -22,17 +22,17 @@ more-itertools==4.3.0
parse==1.8.4 parse==1.8.4
parse-type==0.4.2 parse-type==0.4.2
pluggy==0.7.1 pluggy==0.7.1
py==1.5.4 py==1.6.0
py-cpuinfo==4.0.0 py-cpuinfo==4.0.0
pytest==3.6.4 # rq.filter: != 3.7, != 3.7.1, != 3.7.2 pytest==3.6.4 # rq.filter: != 3.7, != 3.7.1, != 3.7.2, != 3.7.3, != 3.7.4
pytest-bdd==2.21.0 pytest-bdd==2.21.0
pytest-benchmark==3.1.1 pytest-benchmark==3.1.1
pytest-cov==2.5.1 pytest-cov==2.5.1
pytest-faulthandler==1.5.0 pytest-faulthandler==1.5.0
pytest-instafail==0.4.0 pytest-instafail==0.4.0
pytest-mock==1.10.0 pytest-mock==1.10.0
pytest-qt==3.0.0 pytest-qt==3.0.2
pytest-repeat==0.6.0 pytest-repeat==0.7.0
pytest-rerunfailures==4.1 pytest-rerunfailures==4.1
pytest-travis-fold==1.3.0 pytest-travis-fold==1.3.0
pytest-xvfb==1.1.0 pytest-xvfb==1.1.0

View File

@ -19,4 +19,4 @@ pytest-xvfb
vulture vulture
#@ ignore: Jinja2, MarkupSafe, colorama #@ ignore: Jinja2, MarkupSafe, colorama
#@ filter: pytest != 3.7, != 3.7.1, != 3.7.2 #@ filter: pytest != 3.7, != 3.7.1, != 3.7.2, != 3.7.3, != 3.7.4

View File

@ -1,9 +1,7 @@
# This file is automatically generated by scripts/dev/recompile_requirements.py # This file is automatically generated by scripts/dev/recompile_requirements.py
packaging==17.1
pluggy==0.7.1 pluggy==0.7.1
py==1.5.4 py==1.6.0
pyparsing==2.2.0
six==1.11.0 six==1.11.0
tox==3.2.1 tox==3.2.1
virtualenv==16.0.0 virtualenv==16.0.0

View File

@ -26,7 +26,7 @@ __copyright__ = "Copyright 2014-2018 Florian Bruhin (The Compiler)"
__license__ = "GPL" __license__ = "GPL"
__maintainer__ = __author__ __maintainer__ = __author__
__email__ = "mail@qutebrowser.org" __email__ = "mail@qutebrowser.org"
__version_info__ = (1, 4, 1) __version_info__ = (1, 4, 2)
__version__ = '.'.join(str(e) for e in __version_info__) __version__ = '.'.join(str(e) for e in __version_info__)
__description__ = "A keyboard-driven, vim-like browser based on PyQt5." __description__ = "A keyboard-driven, vim-like browser based on PyQt5."

View File

@ -87,5 +87,5 @@ def url(*, info):
for category in categories: for category in categories:
if category in models: if category in models:
model.add_category(models[category]) model.add_category(models[category])
return model return model

View File

@ -85,8 +85,8 @@ class ConfigCommands:
*, pattern=None): *, pattern=None):
"""Set an option. """Set an option.
If the option name ends with '?', the value of the option is shown If the option name ends with '?' or no value is provided, the
instead. value of the option is shown instead.
Using :set without any arguments opens a page where settings can be Using :set without any arguments opens a page where settings can be
changed interactively. changed interactively.
@ -116,8 +116,7 @@ class ConfigCommands:
with self._handle_config_error(): with self._handle_config_error():
if value is None: if value is None:
raise cmdexc.CommandError("set: The following arguments " self._print_value(option, pattern=pattern)
"are required: value")
else: else:
self._config.set_str(option, value, pattern=pattern, self._config.set_str(option, value, pattern=pattern,
save_yaml=not temp) save_yaml=not temp)

View File

@ -123,7 +123,7 @@ class BaseType:
"""A type used for a setting value. """A type used for a setting value.
Attributes: Attributes:
none_ok: Whether to convert to None for an empty string. none_ok: Whether to allow None (or an empty string for :set) as value.
Class attributes: Class attributes:
valid_values: Possible values if they can be expressed as a fixed valid_values: Possible values if they can be expressed as a fixed

View File

@ -142,7 +142,9 @@ class UrlPattern:
Deviation from Chromium: Deviation from Chromium:
- We assume * when no scheme has been given. - We assume * when no scheme has been given.
""" """
assert parsed.scheme, parsed if not parsed.scheme:
raise ParseError("Missing scheme")
if parsed.scheme == 'any': if parsed.scheme == 'any':
self._scheme = None self._scheme = None
return return

View File

@ -1,6 +1,6 @@
# This file is automatically generated by scripts/dev/recompile_requirements.py # This file is automatically generated by scripts/dev/recompile_requirements.py
attrs==18.1.0 attrs==18.2.0
colorama==0.3.9 colorama==0.3.9
cssutils==1.0.2 cssutils==1.0.2
Jinja2==2.10 Jinja2==2.10

View File

@ -61,13 +61,14 @@ class TestSet:
commands.set(win_id=0) commands.set(win_id=0)
assert tabbed_browser_stubs[0].opened_url == QUrl('qute://settings') assert tabbed_browser_stubs[0].opened_url == QUrl('qute://settings')
def test_get(self, config_stub, commands, message_mock): @pytest.mark.parametrize('option', ['url.auto_search?', 'url.auto_search'])
"""Run ':set url.auto_search?'. def test_get(self, config_stub, commands, message_mock, option):
"""Run ':set url.auto_search?' / ':set url.auto_search'.
Should show the value. Should show the value.
""" """
config_stub.val.url.auto_search = 'never' config_stub.val.url.auto_search = 'never'
commands.set(win_id=0, option='url.auto_search?') commands.set(win_id=0, option=option)
msg = message_mock.getmsg(usertypes.MessageLevel.info) msg = message_mock.getmsg(usertypes.MessageLevel.info)
assert msg.text == 'url.auto_search = never' assert msg.text == 'url.auto_search = never'
@ -183,17 +184,14 @@ class TestSet:
"not available with the QtWebEngine backend!"): "not available with the QtWebEngine backend!"):
commands.set(0, 'hints.find_implementation', 'javascript') commands.set(0, 'hints.find_implementation', 'javascript')
@pytest.mark.parametrize('option', ['?', 'url.auto_search']) def test_empty(self, commands):
def test_empty(self, commands, option): """Run ':set ?'.
"""Run ':set ?' / ':set url.auto_search'.
Should show an error. Should show an error.
See https://github.com/qutebrowser/qutebrowser/issues/1109 See https://github.com/qutebrowser/qutebrowser/issues/1109
""" """
with pytest.raises(cmdexc.CommandError, with pytest.raises(cmdexc.CommandError, match="No option '?'"):
match="The following arguments are required: " commands.set(win_id=0, option='?')
"value"):
commands.set(win_id=0, option=option)
def test_toggle(self, commands): def test_toggle(self, commands):
"""Try toggling a value. """Try toggling a value.

View File

@ -96,7 +96,7 @@ from qutebrowser.utils import urlmatch
("http://[fc2e:bb88:edac]", 'Invalid IPv6 address; source was "fc2e:bb88:edac"; host = ""'), ("http://[fc2e:bb88:edac]", 'Invalid IPv6 address; source was "fc2e:bb88:edac"; host = ""'),
("http://[fc2e:bb88:edac::z]", 'Invalid IPv6 address; source was "fc2e:bb88:edac::z"; host = ""'), ("http://[fc2e:bb88:edac::z]", 'Invalid IPv6 address; source was "fc2e:bb88:edac::z"; host = ""'),
("http://[fc2e:bb88:edac::2]:2a2", "Invalid port: invalid literal for int() with base 10: '2a2'"), ("http://[fc2e:bb88:edac::2]:2a2", "Invalid port: invalid literal for int() with base 10: '2a2'"),
("://", "Missing scheme"),
]) ])
def test_invalid_patterns(pattern, error): def test_invalid_patterns(pattern, error):
with pytest.raises(urlmatch.ParseError, match=re.escape(error)): with pytest.raises(urlmatch.ParseError, match=re.escape(error)):