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