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
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
340a62869d
Fix javascript.prompt default
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
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
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
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
f5d2c48bbb
Fix new keyconfig issues
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
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
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
001312ca82
Disallow Booleans for configtypes.Int.from_py
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
Florian Bruhin
cc0e66fe7b
More config fixes
2017-07-04 14:42:56 +02:00
Florian Bruhin
6a451b37d7
re-raise NoOptionError
2017-07-04 14:42:56 +02:00
Florian Bruhin
52f15c84a6
Get rid of config sections
2017-07-04 14:42:56 +02:00
Florian Bruhin
7e7fbf106b
Fix lint and old config options
2017-07-04 14:42:56 +02:00
Florian Bruhin
ce7597b3f6
Fix various configtypes issues found while writing tests
2017-07-04 14:42:56 +02:00
Florian Bruhin
629038632c
Add proxy support for QtWebEngine and Qt 5.7.1
...
This used to give us crashes in libproxy:
https://github.com/libproxy/libproxy/issues/45
https://bugreports.qt.io/browse/QTBUG-56852
However, trying again with Qt 5.7.1 on Debian and from PyPI, this doesn't happen
anymore, so it was probably something with how Archlinux handled things.
See #2082 , #2775 .
Reverts fd29528e4f
2017-07-03 10:29:28 +02:00
Florian Bruhin
c25022f549
Fix LimitLineParser
2017-07-02 22:17:33 +02:00
Florian Bruhin
1022b7ea32
Make jinja templating more strict
...
This ensures we actually know when an AttributeError happens.
It also changes most external code to use the correct environment, rather than
simply creating a jinja2.Template, which wouldn't use the more tightened
environment.
2017-07-02 22:17:33 +02:00
Florian Bruhin
4b4acc5f5a
Minor config fixes
2017-07-02 22:17:33 +02:00
Florian Bruhin
b9aa5d0e4e
Fix valid_values initing from configdata
2017-07-02 22:17:33 +02:00
Florian Bruhin
269e9d69e0
Improve typechecking message
2017-07-02 22:17:33 +02:00
Florian Bruhin
500ad8b00f
Use strings for Perc configtypes
2017-07-02 22:17:33 +02:00
Florian Bruhin
298553d48d
Fix QssColor
2017-07-02 22:17:33 +02:00
Florian Bruhin
61fe40f4a1
Initial stylesheet refactoring for new config
2017-07-02 22:17:33 +02:00
Florian Bruhin
e2b0fdf8aa
Fix VerticalPosition and NewTabPosition
...
Make them string so they have to_py() defined.
2017-07-02 22:17:33 +02:00
Florian Bruhin
26bf588fad
Fix _validate_valid_values
2017-07-02 22:17:33 +02:00
Florian Bruhin
231b7303f5
Use null for empty config values.
2017-07-02 22:17:33 +02:00
Florian Bruhin
af134eb861
Refactor websettings for new config
2017-07-02 22:17:33 +02:00
Florian Bruhin
f1d81d86aa
Fix configtypes _basic_validation
2017-07-02 22:17:33 +02:00
Florian Bruhin
aa6f229e6b
Add utils.yaml_{load,dump}
2017-07-02 22:17:33 +02:00
Florian Bruhin
1ed8df8903
Fix various typos/bugs
2017-07-02 22:17:33 +02:00
Florian Bruhin
3e3685b68b
Initial configexc refactoring
2017-07-02 22:17:33 +02:00
Florian Bruhin
5ab2c89a37
Adjust config.change_filter
2017-07-02 22:17:33 +02:00
Florian Bruhin
b5110b07f0
Fix newconfig init
2017-07-02 22:17:33 +02:00
Florian Bruhin
3009e5eebe
Fix configtypes mistakes
2017-07-02 22:17:33 +02:00
Florian Bruhin
8de0445661
Move UserAgent to configdata
2017-07-02 22:17:33 +02:00
Florian Bruhin
616aad84d8
More configtypes refactoring
2017-07-02 22:17:33 +02:00
Florian Bruhin
5ec47da127
Get rid of configtypes.AutoSearch and IgnoreCase
2017-07-02 22:17:33 +02:00
Florian Bruhin
921d02e4d3
First portion of configtypes refactoring
2017-07-02 22:17:33 +02:00
Florian Bruhin
7e52eb7b0e
Initial work on new configdata
2017-07-02 22:17:33 +02:00
Florian Bruhin
c2e75bf2fd
Initial conversion to new config syntax
2017-07-02 22:17:33 +02:00
Florian Bruhin
938946c48b
configdata: Add check for shadowing keys
2017-07-02 22:17:33 +02:00
Florian Bruhin
8b9b750f8f
configdata: Rename some options for consistency
2017-07-02 22:17:33 +02:00
Florian Bruhin
52f6ea2525
Initial parsing
2017-07-02 22:17:33 +02:00
Florian Bruhin
f965805099
First setting renames
2017-07-02 22:17:33 +02:00
Florian Bruhin
836395cdb1
Add configdata.yml
2017-07-02 22:17:33 +02:00
Florian Bruhin
00c8d8da34
Initial stubbing out of a new config
2017-07-02 22:17:33 +02:00
Ryan Roden-Corrent
784d9bb043
Remove code rendered dead by sql implementation.
...
Vulture exposed the following dead code:
- AppendLineParse was only used for reading the history text file, which is now
a sql database (and the import code for the old text file is simpler and does
not need a complex line parser)
- async_read_done is no longer used as importing the history text file is
synchronous (and should only happen once)
- config._init_key_config is unused as it was moved to keyconf.init
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
921211bbaa
Remove web-history-max-items.
...
This was a performance optimization that shouldn't be needed with the new SQL
history backend. This also removes support for the LIMIT feature from SqlTable
as it only existed to support web-history-max-items.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
6cc2095221
Avoid keyconf circular import.
...
The new function-based completion API introduced a circular import:
config -> keyconf -> miscmodels -> config.
config only depended on keyconf so it could initialize it as part of
config.init. This can be resolved by moving this to keyconf.init and
initializing keyconf as part of app.init.
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
839d49a8ac
Fix up pylint/flake8 for completion revamp.
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
3b30b42211
Remove completion.instances, usertypes.Completion.
...
The new completion API no longer needs either of these. Instead of
referencing an enum member, cmdutils.argument.completion now points to
a function that returnsthe desired completion model.
This vastly simplifies the addition of new completion types. Previously
it was necessary to define the new model as well as editing usertypes
and completion.models.instances. Now it is only necessary to define a
single function under completion.models.
This is the next step of Completion Model/View Revamping (#74 ).
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
b36cf0572d
Avoid potential circular import in config.py.
...
There was a circular import from
config -> keyconf -> miscmodels -> config.
This is resolved by scoping config's keyconf import to the one function
that uses it.
2017-06-19 07:42:12 -04:00
Clayton Craft
daa12ed435
Add private mode title format for tabs too
...
This continues the spirit of my previous PR and allows formatting tab
titles to designate when private mode is enabled. I didn't even realize
that tab title-format was a separate thing from window-title-format
(yes, it's in the name.. silly craftyguy), until now.
2017-06-07 08:17:03 -07:00
Florian Bruhin
dd4fb87db6
Update docs
2017-06-06 18:25:42 +02:00
Florian Bruhin
8990513c1b
Merge commit '49b8737f7979fc878ba25aed94cc3e57f481ae3a' into craftyguy/private_tab_title
2017-06-06 18:23:51 +02:00
Clayton Craft
49b8737f79
Implement changing of tab title when privacy mode is enabled
2017-06-06 08:00:19 -07:00
Florian Bruhin
6d175fbb4b
Get rid of configtypes.WebKitBytes
2017-06-06 16:17:44 +02:00
Florian Bruhin
1b0a125cf3
websettings: Improve errors when setting settings=...
2017-06-06 15:59:42 +02:00
Florian Bruhin
e17494c972
Cleanup
2017-06-06 15:25:21 +02:00
Florian Bruhin
0ca59f2184
Rename storage -> offline-web-application-storage to -cache
2017-06-06 14:50:57 +02:00
Florian Bruhin
c696723650
Merge storage -> offline-storage-database into local-storage setting
...
Looks like it's the same with QtWebEngine too - setting LocalStorageEnabled also
toggles WebSQL there.
2017-06-06 14:50:57 +02:00
Florian Bruhin
2a32e26846
Get rid of various rarely customized settings
...
All those were customized by some <5 people in the past few years of crash
reports.
Closes #1751 .
See #2639 .
2017-06-06 14:50:57 +02:00
Florian Bruhin
1785b72393
Refactor websettings default handling
...
With per-domain settings, having a getter for a setting gets really complicated,
as there isn't one true value for a setting.
The only reason we needed those getters is to save away the default values for
some settings where we were unsure what the defaults are.
- For font setters, we can get the defaults from QFont, like QtWeb{Kit,Engine}
do.
- For font sizes, we hardcode the defaults QtWeb{Kit,Engine} hardcodes too.
- For maximum-page-in-cache, we hardcode 0, just like QtWebKit.
- For default-encoding, we hardcode iso-8559-1, like QtWeb{Kit,Engine}
- For offline-storage-default-quota, we hardcode 5MB, like QtWebKit
- For offline-web-application-cache-quota, we hardcode MAXINT as default value,
but we still keep the empty value in the config. It means "no quota"
internally in QtWebKit, but it's a too confusing value to have in the config.
- For object-cache-capacities it's a bit more complicated (the defaults are
calculated based on disk space), but let's just get rid of the setting
altogether in the next commit (see #1751 ).
Closes #2639 .
2017-06-06 14:50:57 +02:00
Florian Bruhin
e96f085f8d
Merge commit '38ca583084e89de0da35cb1b626d21b051ea2c70'
2017-05-23 17:43:01 +02:00
Florian Bruhin
af1e1d9239
Merge commit 'c814ced7b35968cfdeb6284cc79168bfffed7c85'
2017-05-23 17:18:55 +02:00
Florian Bruhin
c32c01ffc0
Merge commit '419793c0b9ff4f293babea7623dcaf4787bbaa35'
2017-05-22 07:55:44 +02:00
Jay Kamat
419793c0b9
Misc cleanup and documentation update
2017-05-21 22:42:51 -07:00
Florian Bruhin
608ac89f06
Fix lint
2017-05-17 14:32:13 +02:00
Florian Bruhin
a48ea597d0
Set websettings on each profile's setting object
...
Turns out QWebEngineSettings.globalSettings() only sets things on the default
profile. We now get everything from the default profile settings, but set it on
both the default and the private profile.
Fixes #2638
(cherry picked from commit b11a4388cd10b6ff2fd917fca689ebdc50d581ae)
2017-05-17 06:31:51 +02:00
Florian Bruhin
3cdcc34d1d
Update private-browsing option description
2017-05-15 11:07:43 +02:00
Florian Bruhin
73ca884d24
Add a setting for private command mode color
...
This also refactors how color properties are handled in StatusBar.
2017-05-15 11:07:43 +02:00
Florian Bruhin
3c3f695af4
Fix things pointed out in reviews
2017-05-15 11:07:43 +02:00
Matthias Lisin
c814ced7b3
Add Android UA
2017-05-13 15:05:54 +02:00
Jay Kamat
725bafea54
Merge branch 'master' into jay/pintab
2017-05-10 23:51:33 -07:00
Florian Bruhin
f4d3f97cb7
Implement private browsing for QtWebEngine
2017-05-10 09:17:54 +02:00
Florian Bruhin
1c50377c0a
Initial work on new private browsing
2017-05-10 07:00:21 +02:00