def METHOD_NAME(self):
    self.list.clear()
    for cat in self.data:
        filtered = [i for i in self.data[cat] if self.txtFilter.text().lower() in i[0].lower() or
                                                 self.txtFilter.text().lower() in cat[0].lower()]
        if filtered:
            self.addCategory(cat[0])
            for item in filtered:
                i = QListWidgetItem(item[0])
                i.setData(Qt.UserRole, Ref.EmptyRef.format(cat[1], item[1], item[0]))
                i.setData(Qt.UserRole + 1, item[2])
                self.list.addItem(i)
    self.list.setCurrentRow(1)