Merge branch 'neeasade-master'

This commit is contained in:
Florian Bruhin 2015-10-19 05:18:43 +02:00
commit 66e0812ab6
7 changed files with 85 additions and 12 deletions

View File

@ -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
~~~~~~~

View File

@ -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

View File

@ -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.

View File

@ -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()

View File

@ -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."),

View File

@ -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):

View File

@ -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