Always draw categories correctly in completion

This commit is contained in:
Florian Bruhin 2014-04-22 21:38:06 +02:00
parent fb9ac1bc4c
commit 06ff2e00e9
2 changed files with 11 additions and 8 deletions

View File

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

View File

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