From 57e2d407ceb016f273effb8841beefd8d3c1a015 Mon Sep 17 00:00:00 2001 From: Ryan Roden-Corrent Date: Wed, 13 Dec 2017 17:03:59 -0500 Subject: [PATCH] Support different colors per completion column. Now colors.completion.fg may be set to a list to specify a different color for each completion column. For example: :set colors.completion.fg [black,blue,white] will use black text for the first column, blue for the second, and white for the third. Setting to a single value still works and behaves as before. The default is unchanged from 'white'. Resolves #1794. --- qutebrowser/completion/completiondelegate.py | 8 +++++--- qutebrowser/config/configdata.yml | 10 ++++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/qutebrowser/completion/completiondelegate.py b/qutebrowser/completion/completiondelegate.py index 6688a2dfa..b4f9c5a33 100644 --- a/qutebrowser/completion/completiondelegate.py +++ b/qutebrowser/completion/completiondelegate.py @@ -138,10 +138,10 @@ class CompletionItemDelegate(QStyledItemDelegate): self._painter.translate(text_rect.left(), text_rect.top()) self._get_textdoc(index) - self._draw_textdoc(text_rect) + self._draw_textdoc(text_rect, index.column()) self._painter.restore() - def _draw_textdoc(self, rect): + def _draw_textdoc(self, rect, col): """Draw the QTextDocument of an item. Args: @@ -156,7 +156,9 @@ class CompletionItemDelegate(QStyledItemDelegate): elif not self._opt.state & QStyle.State_Enabled: color = config.val.colors.completion.category.fg else: - color = config.val.colors.completion.fg + colors = config.val.colors.completion.fg + # if multiple colors are set, use different colors per column + color = colors[col % len(colors)] self._painter.setPen(color) ctx = QAbstractTextDocumentLayout.PaintContext() diff --git a/qutebrowser/config/configdata.yml b/qutebrowser/config/configdata.yml index 15be675ae..6d8812c25 100644 --- a/qutebrowser/config/configdata.yml +++ b/qutebrowser/config/configdata.yml @@ -1541,8 +1541,14 @@ zoom.text_only: colors.completion.fg: default: white - type: QtColor - desc: Text color of the completion widget. + type: + name: ListOrValue + valtype: QtColor + desc: >- + Text color of the completion widget. + + May be a single value to specify the color for all columns, or a list + specifying a different color for each column. colors.completion.odd.bg: default: '#444444'