Made childrenTag a dictionary which could have multiple items for filtering option

This commit is contained in:
Gyedo Jeon 2007-08-02 00:53:36 +00:00
parent a8ae4fa3f1
commit 4c6b2a4698

View File

@ -52,8 +52,8 @@ class TreeNode:
self.menuVar.set(0) self.menuVar.set(0)
self._popupMenu = None self._popupMenu = None
self.fSortChildren = False # [gjeon] flag for sorting children or not self.fSortChildren = False # [gjeon] flag for sorting children or not
self.fModeChildrenTag = 0 # [gjeon] 0: hide by given tag, 1: show by given tag self.fModeChildrenTag = 0 # [gjeon] flag for using filter or not
self.childrenTag = None self.childrenTag = None # [gjeon] filter dictionary for
# [gjeon] to set fSortChildren # [gjeon] to set fSortChildren
def setFSortChildren(self, fSortChildren): def setFSortChildren(self, fSortChildren):
@ -303,10 +303,14 @@ class TreeNode:
self.kidKeys.append(key) self.kidKeys.append(key)
# [gjeon] to filter by given tag # [gjeon] to filter by given tag
if self.childrenTag: if self.fModeChildrenTag:
#if not item.nodePath.hasTag('GameArea'): if self.childrenTag:
if self.fModeChildrenTag != item.nodePath.hasTag(self.childrenTag): showThisItem = False
self.kidKeys.remove(key) for tagKey in self.childrenTag.keys():
if item.nodePath.hasTag(tagKey):
showThisItem = self.childrenTag[tagKey]
if not showThisItem:
self.kidKeys.remove(key)
# Remove unused children # Remove unused children
for key in self.children.keys(): for key in self.children.keys():
@ -429,9 +433,14 @@ class TreeNode:
# Is it this node # Is it this node
if searchKey == self.item.GetKey(): if searchKey == self.item.GetKey():
# [gjeon] to filter by given tag # [gjeon] to filter by given tag
if self.childrenTag: if self.fModeChildrenTag:
if self.fModeChildrenTag != self.item.nodePath.hasTag(self.childrenTag): if self.childrenTag:
return None showThisItem = False
for tagKey in self.childrenTag.keys():
if item.nodePath.hasTag(tagKey):
showThisItem = self.childrenTag[tagKey]
if not showThisItem:
return None
return self return self
# Nope, check the children # Nope, check the children
sublist = self.item._GetSubList() sublist = self.item._GetSubList()