2005-04-01 Richard Taylor <rjt-gramps@thegrindstone.me.uk>
* src/GrampsDBCallback.py: Don't check callbacks if the dict is empty. svn: r4293
This commit is contained in:
		@@ -1,3 +1,6 @@
 | 
			
		||||
2005-04-01  Richard Taylor <rjt-gramps@thegrindstone.me.uk>
 | 
			
		||||
	* src/GrampsDBCallback.py: Don't check callbacks if the dict is empty.
 | 
			
		||||
	
 | 
			
		||||
2005-04-04  Don Allingham  <don@gramps-project.org>
 | 
			
		||||
	* src/GrampsDbBase.py: add "request_rebuild" to encapsulate rebuild
 | 
			
		||||
	requests in the database instance
 | 
			
		||||
 
 | 
			
		||||
@@ -170,18 +170,20 @@ class GrampsDBCallback(object):
 | 
			
		||||
                        sys.stderr.write("arg passed was: %s type should be: %s"
 | 
			
		||||
                                         % (args[i],repr(arg_types[i])))
 | 
			
		||||
                        return 
 | 
			
		||||
                
 | 
			
		||||
        for cb in self.__callback_map[signal_name]:
 | 
			
		||||
            try:
 | 
			
		||||
                if type(cb) == tuple: # call class method
 | 
			
		||||
                    cb[0](cb[1],*args)
 | 
			
		||||
                elif type(cb) == types.FunctionType or \
 | 
			
		||||
                         type(cb) == types.MethodType: # call func
 | 
			
		||||
                    cb(*args)
 | 
			
		||||
                else:
 | 
			
		||||
                    sys.stderr.write("Warning: badly formed entry in callback map")
 | 
			
		||||
            except:
 | 
			
		||||
                sys.stderr.write("Warning: exception occured in callback function.")
 | 
			
		||||
 | 
			
		||||
        if signal_name in self.__callback_map.keys():
 | 
			
		||||
            # Don't bother if there are no callbacks.
 | 
			
		||||
            for cb in self.__callback_map[signal_name]:
 | 
			
		||||
                try:
 | 
			
		||||
                    if type(cb) == tuple: # call class method
 | 
			
		||||
                        cb[0](cb[1],*args)
 | 
			
		||||
                    elif type(cb) == types.FunctionType or \
 | 
			
		||||
                             type(cb) == types.MethodType: # call func
 | 
			
		||||
                        cb(*args)
 | 
			
		||||
                    else:
 | 
			
		||||
                        sys.stderr.write("Warning: badly formed entry in callback map")
 | 
			
		||||
                except:
 | 
			
		||||
                    sys.stderr.write("Warning: exception occured in callback function.")
 | 
			
		||||
 | 
			
		||||
    #
 | 
			
		||||
    # instance signals control methods
 | 
			
		||||
@@ -235,6 +237,26 @@ if __name__ == "__main__":
 | 
			
		||||
            t.emit('test-signal',(1,))
 | 
			
		||||
    
 | 
			
		||||
            
 | 
			
		||||
            assert len(rl) == 1, "No signal emitted"
 | 
			
		||||
            assert rl[0] == 1, "Wrong argument recieved"
 | 
			
		||||
 | 
			
		||||
        def test_noargs(self):
 | 
			
		||||
 | 
			
		||||
            class TestSignals(GrampsDBCallback):
 | 
			
		||||
 | 
			
		||||
                __signals__ = {
 | 
			
		||||
                          'test-noargs' : None
 | 
			
		||||
                         }
 | 
			
		||||
 | 
			
		||||
            rl = []
 | 
			
		||||
            def fn(r=rl):
 | 
			
		||||
                rl.append(1)
 | 
			
		||||
 | 
			
		||||
            t = TestSignals()
 | 
			
		||||
            t.connect('test-noargs',fn)
 | 
			
		||||
            t.emit('test-noargs')
 | 
			
		||||
    
 | 
			
		||||
            
 | 
			
		||||
            assert len(rl) == 1, "No signal emitted"
 | 
			
		||||
            assert rl[0] == 1, "Wrong argument recieved"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user