Make srcmodel public in CompletionFilterModel.

This commit is contained in:
Florian Bruhin 2014-10-15 20:43:20 +02:00
parent b54151f206
commit dc8f156c21
2 changed files with 12 additions and 12 deletions

View File

@ -35,7 +35,7 @@ class CompletionFilterModel(QSortFilterProxyModel):
Attributes:
_pattern: The pattern to filter with.
_srcmodel: The current source model.
srcmodel: The current source model.
Kept as attribute because calling `sourceModel` takes quite
a long time for some reason.
"""
@ -43,7 +43,7 @@ class CompletionFilterModel(QSortFilterProxyModel):
def __init__(self, source, parent=None):
super().__init__(parent)
super().setSourceModel(source)
self._srcmodel = source
self.srcmodel = source
self._pattern = ''
def set_pattern(self, val):
@ -61,7 +61,7 @@ class CompletionFilterModel(QSortFilterProxyModel):
self.invalidateFilter()
sortcol = 0
try:
self._srcmodel.sort(sortcol)
self.srcmodel.sort(sortcol)
except NotImplementedError:
self.sort(sortcol)
self.invalidate()
@ -111,14 +111,14 @@ class CompletionFilterModel(QSortFilterProxyModel):
qtutils.ensure_valid(index)
index = self.mapToSource(index)
qtutils.ensure_valid(index)
self._srcmodel.mark_item(index, text)
self.srcmodel.mark_item(index, text)
def setSourceModel(self, model):
"""Override QSortFilterProxyModel's setSourceModel to clear pattern."""
log.completion.debug("Setting source model: {}".format(model))
self.set_pattern('')
super().setSourceModel(model)
self._srcmodel = model
self.srcmodel = model
def filterAcceptsRow(self, row, parent):
"""Custom filter implementation.
@ -135,9 +135,9 @@ class CompletionFilterModel(QSortFilterProxyModel):
"""
if parent == QModelIndex():
return True
idx = self._srcmodel.index(row, 0, parent)
idx = self.srcmodel.index(row, 0, parent)
qtutils.ensure_valid(idx)
data = self._srcmodel.data(idx)
data = self.srcmodel.data(idx)
# TODO more sophisticated filtering
if not self._pattern:
return True
@ -159,14 +159,14 @@ class CompletionFilterModel(QSortFilterProxyModel):
qtutils.ensure_valid(lindex)
qtutils.ensure_valid(rindex)
left_sort = self._srcmodel.data(lindex, role=completion.Role.sort)
right_sort = self._srcmodel.data(rindex, role=completion.Role.sort)
left_sort = self.srcmodel.data(lindex, role=completion.Role.sort)
right_sort = self.srcmodel.data(rindex, role=completion.Role.sort)
if left_sort is not None and right_sort is not None:
return left_sort < right_sort
left = self._srcmodel.data(lindex)
right = self._srcmodel.data(rindex)
left = self.srcmodel.data(lindex)
right = self.srcmodel.data(rindex)
leftstart = left.startswith(self._pattern)
rightstart = right.startswith(self._pattern)

View File

@ -233,7 +233,7 @@ class Completer(QObject):
log.completion.debug(
"New completion for {}: {}, with pattern '{}'".format(
parts, model._srcmodel.__class__.__name__, pattern))
parts, model.srcmodel.__class__.__name__, pattern))
if self._model().count() == 0:
completion.hide()