Browse Source

*** empty log message ***

Joe Shochet 25 years ago
parent
commit
62d20a5099

+ 3 - 1
direct/src/distributed/ClientRepository.py

@@ -28,7 +28,9 @@ class ClientRepository(DirectObject.DirectObject):
 
 
     def parseDcFile(self, dcFileName):
     def parseDcFile(self, dcFileName):
         self.dcFile = DCFile()
         self.dcFile = DCFile()
-        assert(self.dcFile.read(dcFileName))
+        readResult = self.dcFile.read(dcFileName)
+        if not readResult:
+            self.notify.error("Could not read dcfile: " + str(dcFileName.cStr()))
         return self.parseDcClasses(self.dcFile)
         return self.parseDcClasses(self.dcFile)
 
 
     def parseDcClasses(self, dcFile):
     def parseDcClasses(self, dcFile):

+ 2 - 0
direct/src/showbase/DirectObject.py

@@ -26,6 +26,8 @@ class DirectObject:
         messenger.accept(event, self, method, extraArgs, 0)
         messenger.accept(event, self, method, extraArgs, 0)
     def ignore(self, event):
     def ignore(self, event):
         messenger.ignore(event, self)
         messenger.ignore(event, self)
+    def ignoreAll(self):
+        messenger.ignoreAll(self)
     def isAccepting(self, event):
     def isAccepting(self, event):
         return messenger.isAccepting(event, self)
         return messenger.isAccepting(event, self)
     def isIgnoring(self, event):
     def isIgnoring(self, event):

+ 20 - 0
direct/src/showbase/Messenger.py

@@ -65,6 +65,26 @@ class Messenger:
             if (len(acceptorDict) == 0):
             if (len(acceptorDict) == 0):
                 del self.dict[event]
                 del self.dict[event]
 
 
+
+    def ignoreAll(self, object):
+        """ ignoreAll(self, DirectObject)
+        Make this object no longer respond to any events it was accepting
+        """
+
+        Messenger.notify.debug(`object` + '\n now ignoring all events')
+
+        for event in self.dict.keys():
+            # Find the dictionary of all the objects accepting this event
+            acceptorDict = self.dict[event]
+            # If this object is there, delete it from the dictionary
+            if acceptorDict.has_key(object):
+                del acceptorDict[object]
+            # If this dictionary is now empty, remove the event
+            # entry from the Messenger alltogether
+            if (len(acceptorDict) == 0):
+                del self.dict[event]
+
+
     def isAccepting(self, event, object):
     def isAccepting(self, event, object):
         """ isAccepting(self, string, DirectOject)        
         """ isAccepting(self, string, DirectOject)        
         Is this object accepting this event?
         Is this object accepting this event?