A few hours ago I downloaded the Panda source from CVS, built it successfully on Ubuntu 13.10 and installed it. However, in attempting to run a (previously functional) project, I encountered an issue: I have a DirectDialog that seems to be failing to construct.
Specifically, I believe that I’m getting the error “‘NoneType’ object has no attribute ‘getitem’”, pointing to a line in DirectDialog.py. The line in question is in the “configureDialog” method, here (with a few preceding lines for context):
bounds = self.stateNodePath.getTightBounds()
l = bounds #### <- Error here
From what I’ve seen in “getTightBounds”, my best guess is that calcTightBounds is setting to None one or both of the points that it takes as return parameters.
Has anyone looked at this?
Yes, sorry, I was in the process of replying to this but never had hit Submit apparently. The thing is that getTightBounds now returns None instead of (Point3(0, 0), Point3(0, 0)) when the node is empty. This is an accidental change, but perhaps not a bad one - the DirectDialog code should probably be changed to check if “bounds” is None.
Ah, fair enough, and thank you for the response.
I looked through my version of DirectDialog.py, and found two places in which getTightBounds was being used; I’ve altered both such that, when “bounds” is None, the values derived (left, right, top and bottom values, I believe) from it are all set to zero. I don’t know whether this might cause further issues later on (I doubt it, since this was presumably the result when getTightBounds returned (Point3(0, 0, 0), Point3(0, 0, 0))), but for now it seems to work.
Of course, I don’t know whether the issue occurs anywhere else–thus far I haven’t noticed any other problems that seem to be related to it.