Merge branch 'neeasade-master'
This commit is contained in:
commit
66e0812ab6
@ -35,6 +35,12 @@ Added
|
||||
instance.
|
||||
- New setting `statusbar.url.fg.success.https` to set the foreground color for
|
||||
the URL when a page was loaded via HTTPS.
|
||||
- The scrollbar in the completion is now styled, and the following new options
|
||||
got added:
|
||||
* `completion -> scrollbar-width`
|
||||
* `completion -> scrollbar-padding`
|
||||
* `colors -> completion.scrollbar.fg`
|
||||
* `colors -> completion.scrollbar.bg`
|
||||
|
||||
Changed
|
||||
~~~~~~~
|
||||
|
@ -144,10 +144,10 @@ Contributors, sorted by the number of commits in descending order:
|
||||
* Claude
|
||||
* Lamar Pavel
|
||||
* Daniel
|
||||
* Nathan Isom
|
||||
* Austin Anderson
|
||||
* Artur Shaik
|
||||
* Thorsten Wißmann
|
||||
* Nathan Isom
|
||||
* Alexey "Averrin" Nabrodov
|
||||
* meles5
|
||||
* ZDarian
|
||||
|
@ -78,6 +78,8 @@
|
||||
|<<completion-web-history-max-items,web-history-max-items>>|How many URLs to show in the web history.
|
||||
|<<completion-quick-complete,quick-complete>>|Whether to move on to the next part when there's only one possible completion left.
|
||||
|<<completion-shrink,shrink>>|Whether to shrink the completion to be smaller than the configured size if there are no scrollbars.
|
||||
|<<completion-scrollbar-width,scrollbar-width>>|Width of the scrollbar in the completion window (in px).
|
||||
|<<completion-scrollbar-padding,scrollbar-padding>>|Padding of scrollbar handle in completion window (in px).
|
||||
|==============
|
||||
|
||||
.Quick reference for section ``input''
|
||||
@ -196,6 +198,8 @@
|
||||
|<<colors-completion.item.selected.border.top,completion.item.selected.border.top>>|Top border color of the completion widget category headers.
|
||||
|<<colors-completion.item.selected.border.bottom,completion.item.selected.border.bottom>>|Bottom border color of the selected completion item.
|
||||
|<<colors-completion.match.fg,completion.match.fg>>|Foreground color of the matched text in the completion.
|
||||
|<<colors-completion.scrollbar.fg,completion.scrollbar.fg>>|Color of the scrollbar handle in completion view.
|
||||
|<<colors-completion.scrollbar.bg,completion.scrollbar.bg>>|Color of the scrollbar in completion view
|
||||
|<<colors-statusbar.fg,statusbar.fg>>|Foreground color of the statusbar.
|
||||
|<<colors-statusbar.bg,statusbar.bg>>|Background color of the statusbar.
|
||||
|<<colors-statusbar.fg.error,statusbar.fg.error>>|Foreground color of the statusbar if there was an error.
|
||||
@ -833,6 +837,18 @@ Valid values:
|
||||
|
||||
Default: +pass:[false]+
|
||||
|
||||
[[completion-scrollbar-width]]
|
||||
=== scrollbar-width
|
||||
Width of the scrollbar in the completion window (in px).
|
||||
|
||||
Default: +pass:[12]+
|
||||
|
||||
[[completion-scrollbar-padding]]
|
||||
=== scrollbar-padding
|
||||
Padding of scrollbar handle in completion window (in px).
|
||||
|
||||
Default: +pass:[2]+
|
||||
|
||||
== input
|
||||
Options related to input modes.
|
||||
|
||||
@ -1655,6 +1671,18 @@ Foreground color of the matched text in the completion.
|
||||
|
||||
Default: +pass:[#ff4444]+
|
||||
|
||||
[[colors-completion.scrollbar.fg]]
|
||||
=== completion.scrollbar.fg
|
||||
Color of the scrollbar handle in completion view.
|
||||
|
||||
Default: +pass:[${completion.fg}]+
|
||||
|
||||
[[colors-completion.scrollbar.bg]]
|
||||
=== completion.scrollbar.bg
|
||||
Color of the scrollbar in completion view
|
||||
|
||||
Default: +pass:[${completion.bg}]+
|
||||
|
||||
[[colors-statusbar.fg]]
|
||||
=== statusbar.fg
|
||||
Foreground color of the statusbar.
|
||||
|
@ -81,10 +81,24 @@ class CompletionView(QTreeView):
|
||||
QTreeView:item::hover {
|
||||
border: 0px;
|
||||
}
|
||||
"""
|
||||
|
||||
# FIXME style scrollbar
|
||||
# https://github.com/The-Compiler/qutebrowser/issues/117
|
||||
QTreeView QScrollBar {
|
||||
width: {{ config.get('completion', 'scrollbar-width') }}px;
|
||||
background: {{ color['completion.scrollbar.bg'] }};
|
||||
}
|
||||
|
||||
QTreeView QScrollBar::handle {
|
||||
background: {{ color['completion.scrollbar.fg'] }};
|
||||
border: {{ config.get('completion', 'scrollbar-padding') }}px solid
|
||||
{{ color['completion.scrollbar.bg'] }};
|
||||
min-height: 10px;
|
||||
}
|
||||
|
||||
QTreeView QScrollBar::sub-line, QScrollBar::add-line {
|
||||
border: none;
|
||||
background: none;
|
||||
}
|
||||
"""
|
||||
|
||||
resize_completion = pyqtSignal()
|
||||
|
||||
|
@ -414,6 +414,14 @@ def data(readonly=False):
|
||||
"Whether to shrink the completion to be smaller than the "
|
||||
"configured size if there are no scrollbars."),
|
||||
|
||||
('scrollbar-width',
|
||||
SettingValue(typ.Int(minval=0), '12'),
|
||||
"Width of the scrollbar in the completion window (in px)."),
|
||||
|
||||
('scrollbar-padding',
|
||||
SettingValue(typ.Int(minval=0), '2'),
|
||||
"Padding of scrollbar handle in completion window (in px)."),
|
||||
|
||||
readonly=readonly
|
||||
)),
|
||||
|
||||
@ -872,6 +880,14 @@ def data(readonly=False):
|
||||
SettingValue(typ.QssColor(), '#ff4444'),
|
||||
"Foreground color of the matched text in the completion."),
|
||||
|
||||
('completion.scrollbar.fg',
|
||||
SettingValue(typ.QssColor(), '${completion.fg}'),
|
||||
"Color of the scrollbar handle in completion view."),
|
||||
|
||||
('completion.scrollbar.bg',
|
||||
SettingValue(typ.QssColor(), '${completion.bg}'),
|
||||
"Color of the scrollbar in completion view"),
|
||||
|
||||
('statusbar.fg',
|
||||
SettingValue(typ.QssColor(), 'white'),
|
||||
"Foreground color of the statusbar."),
|
||||
|
@ -42,7 +42,8 @@ def get_stylesheet(template_str):
|
||||
"""
|
||||
colordict = ColorDict(config.section('colors'))
|
||||
template = jinja2.Template(template_str)
|
||||
return template.render(color=colordict, font=config.section('fonts'))
|
||||
return template.render(color=colordict, font=config.section('fonts'),
|
||||
config=objreg.get('config'))
|
||||
|
||||
|
||||
def set_register_stylesheet(obj):
|
||||
|
@ -27,15 +27,25 @@ from PyQt5.QtGui import QColor
|
||||
from qutebrowser.config import style
|
||||
|
||||
|
||||
def test_get_stylesheet(config_stub):
|
||||
@pytest.mark.parametrize('template, expected', [
|
||||
("{{ color['completion.bg'] }}", "black"),
|
||||
("{{ color['completion.fg'] }}", "red"),
|
||||
("{{ font['completion'] }}", "foo"),
|
||||
("{{ config.get('foo', 'bar') }}", "baz"),
|
||||
])
|
||||
def test_get_stylesheet(config_stub, template, expected):
|
||||
config_stub.data = {
|
||||
'colors': {'completion.bg': 'black'},
|
||||
'fonts': {'completion': 'foo'},
|
||||
'colors': {
|
||||
'completion.bg': 'black',
|
||||
'completion.fg': 'red',
|
||||
},
|
||||
'fonts': {
|
||||
'completion': 'foo',
|
||||
},
|
||||
'foo': {'bar': 'baz'},
|
||||
}
|
||||
template = "{{ color['completion.bg'] }}\n{{ font['completion'] }}"
|
||||
rendered = style.get_stylesheet(template)
|
||||
assert rendered == 'black\nfoo'
|
||||
assert rendered == expected
|
||||
|
||||
|
||||
class Obj(QObject):
|
||||
@ -105,5 +115,3 @@ class TestColorDict:
|
||||
d['foo'] = QColor()
|
||||
with pytest.raises(TypeError):
|
||||
d['foo'] # pylint: disable=pointless-statement
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user