Save sourceModel().
This commit is contained in:
parent
c32ba2f2c8
commit
109522e43f
@ -276,6 +276,7 @@ class CompletionFilterModel(QSortFilterProxyModel):
|
||||
"""Subclass of QSortFilterProxyModel with custom sorting/filtering."""
|
||||
|
||||
_pattern = None
|
||||
srcmodel = None
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent)
|
||||
@ -286,6 +287,11 @@ class CompletionFilterModel(QSortFilterProxyModel):
|
||||
"""Getter for pattern."""
|
||||
return self._pattern
|
||||
|
||||
def setsrc(self, model):
|
||||
self.setSourceModel(model)
|
||||
self.srcmodel = model
|
||||
self.pattern = ''
|
||||
|
||||
@pattern.setter
|
||||
def pattern(self, val):
|
||||
"""Setter for pattern.
|
||||
@ -318,8 +324,8 @@ class CompletionFilterModel(QSortFilterProxyModel):
|
||||
"""
|
||||
if parent == QModelIndex():
|
||||
return True
|
||||
idx = self.sourceModel().index(row, 0, parent)
|
||||
data = self.sourceModel().data(idx).value()
|
||||
idx = self.srcmodel.index(row, 0, parent)
|
||||
data = self.srcmodel.data(idx).value()
|
||||
# TODO more sophisticated filtering
|
||||
if not self.pattern:
|
||||
return True
|
||||
@ -334,8 +340,8 @@ class CompletionFilterModel(QSortFilterProxyModel):
|
||||
Prefers all items which start with self.pattern. Other than that, uses
|
||||
normal Python string sorting.
|
||||
"""
|
||||
left = self.sourceModel().data(lindex).value()
|
||||
right = self.sourceModel().data(rindex).value()
|
||||
left = self.srcmodel.data(lindex).value()
|
||||
right = self.srcmodel.data(rindex).value()
|
||||
|
||||
leftstart = left.startswith(self.pattern)
|
||||
rightstart = right.startswith(self.pattern)
|
||||
|
@ -73,11 +73,10 @@ class CompletionView(QTreeView):
|
||||
self.completion_models['command'] = CommandCompletionModel()
|
||||
self.model = CompletionFilterModel()
|
||||
self.setModel(self.model)
|
||||
self.model.setSourceModel(self.completion_models['command'])
|
||||
self.setmodel('command')
|
||||
self.setItemDelegate(CompletionItemDelegate())
|
||||
self.setStyleSheet(config.get_stylesheet(self._stylesheet))
|
||||
self.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Minimum)
|
||||
self.expandAll()
|
||||
self.setHeaderHidden(True)
|
||||
self.setIndentation(0)
|
||||
self.setItemsExpandable(False)
|
||||
@ -109,8 +108,7 @@ class CompletionView(QTreeView):
|
||||
|
||||
model -- A QAbstractItemModel with available completions.
|
||||
"""
|
||||
self.model.setSourceModel(self.completion_models[model])
|
||||
self.model.pattern = ''
|
||||
self.model.setsrc(self.completion_models[model])
|
||||
self.expandAll()
|
||||
|
||||
def resize_to_bar(self, geom):
|
||||
@ -147,7 +145,7 @@ class CompletionView(QTreeView):
|
||||
self.setmodel('command')
|
||||
text = text.lstrip(':')
|
||||
self.model.pattern = text
|
||||
self.model.sourceModel().mark_all_items(text)
|
||||
self.model.srcmodel.mark_all_items(text)
|
||||
if self.enabled:
|
||||
self.show()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user