4 changed files with 44 additions and 5 deletions
@ -0,0 +1,27 @@
|
||||
from PyQt5.QtCore import QSortFilterProxyModel |
||||
|
||||
from electrum.logging import get_logger |
||||
|
||||
class QEFilterProxyModel(QSortFilterProxyModel): |
||||
_logger = get_logger(__name__) |
||||
|
||||
_filter_value = None |
||||
|
||||
def __init__(self, parent_model, parent=None): |
||||
super().__init__(parent) |
||||
self.setSourceModel(parent_model) |
||||
|
||||
def isCustomFilter(self): |
||||
return self._filter_value is not None |
||||
|
||||
def setFilterValue(self, filter_value): |
||||
self._filter_value = filter_value |
||||
|
||||
def filterAcceptsRow(self, s_row, s_parent): |
||||
if not self.isCustomFilter: |
||||
return super().filterAcceptsRow(s_row, s_parent) |
||||
|
||||
parent_model = self.sourceModel() |
||||
d = parent_model.data(parent_model.index(s_row, 0, s_parent), self.filterRole()) |
||||
# self._logger.debug(f'DATA in FilterProxy is {repr(d)}') |
||||
return True if self._filter_value is None else d == self._filter_value |
||||
Loading…
Reference in new issue