From 06ff2e00e9ed5a704e44c9ccd2d3c841f1a460e5 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Tue, 22 Apr 2014 21:38:06 +0200 Subject: [PATCH] Always draw categories correctly in completion --- qutebrowser/models/completion.py | 9 +++++---- qutebrowser/widgets/completion.py | 10 ++++++---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/qutebrowser/models/completion.py b/qutebrowser/models/completion.py index 4f95351ac..7cd0d8ab2 100644 --- a/qutebrowser/models/completion.py +++ b/qutebrowser/models/completion.py @@ -263,11 +263,12 @@ class CompletionModel(QAbstractItemModel): """ if not index.isValid(): return Qt.NoItemFlags - flags = Qt.ItemIsEnabled - if len(self._id_map[index.internalId()].children) > 0: - return flags + if index.parent().isValid(): + # item + return Qt.ItemIsEnabled | Qt.ItemIsSelectable else: - return flags | Qt.ItemIsSelectable + # category + return Qt.NoItemFlags def index(self, row, column, parent=QModelIndex()): """Return the QModelIndex for row/column/parent. diff --git a/qutebrowser/widgets/completion.py b/qutebrowser/widgets/completion.py index 9363fc32d..7c80c1d95 100644 --- a/qutebrowser/widgets/completion.py +++ b/qutebrowser/widgets/completion.py @@ -79,17 +79,20 @@ class CompletionView(QTreeView): {color[completion.bg]} outline: 0; }} - QTreeView::item {{ + + QTreeView::item:enabled {{ {color[completion.item.fg]} {color[completion.item.bg]} }} - QTreeView::item:has-children {{ + + QTreeView::item:disabled {{ {color[completion.category.fg]} {color[completion.category.bg]} border-top: 1px solid {color[completion.category.border.top]}; border-bottom: 1px solid {color[completion.category.border.bottom]}; }} + QTreeView::item:selected {{ border-top: 1px solid {color[completion.item.selected.border.top]}; border-bottom: 1px solid @@ -98,8 +101,7 @@ class CompletionView(QTreeView): {color[completion.item.selected.fg]} }} """ - # FIXME because we use :has-children, if a category is empty, it won't look - # like one anymore + change_completed_part = pyqtSignal(str) def __init__(self, parent=None):