Commit Graph

7122 Commits

Author SHA1 Message Date
Christian Helbling
d179450c29 :fullscreen, enter video fullscreen, :fullscreen, exit video fullscreen should not go into video fullscreen 2017-07-06 15:35:52 +02:00
Ryan Roden-Corrent
1dd5f06a4f Fix debug-dump-history behavior.
Ensure the file is closed before printing the success message. This will
hopefully fix the AppVeyor tests.
2017-07-06 08:02:16 -04:00
Ryan Roden-Corrent
cee0aa3adc Show error dialog is sql isn't available.
If creating the sql database fails, show an error dialog assuming sqlite
is not installed.

This removes the isDriverAvailable check as it was true even with sqlite
uninstalled.

sql.version now inits itself if sql is not already initialized and
prints 'UNAVAILABLE (<error message>)' if init fails. This is to avoid
cascading errors, where one error would create a crash dialog, which
calls sql.version, which would create another error.
2017-07-06 07:36:59 -04:00
Florian Bruhin
911e59b0f4 Improve version output without SSL support 2017-07-06 12:23:08 +02:00
Iordanis Grigoriou
57e4d4978b Use page title only for whitelisted extensions 2017-07-06 11:59:02 +02:00
Florian Bruhin
3c9de92d58 Add Gentoo instructions to backend warning 2017-07-06 00:41:06 +02:00
Florian Bruhin
a4833fcc46 Merge branch 'pr/2747' 2017-07-05 22:14:07 +02:00
Florian Bruhin
a8120a23c4 Update comment for TabBarStyle 2017-07-05 22:13:24 +02:00
Ryan Roden-Corrent
dc4472470e Merge remote-tracking branch 'upstream/master' into really_complete 2017-07-05 08:45:57 -04:00
Christian Helbling
361251bf53 mark public attribute as public, fix debug output 2017-07-04 23:30:06 +02:00
Christian Helbling
20db65e430 preserve window state when exiting video fullscreen 2017-07-04 22:56:44 +02:00
Florian Bruhin
28410b8533 Release v0.11.0 2017-07-04 18:02:34 +02:00
Christian Helbling
7ea7a2f3fd restore maximized state on :fullscreen and when exiting video fullscreen 2017-07-04 17:50:07 +02:00
Florian Bruhin
45b1285402 Merge pull request #2765 from jgkamat/jay/tab-crashes
Refactor set_tab_pinned to take a tab widget.
2017-07-04 17:24:10 +02:00
Florian Bruhin
0cdd3ff82f Update some more references to old config options 2017-07-04 16:46:02 +02:00
Florian Bruhin
cff61fa0bc Fix pylint
This also reverts commit 8df0b063be.
2017-07-04 15:34:10 +02:00
Florian Bruhin
88b878098d Implement pretty-printing of configtypes for the doc
This is also needed to make the docs environment work on Travis - as otherwise,
doc generation wasn't deterministic because of changing dict key order.
2017-07-04 15:09:23 +02:00
Florian Bruhin
397ca47efb Fix vulture 2017-07-04 15:09:23 +02:00
Florian Bruhin
9ac2dbcc80 Disallow surrogate escapes in dicts and lists in the config
In Dict.to_str() and List.to_str() we use json.dump to get a value. However,
JSON includes surrogate escapes in the dumped values, which breaks round trips.

>>> yaml.load(json.dumps({'\U00010000': True}))
{'\ud800\udc00': True}

>>> yaml.load(json.dumps({'\U00010000': True}, ensure_ascii=False))
yaml.reader.ReaderError: unacceptable character #x10000: special characters are not allowed

See:
https://stackoverflow.com/a/38552626/2085149
https://news.ycombinator.com/item?id=12798032
2017-07-04 15:09:23 +02:00
Florian Bruhin
0528a800f2 Fix config things relying on dict order 2017-07-04 15:08:04 +02:00
Florian Bruhin
91cd6c6288 Fix Python 3.4 circular imports 2017-07-04 15:08:04 +02:00
Florian Bruhin
b42265212b Update test_keyhints for new config
This also makes the keyhint display things sorted
2017-07-04 15:08:04 +02:00
Florian Bruhin
1663280f53 Update test_shared for new config
Also, make accept_language none_ok=True like it was in the old configdata.py
2017-07-04 15:08:04 +02:00
Florian Bruhin
78d7ac311f Use fonts.monospace properly 2017-07-04 15:08:04 +02:00
Florian Bruhin
4562a3574b Allow a list for content.user_stylesheets 2017-07-04 15:08:04 +02:00
Florian Bruhin
afb3b496e8 Add missing backend: QtWebKit for content.pdfjs 2017-07-04 15:08:04 +02:00
Florian Bruhin
a36f5bafc1 Rename content.javascript.can_*_windows to _tabs 2017-07-04 15:08:04 +02:00
Florian Bruhin
be94098597 Improve more docs 2017-07-04 15:08:04 +02:00
Florian Bruhin
5ada3606d8 Allow to not send the DNT header 2017-07-04 15:08:04 +02:00
Florian Bruhin
040be60697 Improve more docs 2017-07-04 15:08:04 +02:00
Florian Bruhin
202b8445f6 Move content.accept_language under headers 2017-07-04 15:08:04 +02:00
Florian Bruhin
f546cbe934 Clarify some docs 2017-07-04 15:08:04 +02:00
Florian Bruhin
d7036fe8a8 Clarify history_session_interval and rename it to _gap_interval
"session" is already overloaded enough.
2017-07-04 15:08:04 +02:00
Florian Bruhin
8712fc6fd3 Move new_instance_open_target out of url.
It doesn't really fit there really...
See 3cf028db23cbfe256e499d8881c3c2856f224d94
2017-07-04 15:08:04 +02:00
Florian Bruhin
d641652a92 More test_config improvements 2017-07-04 15:08:04 +02:00
Florian Bruhin
c214acd899 Remove config from objreg 2017-07-04 15:08:04 +02:00
Florian Bruhin
1a492e9f4a Re-add backend checks to new config 2017-07-04 15:08:04 +02:00
Florian Bruhin
556f49d367 Add PACFetcher.fetch
Let's not try to download proxies during tests...
2017-07-04 15:08:04 +02:00
Florian Bruhin
2b9b54cf6b Tests and improvements for ConfigContainer 2017-07-04 15:08:03 +02:00
Florian Bruhin
4495e721d8 Tests and fixes for config.Config 2017-07-04 15:08:03 +02:00
Florian Bruhin
e259293f83 Always copy config objects
If we mutate the value we get from the config, we want to make sure the value in
the config always stays the same (especially when it's the default!).
2017-07-04 15:08:03 +02:00
Florian Bruhin
2c3981e57e Get rid of Config.read_configdata()
No need for this indirection
2017-07-04 15:08:03 +02:00
Florian Bruhin
252c5396f3 Apply proxy changes from master
This are the same changes as done in 629038632c,
but only the part related to the config. This is so we don't forget this when
merging them.
2017-07-04 15:08:03 +02:00
Florian Bruhin
07d0ea6a54 Unit tests and improvements for :bind/:unbind 2017-07-04 15:08:03 +02:00
Florian Bruhin
3edebce833 Add tests for :set 2017-07-04 15:08:03 +02:00
Florian Bruhin
31b999ea59 Tests and improvements for KeyConfig 2017-07-04 15:08:03 +02:00
Florian Bruhin
725ffef5f3 Use a real config object in unit tests 2017-07-04 15:08:03 +02:00
Florian Bruhin
5aac991446 Remove unnecessary sip.isdeleted line
Now that the StyleSheetObserver is a child of the object it observes, it should
get cleaned up properly when the object is deleted.

This means this is hopefully not needed anymore, even on Qt 5.2.
2017-07-04 15:08:03 +02:00
Florian Bruhin
978013e750 Fix CommandParser and don't use a generator 2017-07-04 15:08:03 +02:00
Florian Bruhin
a8c7e8ba05 Add first config tests 2017-07-04 15:08:03 +02:00
Florian Bruhin
28670f8e48 Move config.style into config.config and refactor it 2017-07-04 15:08:03 +02:00
Florian Bruhin
a2f62238f1 Change default binding to leave passthrough mode to Ctrl-V
Also, display the binding in the statusbar
2017-07-04 15:08:03 +02:00
Florian Bruhin
df1685905e Add content.headers and content.cache groups 2017-07-04 15:08:03 +02:00
Florian Bruhin
50602cbf26 Add an url. group to settings 2017-07-04 15:08:03 +02:00
Florian Bruhin
5c08c6c930 Add conditional backend infos to docs 2017-07-04 15:08:03 +02:00
Florian Bruhin
034d727a2c Clean up configdata 2017-07-04 15:08:03 +02:00
Florian Bruhin
25ab3b30c2 Initial doc update with new settings 2017-07-04 15:08:03 +02:00
Florian Bruhin
94ac2ca56c Merge :wq into :quit and add an alias 2017-07-04 15:08:03 +02:00
Florian Bruhin
065f82f485 Fix endless recursion while validating aliases 2017-07-04 15:08:03 +02:00
Florian Bruhin
ac78039171 Use aliases for :w and :q 2017-07-04 15:08:03 +02:00
Florian Bruhin
ac64ea287a Rename tabs.new_position/_explicit to .related/.unrelated 2017-07-04 15:08:03 +02:00
Florian Bruhin
441b3a4df4 Allow missing fixed_keys for configtypes.Dict
We just fill them up with a None value for the value type, so we can e.g. only
specify a subset of modes for bindings and the rest is {}.
2017-07-04 15:08:03 +02:00
Florian Bruhin
9d8b76e497 Simplify _none_value for List/Dict configtypes
We don't need to check for fixed_keys/required_keys in get_obj (only get_py),
and we don't need to care about mutability in get_py.
2017-07-04 15:08:03 +02:00
Florian Bruhin
da0a2b8578 Handle {} and [] with none_ok for configtypes.Dict/List 2017-07-04 15:08:03 +02:00
Florian Bruhin
2ba637891a Add required_keys for configtypes.Dict 2017-07-04 15:08:03 +02:00
Florian Bruhin
bc526cf0ce Remove some FIXMEs 2017-07-04 15:08:03 +02:00
Florian Bruhin
7ee222af88 Return [] for none-values for configtypes.List 2017-07-04 15:08:03 +02:00
Florian Bruhin
c141c33b32 Clean up start_pages setting
The value is now of type FuzzyUrl, and the setting is renamed to start_pages.
2017-07-04 15:08:03 +02:00
Florian Bruhin
9cbacf3264 Use {} for none-dicts and fix keybindings 2017-07-04 15:08:03 +02:00
Florian Bruhin
0115285a84 Initial update for better bindings management 2017-07-04 15:08:03 +02:00
Florian Bruhin
127db2fe42 Be a bit more relaxed about values for Perc
We now allow float/int for objects, and strings without a trailing % sign.
2017-07-04 15:08:03 +02:00
Florian Bruhin
cbf6e4287f Rename fonts.tabbar to fonts.tabs 2017-07-04 15:08:03 +02:00
Florian Bruhin
e7ba56cb2c Read YAML config after config.val is ready
This means we can (at least somewhat) validate aliases in configtypes.Command.
2017-07-04 15:08:03 +02:00
Florian Bruhin
0ed0a6db57 Clean up code 2017-07-04 15:08:03 +02:00
Florian Bruhin
67cb6a9802 Implement initial reading from YAML 2017-07-04 15:08:03 +02:00
Florian Bruhin
70f6d0e305 Add qutebrowser.config.configfiles 2017-07-04 15:08:03 +02:00
Florian Bruhin
78434a330c Remove old stub FIXMEs 2017-07-04 15:08:03 +02:00
Florian Bruhin
fda4fd4888 Rename NewConfigManager.set to set_obj 2017-07-04 15:08:03 +02:00
Florian Bruhin
ad0a961a5f Add an lru_cache for configdata.is_valid_prefix()
This gets called a lot, and caused some :bind calls to take ~3s.

Stats after starting with a bit of :bind:
CacheInfo(hits=25917, misses=139, maxsize=256, currsize=139)
2017-07-04 15:08:03 +02:00
Florian Bruhin
45e7e35233 Detect mutated values in new config
This will allow config.py to get a value and then mutate it, and we can also
make things easier for :bind and :unbind.
2017-07-04 15:08:03 +02:00
Florian Bruhin
2577b2c5e3 Validate configtypes.Command correctly 2017-07-04 15:08:03 +02:00
Florian Bruhin
23d30d4fc0 Fix remaining :bind/:unbind issues 2017-07-04 15:08:03 +02:00
Florian Bruhin
f434f955c2 Improve exception handling for :bind/:unbind 2017-07-04 15:08:02 +02:00
Florian Bruhin
ba1bc29a97 Initial :bind/:unbind implementation 2017-07-04 15:08:02 +02:00
Florian Bruhin
290d27a064 Add a cmdexc.Error 2017-07-04 15:08:02 +02:00
Florian Bruhin
a6c629899e Split CommandRunner into runner/parser 2017-07-04 15:08:02 +02:00
Florian Bruhin
d4cbd4ace4 Fix getting the scrollbar option 2017-07-04 15:08:02 +02:00
Florian Bruhin
ed5bea6e3f Call int() for zoom level messages 2017-07-04 15:08:02 +02:00
Florian Bruhin
3c2d568a2e Add an ID for qute://settings inputs 2017-07-04 15:08:02 +02:00
Florian Bruhin
d7f1ebedbf Fix toggling options 2017-07-04 15:08:02 +02:00
Florian Bruhin
44e4816cbb Use get_opt in NewConfigManager.set 2017-07-04 15:08:02 +02:00
Florian Bruhin
5081e4f201 Fix NewConfigManager.get_str 2017-07-04 15:08:02 +02:00
Florian Bruhin
5e4675b34a Fix ignore_case handling 2017-07-04 15:08:02 +02:00
Florian Bruhin
340a62869d Fix javascript.prompt default 2017-07-04 15:08:02 +02:00
Florian Bruhin
ceca99a99c Fix :help with new config 2017-07-04 15:08:02 +02:00
Florian Bruhin
e752f87876 Add Shift-Delete mapping for :completion-item-del
This seems to be what Chromium and Firefox use for the same purpose.
2017-07-04 15:08:02 +02:00
Florian Bruhin
75798bebb0 Normalize bindings correctly when checking key_mappings 2017-07-04 15:08:02 +02:00
Florian Bruhin
383968d948 Add a Key config type
Make sure any key we get from the config is normalized).
2017-07-04 15:08:02 +02:00
Florian Bruhin
e894ad4ab0 Improve :set --temp docs 2017-07-04 15:08:02 +02:00
Florian Bruhin
6aafaca329 Fix invalid default_page replacement 2017-07-04 15:08:02 +02:00
Florian Bruhin
ae6cc543ed Fix shared.feature_permission 2017-07-04 15:08:02 +02:00
Florian Bruhin
089e1ee91b Rewrite various references to old settings 2017-07-04 15:08:02 +02:00
Florian Bruhin
88fb5bbd82 tests: Fix various issues with new config 2017-07-04 15:08:02 +02:00
Florian Bruhin
198040b2e2 Fix setting descriptions 2017-07-04 15:08:02 +02:00
Florian Bruhin
f27978e268 Rename input.insert_mode.auto_focused to _load 2017-07-04 15:08:02 +02:00
Florian Bruhin
3470e9bf5d Fix invocation with -s 2017-07-04 15:08:02 +02:00
Florian Bruhin
471755d370 Fix old config access in hints 2017-07-04 15:08:02 +02:00
Florian Bruhin
3aa7f771c1 Fix dirbrowser.html for stricter jinja env 2017-07-04 15:08:02 +02:00
Florian Bruhin
d0904a9f67 Adjust test settings 2017-07-04 15:08:02 +02:00
Florian Bruhin
c2a2845ee7 Remove the tabs.movable setting 2017-07-04 15:08:02 +02:00
Florian Bruhin
85bee4a7d2 Rename completion background settings to .odd/.even 2017-07-04 15:08:02 +02:00
Florian Bruhin
bc8176ff21 Remove most legacy config code 2017-07-04 15:08:02 +02:00
Florian Bruhin
785de9fb99 Add dump_userconfig 2017-07-04 15:08:02 +02:00
Florian Bruhin
b5eac744b5 Remove old caching code
Not deleting debug_cache_stats as we'll soon re-add stuff there.
2017-07-04 15:08:02 +02:00
Florian Bruhin
46d0fee11b Bring back :set 2017-07-04 15:08:02 +02:00
Florian Bruhin
30f1970850 Fix key-config usage 2017-07-04 15:08:02 +02:00
Florian Bruhin
aa75262fe4 Fix keyhintwidget 2017-07-04 15:08:02 +02:00
Florian Bruhin
22f096088b Fix alias handling 2017-07-04 15:08:02 +02:00
Florian Bruhin
f5d2c48bbb Fix new keyconfig issues 2017-07-04 15:08:02 +02:00
Florian Bruhin
056edcfed3 More keyconfig work 2017-07-04 15:08:02 +02:00
Florian Bruhin
67afc06d79 Initial work on new keyconfig 2017-07-04 15:08:02 +02:00
Florian Bruhin
e4278a69ac Re-activate aliases 2017-07-04 15:08:02 +02:00
Florian Bruhin
82102279bc Get rid of configdata.SECTION_DESC 2017-07-04 15:08:02 +02:00
Florian Bruhin
624c6777ff Reorder configdata.yml 2017-07-04 15:08:02 +02:00
Florian Bruhin
94b200835a Hack in setting a value to NewConfigManager 2017-07-04 15:08:02 +02:00
Florian Bruhin
dc74a55b84 Fix remaining configtypes issues 2017-07-04 15:08:02 +02:00
Florian Bruhin
72d4421ac8 Make ShellCommand a List subclass
Also, let's not require a list in Command (which is used for aliases).
2017-07-04 15:08:02 +02:00
Florian Bruhin
ecba175b16 Test and fix configtypes to_str. 2017-07-04 15:08:02 +02:00
Florian Bruhin
4c2f65819b Try to fix qute://settings 2017-07-04 15:08:02 +02:00
Florian Bruhin
5414744439 Clean up NewConfigManager 2017-07-04 15:08:02 +02:00
Florian Bruhin
d69c6d0c66 Reorganize how configtypes store their data
Now the "object" kind of value (like in YAML) is stored internally, and that's
the canonical value. The methods changed their meaning slightly, see the
docstring in configtypes.py for details.
2017-07-04 15:08:02 +02:00
Florian Bruhin
1cbb4ece4b Force configtype.Dict keys to be strings 2017-07-04 15:08:02 +02:00
Florian Bruhin
41655e7852 Fix handling of none_ok in List/Dict
We now always return None (and '' as string) when the user configured an empty
list or dict.
2017-07-04 15:08:01 +02:00
Florian Bruhin
8ea3d92697 Initial implementation of to_str for configtypes 2017-07-04 15:08:01 +02:00
Florian Bruhin
ffc29ee043 Make qute://settings work with QtWebEngine and new config
Fixes #2332
2017-07-04 15:08:01 +02:00
Florian Bruhin
18eb133811 configdata: Make sure default values are valid 2017-07-04 15:08:01 +02:00
Florian Bruhin
0857a45b0a configtypes: parse regex flags properly 2017-07-04 15:08:01 +02:00
Florian Bruhin
a7c3bb0d55 Initial qute://settings upgrade 2017-07-04 15:08:01 +02:00
Florian Bruhin
3a6bcb3dd0 Remove icon from base.html 2017-07-04 15:08:01 +02:00
Florian Bruhin
36a5614c61 Add "FIXME" 2017-07-04 15:08:01 +02:00
Florian Bruhin
a1ed81f790 Patch out setting completion
Let's bring it back with the completion refactoring
2017-07-04 15:08:01 +02:00
Florian Bruhin
6733e92b50 Handle files correctly in utils.yaml_dump 2017-07-04 15:08:01 +02:00
Florian Bruhin
001312ca82 Disallow Booleans for configtypes.Int.from_py 2017-07-04 14:42:56 +02:00
Florian Bruhin
dfee857466 Make utils.yaml_dump return str 2017-07-04 14:42:56 +02:00
Florian Bruhin
ffd1a91467 Fix Directory conftype 2017-07-04 14:42:56 +02:00
Florian Bruhin
61ba92ae18 configtypes: Separate str/py basic validation
This also ensures the behavior for none_ok is consistent.
2017-07-04 14:42:56 +02:00
Florian Bruhin
51a29468be configtypes: Use YAML for loading List/Dict from a string
This allows for a more lightweight syntax (like "{a: b}").
2017-07-04 14:42:56 +02:00
Florian Bruhin
41565fcfd4 configtypes: Use from_py for List/Dict values from a string 2017-07-04 14:42:56 +02:00
Florian Bruhin
7ddce62cd6 Refactor most of remaining config.get() calls 2017-07-04 14:42:56 +02:00
Florian Bruhin
51474724e5 Refactor objreg.get('config') calls 2017-07-04 14:42:56 +02:00