-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathfilterModel.py
More file actions
56 lines (49 loc) · 2.68 KB
/
filterModel.py
File metadata and controls
56 lines (49 loc) · 2.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
from PySide2.QtCore import QSortFilterProxyModel, Qt, QRegExp
class FilterModel(QSortFilterProxyModel):
def __init__(self,data ,parent=None):
QSortFilterProxyModel.__init__(self, parent)
self.displayed=[]
self.fileType=[]
self.setDynamicSortFilter(True)
self.sort(0)
def filterAcceptsRow(self,source_row, source_parent):
if self.sourceModel().metadataList[source_row] not in self.sourceModel().hiddenList and self.sourceModel().metadataList[source_row] not in self.displayed:
self.displayed.append(self.sourceModel().metadataList[source_row])
elif "Custom Input" in self.sourceModel().metadataList[source_row]["Source"] and self.sourceModel().metadataList[source_row] not in self.displayed:
self.displayed.append(self.sourceModel().metadataList[source_row])
return self.sourceModel().metadataList[source_row] not in self.sourceModel().hiddenList or self.sourceModel().metadataList[source_row] == "Custom Input"
def checkList(self,checked,source):
if "Custom Input" in source:
self.setFilterRegExp(QRegExp())
else:
sourcelist= source.split("/")
sourceDict=self.sourceModel().treeDict
i=0
key=""
while i != len(sourcelist):
key=sourcelist[i]
sourceDict=sourceDict[key]
i+=1
if checked == 0:
for j in range(len(self.sourceModel().metadataList)):
if source in self.sourceModel().metadataList[j]["Source"]:
self.sourceModel().hiddenList.append(self.sourceModel().metadataList[j])
self.sourceModel().metadataList[j]["Checked"] = checked
iteratelist = self.displayed[:]
newj = 0
for j in range(len(iteratelist)):
if source in iteratelist[j]["Source"]:
del self.displayed[j-newj]
newj+=1
else:
for j in range(len(self.sourceModel().metadataList)):
if source in self.sourceModel().metadataList[j]["Source"]:
self.sourceModel().hiddenList.append(self.sourceModel().metadataList[j])
self.sourceModel().metadataList[j]["Checked"] = checked
iteratelist = self.sourceModel().hiddenList[:]
newj=0
for j in range(len(iteratelist)):
if source in iteratelist[j]["Source"]:
del self.sourceModel().hiddenList[j-newj]
newj+=1
self.setFilterRegExp(QRegExp())